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.

但是,你可以在同一命令行运行测量并清空设备。这将首先清空内存,然后启动测量。

比较所使用的测量方法

此测量是在开发版本中进行的。峰值与此测量无关(这是我们目前正在处理的一个问题)。

测量方法比较。

你清楚地看到,旧的测量方法有很大的不同!

你可以在 这里 找到原始数据。