You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
166 lines
3.3 KiB
Markdown
166 lines
3.3 KiB
Markdown
# COM Port Test Writer - Simulates device sending data
|
|
|
|
This utility simulates a physical device (like scales) by continuously writing test data to a COM port.
|
|
|
|
## Features
|
|
|
|
- ✅ Writes test data continuously to COM port
|
|
- ✅ Multiple data types: scales, counter, random, mixed
|
|
- ✅ Configurable write interval
|
|
- ✅ Easy start/stop with Ctrl+C
|
|
- ✅ List available COM ports
|
|
- ✅ Command-line arguments
|
|
|
|
## Setup
|
|
|
|
1. **Install dependencies:**
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
2. **Configure environment (optional):**
|
|
```bash
|
|
copy .env.example .env
|
|
# Edit .env with your settings
|
|
```
|
|
|
|
## Usage
|
|
|
|
### List Available COM Ports
|
|
```bash
|
|
python test_writer.py --list
|
|
```
|
|
|
|
### Basic Usage (using configured port)
|
|
```bash
|
|
python test_writer.py
|
|
```
|
|
|
|
### Specify COM Port
|
|
```bash
|
|
python test_writer.py --port COM3
|
|
```
|
|
|
|
### Different Data Types
|
|
|
|
**Scales Data (default)** - Simulates scale readings
|
|
```bash
|
|
python test_writer.py --type scales
|
|
```
|
|
|
|
**Counter Data** - Incrementing numbers
|
|
```bash
|
|
python test_writer.py --type counter
|
|
```
|
|
|
|
**Random Data** - Random numeric values
|
|
```bash
|
|
python test_writer.py --type random
|
|
```
|
|
|
|
**Mixed Sensor Data** - Temperature, humidity, pressure
|
|
```bash
|
|
python test_writer.py --type mixed
|
|
```
|
|
|
|
### Custom Write Interval
|
|
```bash
|
|
python test_writer.py --interval 2.0 # Send every 2 seconds
|
|
python test_writer.py --interval 0.5 # Send every 0.5 seconds
|
|
```
|
|
|
|
### Custom Baud Rate
|
|
```bash
|
|
python test_writer.py --baud 115200
|
|
```
|
|
|
|
## Testing Workflow
|
|
|
|
1. **Start Serial Bridge** (reads COM port)
|
|
```bash
|
|
cd serial_bridge
|
|
python app.py
|
|
```
|
|
|
|
2. **Start Test Writer** (writes test data)
|
|
```bash
|
|
cd test_comport_writer
|
|
python test_writer.py --type scales --interval 1.0
|
|
```
|
|
|
|
3. **View in React Frontend**
|
|
- Open http://localhost:3000
|
|
- Data should appear in real-time
|
|
|
|
## Configuration
|
|
|
|
Edit `.env` for default settings:
|
|
|
|
```env
|
|
COM_PORT=COM1
|
|
BAUD_RATE=9600
|
|
WRITE_INTERVAL=1.0
|
|
TEST_DATA_TYPE=scales
|
|
SCALES_MIN=0
|
|
SCALES_MAX=100
|
|
```
|
|
|
|
## Example Output
|
|
|
|
```
|
|
==================================================
|
|
COM Port Test Writer
|
|
==================================================
|
|
Port: COM1
|
|
Baud Rate: 9600
|
|
Data Type: scales
|
|
Write Interval: 1.0s
|
|
==================================================
|
|
|
|
✓ Connected to COM1 at 9600 baud
|
|
Press Ctrl+C to stop writing data
|
|
|
|
→ Sent: 45.23 kg
|
|
→ Sent: 45.67 kg
|
|
→ Sent: 46.12 kg
|
|
→ Sent: 46.45 kg
|
|
...
|
|
(Press Ctrl+C to stop)
|
|
|
|
✓ Disconnected from COM1
|
|
✓ Test writer stopped
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
- **"COM port not found"**: Check `COM_PORT` setting and ensure port exists
|
|
- **"Port already in use"**: Another application is using the port (close Serial Bridge temporarily)
|
|
- **No data appearing**: Ensure Serial Bridge is running and pointing to same COM port
|
|
- **Baud rate mismatch**: Ensure test writer and serial bridge use same baud rate
|
|
|
|
## Complete System Test
|
|
|
|
To test the complete flow:
|
|
|
|
```bash
|
|
# Terminal 1: Django Backend
|
|
cd backend
|
|
venv\Scripts\activate
|
|
python manage.py runserver
|
|
|
|
# Terminal 2: React Frontend
|
|
cd frontend
|
|
npm start
|
|
|
|
# Terminal 3: Serial Bridge
|
|
cd serial_bridge
|
|
venv\Scripts\activate
|
|
python app.py
|
|
|
|
# Terminal 4: Test Writer
|
|
cd test_comport_writer
|
|
python test_writer.py --type scales --interval 1.0
|
|
```
|
|
|
|
Then visit http://localhost:3000 to see real-time data flow.
|