The client consists of a CLI (partly using curses) and a GUI (based on Qt5 via PyQt5). Both interfaces are capable of connecting to a CMS50EW device either via USB/serial or Bluetooth, displaying live data and downloading recorded sessions. Session data can be saved as a CSV file and plotted using Pygal (export to SVG supported) or Matplotlib.
usage: cms50ew_cli.py [-h] {live,download} ...
positional arguments:
{live,download} specify action to perform
live display live data in curses UI
download download stored session data
optional arguments:
-h, --help show this help message and exit
usage: cms50ew_cli.py live [-h] [-b] device
positional arguments:
device specify serial port or MAC address of Bluetooth device
optional arguments:
-h, --help show this help message and exit
-b, --bluetooth specify if connection is to be established via Bluetooth
(default is serial)
usage: cms50ew_cli.py download [-h] [-b] [--csv file] [--pygal file] [--mpl]
device
positional arguments:
device specify serial port or MAC address of Bluetooth device
optional arguments:
-h, --help show this help message and exit
-b, --bluetooth specify if connection is to be established via Bluetooth
(default is serial)
--csv file store saved data in CSV file
--pygal file plot data with Pygal and store it as SVG
--mpl plot data with Matplotlib and display it
./cms50ew_qt.py
./cms50ew_cli.py live /dev/ttyUSB0
./cms50ew_cli.py live -b XX:XX:XX:XX:XX:XX
./cms50ew_cli.py download --csv /tmp/session.csv /dev/ttyUSB0
./cms50ew_cli.py download -b --pygal /tmp/session.svg XX:XX:XX:XX:XX:XX
./cms50ew_cli.py download --mpl /dev/ttyUSB0