OWON のTAO3000Aシリーズ(TAO3104A、TAO3074A)には、記録したデータのバイナリ出力モードが備わっている。
データ容量が1/10くらいになり、記録にかかる時間も短くなるが、
問題は記録した.BINファイルをデコードする手段がOWONから提供されていないことだった。
海外含め何名かがこの問題に取り組んでいたが、その中でも、Tao LanによるMATLABコードが最も完成されているようだった。
しかし、MATLAB本体が基本的には有償であるため、Pythonに翻訳することにした。
使い方は、変換したい.BINファイルとPythonファイルを同じディレクトリに置き、
「TAO3000ABIN2CSV.py」を実行し、変換したいファイル名を拡張子まで入力する。
後は自動でCSVファイルが出てくる。
出力されるファイルフォーマットは、「Channel_1、Channel_2、Channel_3、Channel_4、Time」の順。
電圧の単位はV、時間はサンプリングレートより算出されている。
8bit、12bit、14bitの4ch、レコード長1kで確認したほか、10Mレコードでも動作するのを確認している。
(ただし10Mレコードでは.binファイルでも約78MB、CSVに変換すると数百MBに膨らむためさすがに処理時間がかかる)
ライセンスは、オリジナルのライセンスを同梱するように、と指示が書いてあったので、配布物に含めている。
改めてTao Lanに感謝する。