# Serial Bridge - COM Port Reader

This is the serial port reading application that runs as a system tray service.

## Features

- ✅ Reads data from COM ports
- ✅ Runs in system tray (no console window)
- ✅ Automatically posts data to Django backend
- ✅ Retry logic for failed posts
- ✅ Backend health checks
- ✅ Configurable via environment variables
- ✅ Can be packaged as a Windows .exe

## Setup

1. **Install Python dependencies:**
   ```bash
   pip install -r requirements.txt
   ```

2. **Configure environment:**
   ```bash
   copy .env.example .env
   # Edit .env with your settings
   ```

3. **Run the application:**
   ```bash
   python app.py
   ```

## Building as EXE

To create a standalone Windows executable:

```bash
pip install pyinstaller
pyinstaller serial_bridge.spec
```

The executable will be created in the `dist\ScalesApp\` folder.

## Configuration

Edit `.env` to configure:

- `COM_PORT`: COM port to read from (default: COM1)
- `BAUD_RATE`: Serial port baud rate (default: 9600)
- `BACKEND_URL`: Django backend URL (default: http://localhost:8000)
- `AUTO_CONNECT`: Automatically connect on startup (default: True)
- `DEBUG`: Enable debug logging (default: False)

## Architecture

```
COM Port → Serial Reader → Backend Client → Django API
                             ↓
                         System Tray Icon
```

## Logging

Logs are written to `serial_bridge.log` and console output.

## Troubleshooting

- **COM port not found**: Check `COM_PORT` setting and device connection
- **Cannot connect to backend**: Verify Django server is running on `BACKEND_URL`
- **Data not posting**: Check logs in `serial_bridge.log`
- **Tray icon not appearing**: Run as administrator, check Windows settings
