Theodor Friedrichs的一个与combilog交互的工具。

combilog的Python项目详细描述


pre-committest coverage

战斗

与Theodor Friedrichs的combilog数据记录器交互的工具。目前只支持combilog 1022。在

安装

pip install combilog

使用

读取记录器并另存为csv

importcombilogimportcsv# initialize a `combilog` objectmy_log=combilog.Combilog(logger_addr=1,port='com3')# authenticate if neededmy_log.authenticate(passwd='12345678')# set pointer 1 to the start of the memory to read the loggermy_log.pointer_to_start(pointer=1)# read the logger specify wich pointer to uselogs=my_log.read_logger(pointer=1,verbose=True,output_type='list')# export as csvwithopen('logs.csv','w',newline='')asf:writer=csv.writer(f)# write headerHEADER=['timestamp','channel_1','channel_2',...,'channel_n']writer.writerow(HEADER)foriinlogs:writer.writerow(i)

读取记录器并分配给pandas数据帧

^{pr2}$

找到正确的端口

  • 在Linux上,您可以使用dmesg | grep-E'tty | usb'检查使用过的端口
  • 你可能会在底部看到这样的东西:
[202789.491199] usb 1-1.1.2: New USB device found, idVendor=eb03, idProduct=0920, bcdDevice= 1.10
[202789.491213] usb 1-1.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[202789.491223] usb 1-1.1.2: Product: CombiLog 1022
[202789.491232] usb 1-1.1.2: Manufacturer: Th.-Friedrichs
[202789.640236] cdc_acm 1-1.1.2:1.0: ttyACM0: USB ACM device
  • 您的端口是ttyACM0
  • 在windows上,只需检查设备管理器中的com端口即可

注释

  • 可在here找到记录器手册。从第118页开始描述这个包使用的ASCII协议。在
  • 有时第一次设置指针失败,第二次设置成功,所以使用@retry修饰符可能很有用

我的用法

我个人用这个做我的私人气象站。记录器通过USB连接到运行基本rasbian的Raspberry Pi。每5分钟写一次日志,我就从记录器中取出数据,直接保存到PostgreSQL数据库中。在

我为什么要使用这个代码?在

编写此代码的目的是缺少Theodor Friedrichs提供的从数据记录器自动下载数据的经济实惠的选项。 此外,仍然没有适用于Linux或没有GUI的服务器的软件。 这个脚本应该运行在所有的它们上,它们只需要python3。 这个软件应该像昂贵的Comgraph软件的自动部分那样,只运行在windows上,显然不是免费的。在

测试

  • 大多数测试不幸地依赖于连接到com3的记录器。在
  • 测试使用Combilog 1022,其中hw_version=V4.01和{}=2.26
  • 可在^{中找到用于测试的记录器设置
  • requirements-dev.txt中的测试要求
  • 测试覆盖率不是100%,因为有些异常无法手动触发,而且由于没有日志记录网络可供测试,因此无法测试透明模式。在
----------- coverage: platform win32, python 3.7.7-final-0 -----------Name          Stmts   Miss  Cover---------------------------------combilog.py     309     18    94%

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从IBM MQ的JMSException检测可恢复错误   java Lucene6。4.2:找不到类,尝试添加查询。   Java Pdf差异库   在Java中多线程处理我的线程   java将字符串传递给Uri。下载中的parse()   java在列表中查找原语位置   java JPA条件从另一个查询中选择   java中的强制转换和转换   java如何在没有上下文的情况下获取SOAP Web服务(Apache Axis 1.4)的调用客户端的IP地址   java Android IllegalBlockSizeException:解密中最后一个块未完成   java Jersey是否要自定义无效资源路径的错误处理?   如何将JavaCVS web项目转换为基于maven的web项目?   java如何检查通用列表是否与jUnit相等?   arraylist java。util。尝试使用迭代器时发生ConcurrentModificationException错误   使用springsecurity,jsp上的java${u csrf.token}始终为空   sql使用java从临时表中选择数据   spring验证中的java@Notnull和@Pattern无效   java如何使用jQuery将包含对象数组的对象数组传递给Spring MVC控制器?