Remove support for python 2
by Chris Satterlee 2 years 3 months
Remove support for python 2

Since Python 3 support was introduced, the mac_run_pyi and run_pyi.bat scripts required an argument of "python" or "python3". Now Python 2 is no longer supported, so the scripts are simplified to assume python3.
0132f529
Use plistlib instead of biplist
by Chris Satterlee 2 years 3 months
Use plistlib instead of biplist

Replace the no-longer-working biplist library for reading the Info.plist file with plistlib. This is now in http://dmgbuild.readthedocs.io/en/latest/example.html

Also remove a couple unnecessary imports.
e8f83c97
Add pyzmq to pip install list
by Chris Satterlee 2 years 3 months
Add pyzmq to pip install list

Update the python3 README to add pyzmq to the pip install command line.

Also remove the now-obsolete downlevel install of matplotlib.
213a3e22
Make port/interval changes take effect on OK (#Iss...
by Chris Satterlee 2 years 3 months
Make port/interval changes take effect on OK (#Issue #198)

Modified the rcmd_apply() method to handle the case where remote commands are already enabled, and the user changes the port number and/or the polling interval. Previously, such a change would not take effect when the user clicked OK. They would only take effect if the GUI was closed or if the user disabled and then re-enabled remote commands.

Now, in this case, the remote command monitor is canceled and restarted with the new port and/or interval.
9f8f7a91
Catch exception for port in use (Issue #197)
by Chris Satterlee 2 years 3 months
Catch exception for port in use (Issue #197)

Added try/except for call to zmq_socket.bind. Display error dialog if caught.

Also in __init__, start remote_monitor() with after_idle so exceptions will be handled normally rather than with handle_early_exception().
30bbf57a
Add C version of sample rcmd client
by Chris Satterlee 2 years 3 months
Add C version of sample rcmd client

Added C language version of the example of a remote command client
a3cb8318
Fix some BOM part numbers
by Chris Satterlee 2 years 3 months
Fix some BOM part numbers

I made these changes four months ago but didn't commit. The DIP sockets had an incorrect part Mouser number (8-pin instead of 4-pin).
91b6fcbd
Update version to 2.8.0
by Chris Satterlee 2 years 3 months
Update version to 2.8.0

Update from v2.7.1 to v2.8.0

Note that this is for python3 only. The version.txt in the python directory is still at v2.7.1 because that is where the support for Python 2 ended.
d4dce922
Add remote command feature (Issue #196)
by Chris Satterlee 2 years 3 months
Add remote command feature (Issue #196)

This commit adds the Remote Command feature. It uses the ZeroMQ (aka ZMQ, 0MQ) messaging library. This allows client programs to be written in various languages. The basic REQ/REP (client/server) messaging pattern is used.

The server is implemented as part of the GUI. This was a design decision (the other choice being to implement it at the lower IV_Swinger2.py level that controls the IV Swinger 2 hardware.) This means the remote commands are handled by the GUI, and the effects of the commands are visible on the GUI. Namely, when an IV curve is initiated remotely, the curve is displayed on the local screen just as if the user had clicked the "Swing!"button.

A new tab has been added to the Preferences dialog to configure the Remote Command feature. This tab is used to enable/disable remote command monitoring, to specify a TCP port to communicate over, and to specify the polling interval. If the "instances" feature is used, each instance is configured independently and can receive and execute remote commands concurrently with the other instances. Like other preferences, the choices on the Remote Command tab are saved in the Config file so they persist across runs.

The only remote command implemented in this commit is the "Swing" command. This command triggers the measurement of an IV curve and returns a summary of the results to the requester. If the command succeeds, the Isc, Voc, and MPP values are returned along with the name of the run directory. If the command fails, the name of the failing return code is returned.

When remote command monitoring is enabled, the port number is displayed at the top of the GUI.
798ae738
Change get_dts_with_spin to get_dts_with_sleep (Is...
by Chris Satterlee 2 years 3 months
Change get_dts_with_spin to get_dts_with_sleep (Issue #195)

Replace the "while True" loop in get_dts_with_spin to a sleep for the remainder of the one second, and change its name to get_dts_with_sleep. This fixes the issue of the GUI being unresponsive when looping without a rate limit (Issue #195.)
0e184279
Report a bug