jetperch / pyjoulescope_ui Goto Github PK
View Code? Open in Web Editor NEWJoulescope graphical user interface
Home Page: https://www.joulescope.com
License: Apache License 2.0
Joulescope graphical user interface
Home Page: https://www.joulescope.com
License: Apache License 2.0
Would like to see annotations be dropped with the keyboard as in the Saleae Logic software:
Pressing the number keys attaches measurement markers to the cursor, dropped when clicked. Pairs are attached to 1 and 2, 3 and 4, and so on. Maybe 1 drops the single annotation, and 2 and 3 drop the dual? Something like that.
Platforms: all
Joulescope UI 0.7.0
Customer request: Click and drag should move the marker. The existing software uses click/release, move, click/release.
Click & drag is used to pan the view. We could make it modal based upon whether the cursor is over a marker, but modal behaviors can cause confusion. However, if the marker activates (perhaps by becoming a brighter color) as you hover over it, then it could use click and drag.
Maybe it is already possible, but I have not found out how. Is there a simple way of dumping the measurements using the gui? Using the cli? Or is the .jls format easily convertible / readable?
Setup: MacBook Pro running Mojave connected to Joulescope hardware through the provided A-B USB cable. Joulescope UI 0.4.6.
If I plug in JS hardware after starting the app, no readings come through. Quitting the app and restarting fixes the issue. Not a big deal.
My MBP sleeps after a period of keyboard inactivity. When I awaken it, the app no longer updates readings. A restart of the App fixes the problem.
Thanks for the report, John!
I keep my joulescope permanently plugged into my power supply, so having the output disabled by default at startup can get a bit annoying. Every morning I plug a new prototype or candidate for repair into the supply, and wonder why it isn't lighting up. This is before the coffee hits, so it takes a moment to realize that I need to open the software to get it to turn on.
Presumably this is for safety... But it would be great if there was a non-volatile firmware setting that would make it turn on by default.
When exporting data using dual markers, the JLS file always presumes 15V range. The JLS file must be configured for 5V range when the captured data was collected with the 5V range.
Win 10 x64
0.7.0
The 0.7.0 software introduced the ability to save and restore the previous session, including widget sizes. We have one report that the Single Value widget took up most of the display, even though that was not how the software was on the previous exit. We have not been able to duplicate yet, and the reporter has not seen it again either.
We are using QT's saveState and restoreState functions to adjust these dockwidget sizes. I have a suspicion that normal window resizing events and the restoreState are interacting somehow.
However, single value widgets really should be fixed height. This doesn't solve the problem for other widgets, but it at least means that a single value widget doesn't take up most of the space.
Joulescope UI 0.6.8
Win10x64
Under normal conditions, the Joulescope UI memory usage is good. However, under some abnormal disconnection situations, the Joulescope UI does not free the device (or at least the stream buffer instance). Joulescope UI normally takes about 900 MB RAM usage with a 30 second buffer. I was able to forcefully disconnect and reconnect (by quickly unplugging the USB connector). By repeating this twice, I now observe 2427 MB RAM usage.
References:
Version: 0.8.6
Platforms: all
Clicking on the Preferences dialog "help" button does not do anything.
This button was added to describe how to use Preferences, which could certainly use some explanation. Great idea, but the help was never written.
Platform: Win 10 x64
Joulescope UI version: 0.7.0
A customer reported an issue with 0.6.8 where cfg["General"]["data_path"] was null in the JSON file:
{
"General": {
"data_path": null,
"update_check": true,
"log_level": "INFO"
},
...
which caused the application not to start with the error:
Failed to execute script main
The actual issue was accessing the variable which failed path validation.
How does 0.7.0 work? 0.7.0 has many changes to preferences, but I tested and found weaknesses. We should improve the Joulescope UI error checking and error handling for bad path values.
The configuration file is stored to: "c:\User{username|\AppData\local\joulescope\config\joulescope_config.json "
And the corresponding setting is:
"General/data_path": "C:\Users\mliberty\Documents\joulescope",
If I set this to null and then start, the application still runs. However, selecting File -> Open does not work:
Traceback (most recent call last):
File "D:\repos\Jetperch\pyjoulescope_ui\joulescope_ui\main.py", line 983, in on_recording_open
self, 'Open Joulescope Recording', self._path, 'Joulescope Data (*.jls)')
File "D:\repos\Jetperch\pyjoulescope_ui\joulescope_ui\main.py", line 354, in _path
if not os.path.isdir(path):
TypeError: _isdir: path should be string, bytes or os.PathLike, not NoneType
If I close the application, set "General/data_path" to "" (empty string), run, then select File -> Open, it still doesn't work, and I get:
Traceback (most recent call last):
File "D:\repos\Jetperch\pyjoulescope_ui\joulescope_ui\main.py", line 983, in on_recording_open
self, 'Open Joulescope Recording', self._path, 'Joulescope Data (*.jls)')
File "D:\repos\Jetperch\pyjoulescope_ui\joulescope_ui\main.py", line 355, in _path
os.makedirs(path, exist_ok=True)
File "D:\venv\joulescope\lib\os.py", line 221, in makedirs
mkdir(name, mode)
FileNotFoundError: [WinError 3] The system cannot find the path specified: ''
Version: 0.8.3
Platforms: All
Batteries use Ah, not the SI unit of C. The software should do this conversion for when you want to work in Ah. See the forum thread.
When taking a waveform trace without the record option, once paused, it would be nice to be able to save out the current buffer. Maybe even have the option to save between annotation markers?
Joulescope 0.5.0 running on 64-bit Windows 10.
Please consider adding time information for the following data:
All platforms
0.7.0
The waveform view allows the user to add dual markers. The dual markers display the statistics over the selected window. Starting with 0.7.0, the statistics no longer include the delta time for the window or the integral:
The Joulescope UI used to display both of these statistics. This computation must have been lost when we restructured the markers to prevent crashes in 0.7.0. Future releases should include these statistics.
Platform: Win 10 x64, Ubuntu 18.04 LTS, mac OS Mojave 10.14.6
Joulescope UI version: 0.7.0
In the waveform view, selecting show_min_max "off", "fill", "off", "fill" does not show fill, only the mean line. You need to select "lines" before "fill" for the fill to display.
Would be nice to be able to see the instantaneous value at both ends of a dual annotation. May be redundant since the user can use the single annotation to display instantaneous values, but could be useful anyway.
Joulescope UI 0.6.8
Win10 x64
After upgrading to 0.6.8 from 0.6.3, frequent (every few minutes) Joulescope UI crashes occur. When uploading programs to an Arduino Nano 33 BLE attached as the load, the Joulescope UI crashes frequently. See forum for full description and log files.
After inspecting the logs, the common error is:
Windows fatal exception: access violation
but the error occurs in different locations.
Differences between pyjoulescope 0.6.3 and 0.6.8.
File "site-packages\joulescope\driver.py", line 342 in open
joulescope_20191114_204349_6204.log - immediately at start
joulescope_20191114_203423_9856.log - immediately at start
joulescope_20191114_201445_15440.log - on_statusUpdateTimer timeout
joulescope_20191114_193211_11196.log - on_statusUpdateTimer timeout
joulescope_20191114_192145_9784.log - on_statusUpdateTimer timeout
File "site-packages\joulescope\driver.py", line 343 in open
joulescope_20191114_200553_21728.log - on_statusUpdateTimer timeout
File "site-packages\joulescope\driver.py", line 262 in parameters (deepcopy)
joulescope_20191114_205414_10172.log - immediately at start
joulescope_20191114_191138_11904.log - on_statusUpdateTimer timeout, then on open
joulescope_20191114_211037_17152.log - immediately at start
File "joulescope_ui\main.py", line 421 in on_statusUpdateTimer (formatTime in logging)
joulescope_20191114_202630_21940.log - immediately at start
joulescope_20191114_201716_26564.log - on_statusUpdateTimer timeout
File "site-packages\joulescope\usb\device_thread.py", line 93 in _cmd_process_all (formatTime in logging)
joulescope_20191114_195217_14164.log - after device thread hung
The joulescope_20191114_201716_26564.log is an example of on_statusUpdateTimer then crash
INFO:2019-11-14 21:25:50,739:driver.py:1159:joulescope.driver:scan_for_changes 1 devices: 0 added, 0 removed
INFO:2019-11-14 21:25:50,739:main.py:965:joulescope_ui.main:current device = Joulescope:000491, False
INFO:2019-11-14 21:25:50,739:main.py:971:joulescope_ui.main:_device_scan done
INFO:2019-11-14 21:25:50,987:main.py:495:joulescope_ui.main:Device notify
INFO:2019-11-14 21:25:50,987:main.py:951:joulescope_ui.main:_device_scan start
INFO:2019-11-14 21:25:50,988:driver.py:1159:joulescope.driver:scan_for_changes 1 devices: 0 added, 0 removed
INFO:2019-11-14 21:25:50,989:main.py:965:joulescope_ui.main:current device = Joulescope:000491, False
INFO:2019-11-14 21:25:50,989:main.py:971:joulescope_ui.main:_device_scan done
INFO:2019-11-14 21:25:51,087:main.py:495:joulescope_ui.main:Device notify
INFO:2019-11-14 21:25:51,087:main.py:951:joulescope_ui.main:_device_scan start
INFO:2019-11-14 21:25:51,088:driver.py:1159:joulescope.driver:scan_for_changes 1 devices: 0 added, 0 removed
INFO:2019-11-14 21:25:51,088:main.py:965:joulescope_ui.main:current device = Joulescope:000491, False
INFO:2019-11-14 21:25:51,088:main.py:971:joulescope_ui.main:_device_scan done
ERROR:2019-11-14 21:26:15,764:device_thread.py:151:joulescope.usb.device_thread:device thread hung: control_transfer_in - FORCE CLOSE
INFO:2019-11-14 21:26:15,764:device.py:659:joulescope.usb.winusb.device:WinUsbDevice.close
INFO:2019-11-14 21:26:15,764:device.py:385:joulescope.usb.winusb.device:endpoint stop
INFO:2019-11-14 21:26:15,765:driver.py:590:joulescope.driver:streaming done(0, )
INFO:2019-11-14 21:26:17,764:device_thread.py:93:joulescope.usb.device_thread:DeviceThread._cmd_process_all close
INFO:2019-11-14 21:26:17,764:device_thread.py:123:joulescope.usb.device_thread:DeviceThread.run flush
INFO:2019-11-14 21:26:17,764:device_thread.py:125:joulescope.usb.device_thread:DeviceThread.run done
ERROR:2019-11-14 21:26:17,764:main.py:421:joulescope_ui.main:statusUpdateTimer failed - assume device error
Traceback (most recent call last):
File "joulescope_ui\main.py", line 407, in on_statusUpdateTimer
File "site-packages\joulescope\driver.py", line 819, in status
File "site-packages\joulescope\driver.py", line 761, in _status
File "site-packages\joulescope\usb\device_thread.py", line 197, in control_transfer_in
File "site-packages\joulescope\usb\device_thread.py", line 159, in _post_block
OSError
INFO:2019-11-14 21:26:17,765:main.py:873:joulescope_ui.main:_device_recover: start
INFO:2019-11-14 21:26:17,765:main.py:902:joulescope_ui.main:_device_change remove
INFO:2019-11-14 21:26:17,765:main.py:833:joulescope_ui.main:device_close Joulescope:000491
INFO:2019-11-14 21:26:17,766:view.py:431:joulescope.view:close
INFO:2019-11-14 21:26:17,766:view.py:183:joulescope.view:View.run done
INFO:2019-11-14 21:26:17,766:driver.py:661:joulescope.driver:stop : streaming=True
WARNING:2019-11-14 21:26:17,766:device_thread.py:139:joulescope.usb.device_thread:response queue not empty
INFO:2019-11-14 21:26:17,766:device_thread.py:130:joulescope.usb.device_thread:DeviceThread.post(read_stream_stop) when thread not running
ERROR:2019-11-14 21:26:17,766:driver.py:461:joulescope.driver:USB stop failed
Traceback (most recent call last):
File "joulescope_ui\main.py", line 407, in on_statusUpdateTimer
File "site-packages\joulescope\driver.py", line 819, in status
File "site-packages\joulescope\driver.py", line 761, in _status
File "site-packages\joulescope\usb\device_thread.py", line 197, in control_transfer_in
File "site-packages\joulescope\usb\device_thread.py", line 159, in _post_block
OSError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "site-packages\joulescope\driver.py", line 459, in close
File "site-packages\joulescope\driver.py", line 663, in stop
File "site-packages\joulescope\usb\device_thread.py", line 203, in read_stream_stop
File "site-packages\joulescope\usb\device_thread.py", line 146, in _post_block
OSError: DeviceThread not running
INFO:2019-11-14 21:26:17,770:main.py:1191:joulescope_ui.main:_device_stream(False)
INFO:2019-11-14 21:26:17,770:main.py:1183:joulescope_ui.main:_device_stream_stop when no device
INFO:2019-11-14 21:26:17,770:main.py:590:joulescope_ui.main:_accumulators_zero_last
INFO:2019-11-14 21:26:17,770:main.py:878:joulescope_ui.main:_device_recover: done
INFO:2019-11-14 21:26:17,773:scrollbar.py:181:joulescope_ui.oscilloscope.scrollbar:set_display_mode(buffer)
INFO:2019-11-14 21:26:17,779:main.py:951:joulescope_ui.main:_device_scan start
INFO:2019-11-14 21:26:17,780:driver.py:1159:joulescope.driver:scan_for_changes 1 devices: 1 added, 0 removed
INFO:2019-11-14 21:26:17,780:main.py:891:joulescope_ui.main:_device_change add Joulescope:000491
INFO:2019-11-14 21:26:17,780:main.py:965:joulescope_ui.main:current device = disable, True
INFO:2019-11-14 21:26:17,780:main.py:967:joulescope_ui.main:device_scan activate first device Joulescope:000491
INFO:2019-11-14 21:26:17,780:main.py:833:joulescope_ui.main:device_close disable
INFO:2019-11-14 21:26:17,780:main.py:590:joulescope_ui.main:_accumulators_zero_last
INFO:2019-11-14 21:26:17,781:main.py:670:joulescope_ui.main:device_open Joulescope:000491
INFO:2019-11-14 21:26:17,781:main.py:590:joulescope_ui.main:_accumulators_zero_last
INFO:2019-11-14 21:26:17,781:device_thread.py:174:joulescope.usb.device_thread:open
INFO:2019-11-14 21:26:17,781:device_thread.py:116:joulescope.usb.device_thread:DeviceThread.run start
INFO:2019-11-14 21:26:17,782:device.py:659:joulescope.usb.winusb.device:WinUsbDevice.close
INFO:2019-11-14 21:26:17,782:device.py:620:joulescope.usb.winusb.device:WinUsbDevice.open
INFO:2019-11-14 21:26:17,782:device.py:649:joulescope.usb.winusb.device:is_high_speed = True
INFO:2019-11-14 21:26:17,782:device.py:650:joulescope.usb.winusb.device:interface_settings = InterfaceDescriptor(
length=9,
descriptor_type=4,
interface_number=0,
alternate_setting=0,
num_endpoints=2,
interface_class=255,
interface_sub_class=0,
interface_protocol=0,
interface=0)
Windows fatal exception: access violation
Thread 0x00000d90 (most recent call first):
File "site-packages\joulescope\usb\winusb\device.py", line 784 in process
File "site-packages\joulescope\usb\device_thread.py", line 119 in run
File "threading.py", line 865 in run
File "threading.py", line 917 in _bootstrap_inner
File "threading.py", line 885 in _bootstrap
Thread 0x00003940 (most recent call first):
File "site-packages\joulescope\usb\winusb\win32_device_notify.py", line 119 in _run_window
File "threading.py", line 865 in run
File "threading.py", line 917 in _bootstrap_inner
File "threading.py", line 885 in _bootstrap
Current thread 0x000057f4 (most recent call first):
File "site-packages\joulescope\driver.py", line 342 in open
File "joulescope_ui\main.py", line 677 in _device_open
File "joulescope_ui\main.py", line 895 in <lambda>
File "joulescope_ui\main.py", line 968 in _device_scan
File "joulescope_ui\main.py", line 975 in on_deviceScan
File "joulescope_ui\main.py", line 1551 in run
File "joulescope_ui\command.py", line 49 in on_cmd
File "joulescope_ui\__main__.py", line 28 in <module>
All platforms
0.7.0
Charge is currently displayed in the SI units of coulombs (C). However, many applications prefer to use amp-hours (Ah). We should create a preference that the user can select, and then ensure that it is respected throughout the UI, including the displays for:
Platform: Win10 x64 with Joulescope UI 0.6.6
Duplicated: yes
Reported by: haly-tom on the forum.
To duplicate this issue, open the Waveform view. click Settings → Add → current, even through the current waveform is already displayed. The software displays a second current waveform but the first becomes inactive. If you then right-click on the original current waveform's y-axis, the new waveform becomes hidden. Attempting to hide the original current waveform again has no effect.
See video: https://imgur.com/a/JpxGCfJ
Solution: The Joulescope UI should not allow the same waveform to be added multiple times. The Settings → Add button should only display the remaining waveforms. When a waveform is being added, the software should also check if the waveform is already added. If so, remove it before adding the new one.
Version: 0.8.6
Platforms: all
The existing system uses right-click on the y-axis → hide to hide a signal. Then click settings → Add → {signal} to add. The Waveform Control widget should have a quick way to show/hide the most frequently used signals: current, voltage, power.
Win10 x64
Joulescope UI 0.7.0
The waveform widget supports single markers and dual markers, which are drawn over the waveform. These markers draw correctly, but they are not sufficiently bounded. They draw over the y-axis and the view statistics at the right. The expected behavior is that the markers are constrained to the waveform plot region only. This GIF shows the current behavior:
One of the most frequent operations for me is turning the min/max lines off as required. They are super-handy when you need to see the peaks, and super irritating when you don't. It would be nice if the toggle for them wasn't buried in the settings menu - maybe a hotkey or toolbar button?
Version: 0.8.6
Platform: Ubuntu 18.04 LTS
Description
When recording streaming data from a Joulescope, the memory utilization increases until linux eventually kills the Joulescope UI processes. Before linux kills the process, it does try to use swap space (if available) which renders the machine inoperable until linux finally gives up and kills the Joulescope UI process.
Note that the Joulescope UI works great on Ubuntu with streaming data. The memory leak only occurs when recording.
Steps to reproduce
In my testing, I duplicated this issue twice. It does take some run time.
Expected behavior
The memory usage should be constant during recording as with Win10 and macOS.
Possible causes
The new DataRecorder or the multiprocessing implementation may be holding on to the data somehow. Ubuntu is also still using Python 3.6 where Win10 and macOS are on Python 3.7.
All platforms
0.7.0
The Joulescope UI software has supported vertical markers in the waveform widget for quite some time. These single and dual markers compute many useful statistics. However, we sometimes want to measure the y-axis values on the graph without estimating using the grid lines. The software should support single and dual horizontal markers for the y-axis. The display can be much simpler for the y-axis. Single markers only need to display their y-axis value. Dual markers should display their y-axis value and the delta between the markers.
The Joulescope UI should have a plugin architecture so that we can easily add new features.
Having some ability to navigate the waveform display with the keyboard would be nice. Up/down or +/- for zoom? Left/right to scroll?
When trying to run from source I found that the following widgets are missing:
It looks like they might be in the .gitignore under these files:
Version: 0.8.3
Platforms: All platforms
Observed behavior
Expected behavior
The sampling rate should be updated immediately, even if that means stopping and then restarting data streaming.
The macOS is currently unsigned which displays a warning and requires the user to manually give permission to run the application. The application distribution should be correctly signed.
I'm trying to install the joulescope-ui on OSX high sierra. I get the following error when using pip3 install joulescope-ui
Collecting joulescope-ui
Downloading https://files.pythonhosted.org/packages/c5/cb/09bd4abd9645199378453501f3d18b955329199f9729880c0f18624e219b/joulescope_ui-0.4.5.tar.gz (155kB)
100% |████████████████████████████████| 163kB 1.6MB/s
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/d2/zsp27n4j6sg3mpr9zztg2w0m0000gn/T/pip-install-ak5j6mhr/joulescope-ui/setup.py", line 33, in <module>
from pyside2uic import compileUi
ModuleNotFoundError: No module named 'pyside2uic'
----------------------------------------
If I then manually install pyside2 using pip3 install pyside2
and re-run pip3 install joulescope-ui
, I get the following error:
Collecting joulescope-ui
Using cached https://files.pythonhosted.org/packages/c5/cb/09bd4abd9645199378453501f3d18b955329199f9729880c0f18624e219b/joulescope_ui-0.4.5.tar.gz
ERROR: Packages installed from PyPI cannot depend on packages which are not also hosted on PyPI.
joulescope-ui depends on pyqtgraph@ https://github.com/jetperch/pyqtgraph/tarball/c8548b3246d29ee84a1ef76ebf63a5bb0e39c917#egg=pyqtgraph-0.11.0.dev0requests>=2.0.0
I'm using pip 19.1.1 with python 3.6.
The prepackaged version seems to be compiled against libc6
2.25 but on my system only version 2.23 is available.
$ ./joulescope_launcher
[19895] Error loading Python lib '/home/ristomatti/Tools/joulescope_0_4_6/libpython3.6m.so.1.0': dlopen: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /home/ristomatti/Tools/joulescope_0_4_6/libpython3.6m.so.1.0)
$ apt show libc6
Package: libc6
Version: 2.23-0ubuntu11
Also running pip3 install -r requirements.txt
fails but I guess that is to be expected since the system provides only python 3.5. I was able to run it from source after installing python 3.7.0 using pyenv
though, so libc6
version didn't seem to matter.
I don't have a reliable recipe for replicating this, but in 0.6.8 I get frequent crashes when removing markers, if I have stopped and started the capture in-between marker operations and zoom changes. Usually with multiple marker pairs active.
Disclaimer - entirely possible its a graphics driver issue on my end.
Platform: Windows 10 x64 running Joulescope UI 0.6.6
While using a Joulescope in live streaming mode, dragging on the main section of the blue bar works correctly. However, if you drag the yellow bar then it stops expanding/contracting around the mid-point then picks up again right at the end:
https://imgur.com/a/wkdRDsz
Thank you to Haly-Tom for reporting this issue over on the forum:
https://forum.joulescope.com/t/ability-to-specify-buffered-data-size/122/5
When trying to export on 0.8.3 it does not save the data.
I have tried uninstalling and reinstalling, restarting machine .
I reverted back to 0.7.0 and was able to export data.
Version: 0.8.3 and earlier
Platforms: all
The JLS file format is capable of storing and accessing long data captures with reasonable performance. However, it is not too much faster with small files than it is with big files. For files that can fit entirely in RAM, the UI should just load them into RAM. The UI could have a preference for the maximum amount of data to load into RAM.
Version: 0.8.6
Platforms: all
The Waveform Control Widget currently allows Add Markers for Single and Dual. It should have an easy way to clear all markers.
Affects: All platforms
Versions: 0.7.0
The Joulescope UI records live Joulescope data to JLS files. The user can then open the JLS files using the Joulescope UI, explore the data, and add annotations. The UI should allow the user to save these annotations and last view range alongside the original JLS file. When the JLS file is opened again, the UI should restore the last view range and add all annotations.
The annotations are currently limited to single markers and dual markers, but this feature would apply to any future annotations added to the UI.
Version: 0.8.3
Platforms: All
Behavior: The Joulescope UI has no easy way to open recordings that were recently opened.
Request: The Joulescope UI should keep track of the last N (N=10) files. When the user selects File→Open Recent, a submenu should expand allowing the user to select from the most recent files.
Version: 0.8.3
Platforms: All
Observed Behavior
Completely adjust the Widgets/Multimeter font-color and background-color and exit preferences. Open preferences again and click on Widgets/Multimeter. Click "Reset to Defaults". The right-hand pane goes blank. Clicking on Widgets/Multimeter shows the original values.
Alternatively, clicking "Reset" above does not immediately update the right-hand pane, but does if you click away and back. However, the actual multimeter colors are not updated.
Expected Behavior
Clicking "Reset to Defaults" or "Reset" for the profile should completely restore the factory default preference values.
The statistics values displayed by dual markers should always be correct. However, in 0.6.2 and earlier, if you open a JLS file, then place the markers so that they do not contain a 10 ms reduction window (possible for any duration under 20 ms), then the resulting statistics will be incorrect. Note that the statistics displayed to the right of each waveform which are computed over the entire display ARE correct.
Win 10 x64 (but applies to all)
Joulescope UI 0.7.0
When dual markers are close together, the absolute position time of each marker, the marker flag, and the delta time do not draw well:
Many applications do not care about absolute time, so we could add an option to hide absolute time. Then, we just have to worry about the Δt. Δt should always be on top of the markers, but it appears to be behind one of them. When the markers are too close together, we also do not have enough space. If absolute time is disabled, could display Δt to the right.
As of 0.6.3 and earlier, the streaming memory buffer is a fixed 30 seconds in duration, which consumes about 750 MB. The user should be able to change this size, especially if their machine has lots of RAM and they care about larger time windows.
Can we have an option/view that can predict how long the device that is being test can be operate?
Example: A user enter 2500 mAh (a single AA battery), and the software will predict how long the device will be last (hours/days) base on the inputs from JouleScope.
I think this will simplify the process of calculation for the developer/engineer to design low power device. Thanks!
With 0.6.2 on Win10x64 in waveform view, the y-axis autoranging should be immediately applied when selected. Currently, the y-axis scale stays the same until any refresh, such as x-axis zoom or pan.
To repeat:
Version: 0.6.8 upgrading to 0.8.3
Platform: Win10
Received a report from a Joulescope customer who was previously running 0.6.8 and then upgraded to 0.8.3. The first run of 0.8.3 worked great. The second run did not work:
The customer solved this by deleting the %LOCALAPPDATA%\joulescope directory. The Joulescope UI now runs correctly.
I attempted to duplicate this process, but it worked correctly. We did test upgrade from 0.7.0 to 0.8.3 as part of the release process, but we did not go back to 0.6.8 to 0.8.3.
Regardless, the Joulescope UI should probably just ignore & log bad configuration files. It could perhaps store them off so that the user can troubleshoot manually.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.