我想将通过CAN总线接收的测量数据保存在CSV文件中.除了测量数据,我还想存储一些元数据,我需要转换通过CAN接收的测量数据.
测量数据为三个轴,每个轴有1024个值.由于计时问题,我在接收数据时将数据存储在列表中,并在完成测量数据传输后存储数据.对于CAN消息的接收,我使用了python-can库.我在带有测量数据的第一条消息中接收的元数据.
我想以这样的格式将所有内容存储在一个文件中
x data | y data | z data | meta data 1 | meta data 2 |
---|---|---|---|---|
x(0) | y(0) | z(0) | 2000 | 3 |
x(1) | y(1) | x(1) | ||
... | ... | ... | ||
x(1022) | y(1022) | z(1022) | ||
x(1023) | y(1023) | z(1023) |
我正在努力地在第一行写入元数据和测量数据的第一个bin.在第一行写入第一个bin和元数据之后,元数据的单元格应该为空.
可能有一个简单的解决方案,但我没有用正确的关键字进行搜索.
目前,我只是使用WRITE ROW函数将完整的列表写入CSV
with open(path, 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(["x_data", "y_data", "z_data"])
for msgData in msgBuffer:
writer.writerow([((msgData[1] <<8) | msgData[2]), ((msgData[3] <<8) | msgData[4]) , ((msgData[5] <<8) | msgData[6])])
在这里,我正在努力只写入第一行测量数据和元数据,然后继续只写入测量数据.