OpenCPN-low-energy/Using datalogger.py
为了获得更精确的功耗测量结果,我编写了一个新的datalogger来启动和收集我们的测量结果。
事实上,VirtualHub(通过网络与Yocto-Watt设备通信所需的软件)开始出现在我们的powertop测试的顶部。所以我们编写了一个完全不同的datalogger。
这次它是一个仅在命令行使用的python脚本。它不需要在我们要测量的计算机上运行,因此对我们的测量没有任何影响。你可以在找到一个“启动到睡眠”功耗测量。它也打开了新的可能性,现在VirtualHub不再需要用于测量,我们可以测量计算机在睡眠模式下的功耗。更多?我们不再需要处于网络中了,所以我们可以摆脱任何连接(以太网/wifi)。
所有测量都将在此配置下进行
Python脚本测量的配置(蓝色电线是可选的)
你可以在这里找到该脚本。
此页面将指导你完成datalogger.py的选项。
要求
要运行此脚本,你需要安装python(版本无关紧要)。你还需要从此存档下载并解压缩Sources文件夹。
我的工作文件夹
-rwxr--r-- 1 thibault thibault 71 mai 23 15:23 datalogger.py* drwx------ 3 thibault thibault 4,0K mai 22 10:48 Sources/
你仍然需要设置udev规则,README.txt解释了如何操作。
选项
选项列表
usage: datalogger.py [-h] -s [SERIAL] [-f] [-o OUTPUT_FILE] [-c]
[-m DURATION | -l | -d DUMP_STREAM]
Take and fetch measures from a Yocto-X usb device. Exports the data in csv.
optional arguments:
-h, --help show this help message and exit
-s [SERIAL], --serial [SERIAL]
the Yocto-Watt serial to use. If no argument is
specified, print all available devices.
-f, --flush delete all the runs and data streams on the device's
memory. Is executed first.
-o OUTPUT_FILE, --output OUTPUT_FILE
output file for the data. If none specified, a default
name is used for --measure-duration and --dump log
output file.
-c, --chart-output Exports in a csv file ready for charts (no time
stamps). Need --dump or --measure-duration.
-m DURATION, --measure-duration DURATION
duration of the measure in seconds, then dump the log.
-l, --list-datastreams
list available data streams.
-d DUMP_STREAM, --dump DUMP_STREAM
dump supplied data stream.
- 必需 --serial / -s选项在没有参数的情况下使用,会列出所有具有可用DataLogger模块的设备。你需要用一个正在运行(在线)的设备来提供此参数。
- 可选 --flush / -f选项会删除设备内存中的所有运行和数据流。如果你在任何其他命令中使用它,脚本将在执行任何其他操作之前执行*清除操作*。
- 可选 --output / -o选项为日志输出文件指定一个名称。如果你不提供此选项,默认格式是
* for regular log : log_stream_[stream #].csv * for chart log : chart_log_stream_[stream #].csv
请注意,图表日志即使你提供了--output选项,也会使用chart_作为前缀。
- 可选 --chart-output / -c选项还会将日志以“图表就绪”格式(没有时间戳)写入。此选项需要--dump或--measure-duration。
- 可选 --measure-duration / -m选项测量指定秒数,然后写入日志。这不能与--dump一起使用。
- 可选 --list-datastreams / -l选项列出设备上的所有数据流和运行。
- 可选 --dump / -d选项写入提供的(使用--list-datastreams找到)数据流的日志。这不能与--measure-duration一起使用。
示例
这里有一些脚本的输出和命令示例。
列出序列号
$ ./datalogger.py -s [*] List all currently available devices : Serial available : YWATTMK1-09D1C | Serial's name :
清除内存
$ ./datalogger.py -s YWATTMK1-09D1C -f [+] Device YWATTMK1-09D1C found. [+] Flushing of runs & logs done.
进行测量
$ ./datalogger.py -s YWATTMK1-09D1C -m 120 -c [+] Device YWATTMK1-09D1C found. [*] Start logger at 01:00:00 (device time) for 120 seconds. Data stream # 0 [*] Stop logger at 09:57:29 (device time) [*] Writting the results to disk... [+] 'log_stream_0.csv' log wrote [+] 'chart_log_stream_0.csv' log wrote $ head log_stream_0.csv time elapsed;power; 1;10,88; 2;10,84; 3;10,86; [.../...] $ head chart_log_stream_0.csv power; 10,88; 10,84; 10,86; [.../...]
列出数据流
$ ./datalogger.py -s YWATTMK1-09D1C -l [+] Device YWATTMK1-09D1C found. [+] List of data streams : 'time' stands for 'start time' (month-day hour:min:second) run # | data stream # | time (device) | time UTC (device) | time between samples (seconds) --------------------------------------------------------------------------------------------- 0 | 0 | 01-01 01:27:47 | 05-24 09:55:28 | 1
转储数据流(日志和图表)
$ ./datalogger.py -s YWATTMK1-09D1C -d 0 [+] Device YWATTMK1-09D1C found. [*] Dumping last data stream... [+] 'log_stream_0.csv' log wrote
清除并列出数据流
这可能会变得棘手。
$ ./datalogger.py -s YWATTMK1-09D1C -l -f [+] Device YWATTMK1-09D1C found. [+] Flushing of runs & logs done. [*] There isn't any data stream stored on this device.
但是,你可以在同一命令行中运行测量并清除设备。这将首先清除内存,然后启动测量。
用于测量的各种方法的比较
此测量是在开发版本中进行的。峰值与此测量无关(这是我们目前正在处理的一个问题)。
测量方法比较。
你清楚地看到,旧的测量方法有很大的不同!
你可以在这里找到原始数据。
:

