Skip to content

Releases: DexcTrack/dexctrack

Version 3.9

Choose a tag to compare

@DexcTrack DexcTrack released this 23 Nov 04:34
8734667

Updated to support newer versions of the matplotlib library, up to 3.9.0.
Also added documentation to show use of Python Virtual Environments. The newer releases of python discourage users from using sudo pip commands to pull in dependency libraries. You can now create a virtual environment, and pull those dependencies into that environment. If doing so, you need to remember to activate that Virtualenv before you launch dexctrack.

Version 3.7

Choose a tag to compare

@DexcTrack DexcTrack released this 23 Jul 01:32
fbfa849

After upgrading my Linux version to a newer release, where QT5 is now standard, some problems appeared. The default backend is now 'QtAgg', so that had to be added to screensize.py. It also turned out that zooming the application window caused problems when trying to drag that window. It would shrink down to a much smaller size. Since screensize.py finds the full screen size, there is no need to zoom (except on Windows platforms), so that has been removed for Linux and MacOS platforms. It is now possible to drag the window without shrinking it.

Version 3.6

Choose a tag to compare

@DexcTrack DexcTrack released this 30 Apr 02:54
fb72365

Added code to generate polynomials to predict future glucose values. Linear and quadratic functions are used to plot curves 1 hour forward.

Added graph data points for User Calibration values.

Added possible scale reduction when switching range.

Removed serial port lock-up on Windows. This makes the application run MUCH better on Windows computers. Also added set window title call under Windows.

Eliminated the cause of a hang on shutdown.

Eliminated a matplotlib crash which happened when switching between glucose units.

Made Legend draggable.

Added -t option to set a time offset value. This allows user to shift data points forward or backward in time. This resolves a issue where some newer Receivers seem to use a different base time for their data.

Added -u option to display alternative glucose units. If Receiver uses mg/dL, this option will switch to mmol/L. If Receiver uses mmol/L units, this option will switch to mg/dL.

Replaced deprecated matplotlib syntax for set_window_title() and artist_picker().

Version 3.4

Choose a tag to compare

@DexcTrack DexcTrack released this 07 Aug 05:04
5a2588b

Code has been refactored to greatly reduce the accumulation of matplotlib memory leaks. Using python3, we used to add an average of about 9047 python objects every 5 minutes. After the refactor, we're now adding an average of about 31 python objects every 5 minutes.

Added scaling of font size on Event text, Note text, 24-hour or greater In-Range text, and Calibration value text, when user zooms in or out the Scale factor. Added storage of the Scale factor to the database, and restoration of the Scale factor upon relaunch.

Redesigned getNearPos() routine to run about 170 times faster. Sped up calculation of visibleAnnotCount. Sped up calculations to plot the Running Mean glucose values.

Version 3.3

Choose a tag to compare

@DexcTrack DexcTrack released this 21 May 06:28
e2bf02f

This release includes a greatly improved interface for setting your Target Range. The unwieldy Span Selector has been replaced with TextBox entry fields for the Low and High ends of the Target Range. They also display the current Target Range limits.

A Disconnected Time display feature has been added. You can now disconnect your Receiver to go out and exercise. When you get back home you'll see how many minutes you spent exercising. You can use this value to populate the time field in an exercise event on your Receiver.

The toolbar in TkAgg backends has been disabled. The utilities in that toolbar were of no use, and it wasted screen space.

For Windows users, max screen size, without eclipsing the taskbar, is now provided, by default.

I hope you enjoy the improvements in this new release!

Version 3.2

Choose a tag to compare

@DexcTrack DexcTrack released this 07 Mar 21:55
c53e3ee

This release includes fixes for older (G4-based) Receiver devices based on issues #5 and #6 raised by jmimu. There's also a fix for a crash when the user has no calibration adjustments #7, reported by Testostheron1963-de. Two of the tree improvements suggested by Testostheron1963-de in issue #8 have been implemented.

Thanks to jmimu and Testostheron1963-de for their contributions!

Version 3.1

Choose a tag to compare

@DexcTrack DexcTrack released this 07 Oct 23:02
95a3f58

Exception handling has been greatly improved. This helps to eliminate hang-ups which used to happen due to disconnection from the USB port while the application was in the middle of reading from the device.

Version 2.9

Choose a tag to compare

@DexcTrack DexcTrack released this 04 Apr 19:13

After pulling in the fukatani's fix in the previous release, some bugs in matplotlib became apparent. The default implementation of artist_picker() has 2 issues which need to be overcome.

The first issue is that when looking for matching annotations, it uses Display coordinates. Unfortunately, the transformation from Data coordinates to Display coordinates places EVERY annotation within the current display. If the display graphs one day of data, then annotations located on any other day, which happen to transform to display units near the mouse get picked. To fix this problem, we now use the Data coordinates for the annotation to test whether it is within the view limits of the current display.

The second issue is annotation eclipsing. If there are two or more annotations located near each other, the default selection area for one annotation can completely eclipse another annotation. This can make it impossible to select and drag one or more of the annotations. To fix this issue, we'll switch the selection area to a rectangle including just the text string. This allows the user to grab a specific annotation by clicking on its text. If the text for two annotations collide, then this dragging operation might drag the wrong one. But this will then expose the annotation you want to move. Drag the first one out of the way. Drag the target annotation to the desired location, and then drag the first one back to its desired position.

This release fixes the above issues, making the dragging of User Events and User Notes much easier.

In addition, code has been updated to save the new position of any dragged annotation to the database immediately. These changes used to only be saved when the application was cleanly terminated. If it crashed, or the user killed it with a Ctrl-C (for example), then those position updates would be lost. Now they are written at the end of the drag operation. This eliminates the loss of position updates.

Version 2.8

Choose a tag to compare

@DexcTrack DexcTrack released this 08 Mar 21:05

Pulled in matplotlib #7894 "Bug Fix: DraggableBase not to move unselected object" by fukatani. This fixes a really annoying bug which made dragging User Notes and User Event strings to new positions quite difficult. Frequently objects which you formerly selected would get dragged along with the current object you were trying to move. With fukatani's fix, dragging is greatly improved.

This release also includes changes to better handle large data sets. After running for a year, there are over 100000 blood glucose data points. Reading them all in every 5 minutes was slowing down performance. Under a new scheme, we read in 105 days at a time. If the user scrolls to a time outside that range, we adjust the start and end points of the selection range, but still read just 105 days of data. This keeps performance consistent, no matter how many data points are in the database.

Version 2.7

Choose a tag to compare

@DexcTrack DexcTrack released this 01 Feb 23:23

Removed an unused table from generated database to massively reduce the size. Fixed slider text position to avoid conflict on smaller screen sizes. Added ability to quit application on Windows by entering Ctrl-C in terminal where python was launched from.