Open sam210723 opened 4 years ago
Hi Sam,
I cannot read my RigolMSO5074 bin file, I have attached sample file. RigolDS0.zip
Hi Revaes,
I'm taking a look now. The waveform header is a different length for some reason.
Traceback (most recent call last):
File "C:\Program Files (x86)\Python38-32\lib\site-packages\wavebin\interface.py", line 184, in menu_file_open
if not self.config['wave'].parse(file_path):
File "C:\Program Files (x86)\Python38-32\lib\site-packages\wavebin\wave.py", line 36, in parse
header = self.parse_waveform_header()
File "C:\Program Files (x86)\Python38-32\lib\site-packages\wavebin\wave.py", line 110, in parse_waveform_header
fields = struct.unpack("5if3d2i16s16s24s16sdI", data)
struct.error: unpack requires a buffer of 140 bytes
Hi Sam, I have a Siglent SDS2000x Plus .bin for you. It currently does not open for me usr_wf_data.bin.zip .
Hi Jeff, thanks for the Siglent sample.
wavebin doesn't have a parser for the Siglent binary format at the moment. I've found the format specification on the Siglent site which makes it much easier to implement in wavebin. I've created issue #8 to keep track of progress on this.
Handyscope HS4-Diff (but according to manual all Handyscopes) are using a header free binary file. The MultiChannel Software is capable to export in different data types (int, float, etc.). But once exported, it can't be used/imported in the software again, which is why wavebin would come handy.
The settings for this one (also written in the filename): Channels: 2 Samplerate: 5MHz Samples: 100kSa Time/div: 200us Datatype: Float64
Info about export format: https://www.tiepie.com/en/multi-channel/exporting-data
I have added a preview picture of the waveform too. handyscope-hs4-diff.zip
All that said: The Software could export in CSV, WAV, etc. But if you miss exporting the right format, you can't use it anymore. As it happened to me …
These files from a Rigol DHO804 give this error:
- Vendor: Rigol
- Waveforms: 0
- File Size: 15.26MB
Updating UI
Traceback (most recent call last):
File "<User>\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "<User>\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "<User>\AppData\Local\Programs\Python\Python310\lib\site-packages\wavebin\__main__.py", line 108, in <module>
init()
File "<User>\AppData\Local\Programs\Python\Python310\lib\site-packages\wavebin\__main__.py", line 77, in init
if args.file and not wave.parse(args.file): safe_exit(code=1)
File "<User>\AppData\Local\Programs\Python\Python310\lib\site-packages\wavebin\wave.py", line 60, in parse
self.config['app'].update()
File "<User>\AppData\Local\Programs\Python\Python310\lib\site-packages\wavebin\interface.py", line 66, in update
points = len(self.config['wave'].waveforms[0]['data'])
IndexError: list index out of range
It recognizes that the file was generated by a Rigol scope, but it doesn't see any waveforms
I'll try to modify the code and issue a pull request to make it work with the newer Rigol scopes.
PR submitted with fix
Pushed v2.3 to PyPI with DHO800 support. Thanks for the sample capture and PR @yspacedev!
New waveform files for testing wavebin can be submitted here by attaching them to a comment.
Waveform files contain the serial number of the capturing oscilloscope. If you wish to remove this number before uploading, open the
.bin
file in a hex editor (such as HxD) and look for the oscilloscope model number near the top of the file. The 8 digit serial number (e.g.CN12345678
) follows the model number. Replace the serial number with zeros (CN00000000
) rather than deleting it so the size of the file is not changed.