<span style="color:yellow">⚠ ALPHA RELEASE - USE WITH CAUTION ⚠</span>
The first alpha release for the new Joulescope UI 1.x.
Limited testing performed. This release may crash and lose data.
Not recommended for production use without thorough understanding
of the issues listed below.
This release features a major overhaul to the Joulescope UI.
The prior Joulescope UI 0.10.x and earlier has been an excellent tool for the
past 4 years, but several major architectural choices hampered
new feature development and full JS220 support.
Key improvements coming in the 1.x release series include:
* Full JS220 feature support.
* Greatly improved waveform widget.
* Support for multiple, simultaneously connected Joulescopes.
* Langauge localization.
While all of these features are underway, they are not all ready.
This first alpha release nearly reaches feature parity with
the previous 0.10.x release.
2023 Mar 9
* Migrated to new PubSub implementation from CommandProcessor + Preferences.
* New dock window system
[ADS](https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System).
* Added sidebar and removed old singleton control widgets.
* Added statistics "hold" feature to pause Multimeter widget display.
* Improved buffer memory management - select by RAM not duration 172
* Migrated to pyjoulescope_driver from pyjoulescope.
* Removed command line options "device_name" and "window_state".
* Restructured to clearly define profiles and views.
* Implemented clean style management with widget customization.
* Added localization support (but no localization yet).
* Separated support for JS110 and JS220 controls 175
* Added high-performance read/write support for JLS v2. 48
* Added new Value widget (serves as both Multimeter and Value widgets).
* Added new Waveform widget.
* Improved buffering performance using pyjoulescope_driver backend.
* Summary plot displays waveform.
* Operates entirely on UTC time 55.
* Clearly indicates dropped samples 76.
* OpenGL backend for improved rendering performance.
* Vertically resize waveforms.
* Added current range labels 162.
* Display statistics on hover 61.
* Better state management 68.
* Fixed macOS support 171.
Tips for use
* Settings are still a work in progress. If you get stuck,
select File → "Exit and clear config". You can also manually
delete the settings file:
* Windows: %LOCALAPPDATA%\joulescope\config\joulescope_ui_config.json
* macOS: ~/Library/Application Support/joulescope/config/joulescope_ui_config.json
* linux: ~/.joulescope/config/joulescope_ui_config.json
* Hover the mouse over items to display tooltips
* Right-click (control click on macOS) for context-sensitive menus.
* Visit the [forum](https://forum.joulescope.com/) to post
questions, feedback, and issues. Feel free to also create
[GitHub issues](https://github.com/jetperch/pyjoulescope_ui/issues).
* Before opening a file, select View → File. While you can open
a file in any view, it often helps keep things less confusing
if you use a separate view.
* When you open the UI, it returns exactly to where you left off.
This can be confusing if you were viewing a JLS file and you
are expecting live data. Select View → Oscilloscope.
Features temporarily removed
The Joulescope UI 1.x is reconstructed. We started from a stripped-down
application and migrated / ported code back in. We have not yet
completed this process. Here are the features that are knowingly
not included in this release:
* JLS v1 read support.
* Waveform
* analysis tools (range tools) including USB inrush.
* text annotations.
* Panning using summary waveform.
* Save/load annotations to/from file.
* y-axis zoom and pan.
* y-axis logarithmic scale.
* Manage (add / delete / reorder) Views.
* Global settings / style / preferences management.
* Only dark mode for now: no light or system.
* Click to copy from Value (Multimeter & Value) widget.
* Units selection for mAh and mWh.
* Plugin architecture, which was never fully completed,
will be reintegrated but with new API 14.
* Most-recently used support
* File → Open Recent
* Path management
* ALL key bindings (no key presses work for now)
* Clear accumulator (workaround: close & reopen UI)
If you find other missing features, please post on the
[Joulescope forum](https://forum.joulescope.com/).
Known issues
* Style settings linked between widgets of same class.
* Waveform
* The waveform defaults to fastest possible frame rate (vsync),
which may not be desirable. Right click on waveform,
select settings, fps to change.
* JS220 current range, GPI and trigger channels are time shifted
from current, voltage, and power.
* Missing clear streaming buffer button / feature.
* Top summary waveform is not correct on file open until zoom/pan.
* Crops view to extents of minimal signal. This avoids a JLS v2
rd_fsr_statistics PARAMETER_INVALID[5] when reading beyond bounds.
* JS220 cannot stream all channels simultaneously.
* "Settings" menu does not open to nice sizes.
* JLS v2 file format does not yet implement corrupted file recovery.
* Menu View does not indicate active view.
* Device control expanded/hidden status not restored on view switch.
* UI sometimes hangs on close on Windows.
* Starting the UI with a different Joulescope causes unusual behavior.
* Using the UI with multiple Joulescopes is only partially supported.
Value / Multimeter is great. Waveform displays the signals in
the same color without any configuration / selection options.
* Flyout sidebar menu does not indicate which flyout is active.
* Value widget does not accrue standard deviation.
JS220 features still not implemented
* Soft-fuse
* UI support for triggers
* Precision UTC time sync (existing UTC time only accurate to ~100 ms)
* UTC time sync between JS220's
* UART in / out
* On-instrument downsampling (host-side downsampling works great)
---