Metadata-Version: 2.4
Name: emgs-app
Version: 1.1.0
Summary: EMGS PyQt6 desktop application (BLE + asyncio).
Author: rr_emg contributors
License: Proprietary
Project-URL: Homepage, https://github.com/o0fung/RR_EMG
Project-URL: Repository, https://github.com/o0fung/RR_EMG
Project-URL: Issues, https://github.com/o0fung/RR_EMG/issues
Keywords: emg,ble,pyqt6,imu,sensor
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Requires-Python: <3.14,>=3.10
Description-Content-Type: text/markdown
Requires-Dist: PyQt6==6.9.1
Requires-Dist: qasync==0.27.1
Requires-Dist: bleak==0.22.3
Requires-Dist: pyqtgraph==0.13.7
Requires-Dist: numpy==2.3.1
Requires-Dist: rich==14.1.0
Requires-Dist: pyobjc-core==10.3.2; platform_system == "Darwin"
Requires-Dist: pyobjc-framework-Cocoa==10.3.2; platform_system == "Darwin"
Requires-Dist: pyobjc-framework-CoreBluetooth==10.3.2; platform_system == "Darwin"
Requires-Dist: pyobjc-framework-libdispatch==10.3.2; platform_system == "Darwin"
Provides-Extra: ml
Requires-Dist: scipy; extra == "ml"
Requires-Dist: scikit-learn; extra == "ml"
Requires-Dist: joblib; extra == "ml"

# EMGS App

`emgs-app` is a desktop app for monitoring and controlling wearable devices over Bluetooth.

It is designed for two device families:
- **EMGS sensors** (EMG + IMU data streaming)
- **AKR / BT devices** (control, status, and protocol-driven integration)

The main goal is to help users and teams:
- Connect to multiple devices from one app
- Monitor live sensor and device status data
- Send control/configuration commands
- Record sessions for later analysis and troubleshooting

## Who this is for

- **Clinicians / operators** who need a simple interface to connect and observe devices
- **R&D teams** who need repeatable device control + data capture workflows
- **Developers** integrating EMGS/AKR devices into larger systems

## Install

### Option 1: Download app package (recommended for most users)

Download the latest release from [GitHub Releases](https://github.com/o0fung/RR_EMG/releases/latest).

- **Windows**: `emgs-app-<version>-setup.exe`
- **macOS**: `emgs-app-<version>-macos.dmg`

If you are on macOS and see a Gatekeeper warning for unsigned builds, right-click the app and choose **Open**.

### Option 2: Install from PyPI (CLI users)

```bash
pip install emgs-app
```

If you prefer an isolated app install:

```bash
pipx install emgs-app
```

Python requirement: `>=3.10,<3.14`.

## Quick start

1. Turn on Bluetooth on your computer.
2. Power on your EMGS / AKR device(s).
3. Launch the app:

```bash
emgs
```

4. In the app, scan and connect to the target device(s).
5. Open the stream/monitor view to watch live data.
6. Use device settings/commands to control behavior.
7. Start recording when you need a saved session.

## Simple operations

- **Connect / disconnect devices** from the device list
- **Start / stop streaming** for live monitoring
- **Configure device parameters** (for supported device types)
- **Run time sync / control actions** where available
- **Record data sessions** for offline analysis

Tip: if you want to test UI flow without hardware, run demo mode:

```bash
EMGS_BACKEND=sim emgs
```

## Device protocol docs

- BT/AKR protocol and R&D notes: `doc/BT_AKR_DEVICE_PROTOCOL.md`
- Legacy STM32 readme pointer: `README_for_stm32.md`

## Support and issues

- Project home: [RR_EMG](https://github.com/o0fung/RR_EMG)
- Issues: [GitHub Issues](https://github.com/o0fung/RR_EMG/issues)

