Theodor Friedrichs的一个与combilog交互的工具。
combilog的Python项目详细描述
战斗
与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%
- 项目
标签: