-
v1.0.0 released
09/30/2016 at 12:54 • 3 commentsFirst released version, v1.0.0: https://github.com/RoGeorge/DS1054Z_screen_capture/releases
- Querry *OPC? instead of waiting 1 second between commands.
- Added logging file, 'OscScreenGrabLAN.py.log'. -
Update to use the 'pillow' Python library instead of 'PIL'
08/13/2016 at 12:40 • 0 commentsPIL is a deprecate Python library. In order to keep the 'OscScreenGrabLAN.py' script compatible with current and future versions of Python 2, for both Windows and Linux, from now on the script is using 'pillow' library instead of 'PIL'.
If you already have 'PIL' installed, it MUST be uninstalled before installing 'pillow'.
The updated version of the 'OscScreenGrabLAN.py' and installation steps for Python and 'pillow' can be found at https://github.com/RoGeorge/DS1054Z_screen_capture
-
[SOLVED] A painfully slow LAN on Windows and a wasted weekend.
06/01/2015 at 23:09 • 1 commentProblem: LAN speed for TCP is more then 100 times slower then expected. Why?
Because Windows implemented it's own "smart" algorithms instead of following RFCs. I found out (the hard way) that starting from Vista, the TCP regulations were disregarded by Microsoft, resulting in unpredictable side effects like speed limitations for high speed Internet, or total collapse of the transfer speed, like in this case.
Long story short, what slow down the transfer between the oscilloscope and the PC is a Microsoft algorithm that alter RWIN (TCP Receive WINdow) size in a proprietary way, with heuristic algorithms that override network settings, and no way to really tweak the parameter.
Sollution: Use Linux.
I will post some benchmarks after cleaning the Python code.
.
LATER EDIT: It has been passed a year and a half, and now I couldn't reproduce the slow transfer any more. WireShark shows now the transfer time for the first 250 000 bytes is about the same:
Debian80 transfer time = 0.066444 win10 transfer time = 0.067693
-
"Memory lack in waveform reading!"
05/29/2015 at 02:37 • 0 commentsTrying to extract the full 24 million points memory buffer in one request will display on the oscilloscope screen the error message "Memory lack in waveform reading!", and the data transfer will be interrupted. With byte instead of ASCII mode, a bigger chunk of data can be extracted, but still incomplete.
In order to overcome this issue, the only successful way so far was to repeatedly extract consecutive chunks of data from the memory buffer. This idea seems to work, but right now the code is just a mess resulted after testing different approaches, and is painfully slow.The code was pushed to GitHub as is, and will be cleaned and optimized in the next version.
Please note that for CSV memory buffer data extraction, the oscilloscope must be in STOP mode. RUN mode is allowed only when reading displayed traces, not memory data.
3D Printing AVR Arduino Art Audio Automation BeagleBone Bluetooth Cameras Clock Drones Environment Hardware IoT LED Medical Music Radio Raspberry Pi Remote Control Robotics Rockets Satellites Science Security Software Virtual Reality Wearables
-
New capability added: Export displayed traces as CSV
05/24/2015 at 23:11 • 3 commentsAdded data capture and save as text in CSV (Comma Separated Values) format.
- To capture displayed channels as CSV, type:
python.exe OscScreenGrabLAN.py csv 192.168.1.3
- All channels displayed by the oscilloscope screen are saved in the CSV file, including the "MATH" channel.
- The CSV file can be used as a data exchange format with other programs. As an example, this is a captured CSV file imported in a spreadsheet. The chart was not copied from the oscilloscope, it was generated by the spreadsheet.
- To capture the WYSIWYG oscilloscope display, type:
python.exe OscScreenGrabLAN.py png 192.168.1.3
Notice the differences between the chart/data look and the display look:
- data timestamp
- save/decode raw data
Other nice to have:
- save all the oscilloscope settings together with the CSV data
- labels for the CSV channels
- test if Decode1 and Decode2 can be exported
3D Printing AVR Arduino Art Audio Automation BeagleBone Bluetooth Cameras Clock Drones Environment Hardware IoT LED Medical Music Radio Raspberry Pi Remote Control Robotics Rockets Satellites Science Security Software Virtual Reality Wearable
- To capture displayed channels as CSV, type:
-
Ported for Linux
05/23/2015 at 00:06 • 0 commentsTested on a VMware machine with Debian 7.7.0, Python 2.7.3 and PIL. Python and PIL were already present in the default Debian installation.
To run it in Linux:
- download the project from GitHub
- open a Terminal
- go to the project's directory
- type
python OscScreenGrabLAN.py
3D Printing AVR Arduino Art Audio Automation BeagleBone Bluetooth Cameras Clock Drones Environment Hardware IoT LED Medical Music Radio Raspberry Pi Remote Control Robotics Rockets Satellites Science Security Software Virtual Reality Wearable