1

我正在处理从 90 年代早期到中期的各种 HP 示波器的一些二进制波形文件。我正在尝试将文件批量转换(我们有超过 5000 个)到 CSV,然后将它们上传到数据库中。我已经尝试过 hexdump、xxd、od、strings 等,但它们似乎都不起作用。我确实找到了一份程序员手册,但这并没有多大意义。

这些文件有一个作为 ascii 文本的前导行,但是数据点是二进制的,由于某种原因,我尝试的任何东西都无法解码它们。序言给出了使用二进制值和计算正确值所需的数据。它还声明数据为 WORD 格式。

:WAV:PRE 2,1,32768,1,+4.000000E-08,-4.9722700001108E-06,0,+2.460630E-04,+2.500000E+00,16384;:WAV:DATA #800065536^W�^W�^W�^

我很困惑。

4

1 回答 1

0

看一下

http://www.naic.edu/~phil/hardware/oscilloscopes/9000A_Programmer_Reference.pdf

特别是第 1-21 页。之后":WAV:DATA",我认为上面的块的其余部分将具有65536 8-bit data bytes(其开头由上面表示)。The^W可能是一个分隔符,因此您必须将其解析出来。只是一个想法。

更新:我是示波器数据收集的新手,我正试图从头开始弄清楚整个事情。因此,在进一步挖掘中,您提供的数据似乎显示了这一点:

前导码:
- WORD 格式(16 位有符号整数分成 2 个 8 位字节)
- 如果有 WAV:BYT 部分,将指定每对的字节顺序
- RAW 数据
- 32768 个数据点
- COUNT = 1(I '我不清楚这个的含义)
- 下一个 3 应该是 X 增量,原点,参考
- 下一个 3 应该是 Y 增量,原点,参考,尽管我在上面指出的手册有更多的字段,而不仅仅是这些,因此您可能需要查阅您的特定示波器手册。

数据:
- 仔细检查后,我认为 ^W 不是分隔符,我认为它是该对的第一个字节(0010111)。� 字符显然是一个标准的“我不知道如何表示这个字符”的 web 表示。您还需要将该字符视为 8 位。
- 65536 字节数据对

我没有找到可以为您执行此操作的实用程序。我认为您将不得不编写或获取一些代码(Perl、C、Java、Python、VB 等)来完成这项工作。

于 2014-04-30T23:23:19.193 回答