pre uc480 integration
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
# Helios Laser Test Application
|
||||
|
||||
A simple PyQt6 GUI application for testing and controlling the Helios pulsed laser system.
|
||||
|
||||
## Features
|
||||
|
||||
- **Connection Management**: Connect/disconnect to the laser via RS-232 serial port
|
||||
- **Frequency Control**: Set and query laser pulse frequency (16,700 - 125,000 Hz)
|
||||
- **Current Control**: Set and query pump diode current (0 - 7,000 mA)
|
||||
- **Pulse Mode**: Select from three pulse modes:
|
||||
- Single Pulse
|
||||
- Continuous Gating
|
||||
- Continuous Pulsing
|
||||
- **Laser Enable/Disable**: Control laser emission with dedicated buttons
|
||||
- **System Information**: Query and display controller and head serial numbers
|
||||
- **Power Monitoring**: Query and display output power in mW
|
||||
- **Message Log**: Real-time log of operations and responses
|
||||
|
||||
## Usage
|
||||
|
||||
### Starting the Application
|
||||
|
||||
```bash
|
||||
/opt/scanengine-3/run_helios_test.sh
|
||||
```
|
||||
|
||||
Or directly:
|
||||
|
||||
```bash
|
||||
source /opt/srasenv/bin/activate
|
||||
cd /opt/scanengine-3
|
||||
python3 helios_test_app.py
|
||||
```
|
||||
|
||||
### Connection
|
||||
|
||||
1. **Select Serial Port**: Choose the appropriate serial port from the dropdown (e.g., `/dev/ttyUSB0`)
|
||||
2. **Refresh Ports**: Click "Refresh Ports" to update the list of available ports
|
||||
3. **Connect**: Click "Connect" to establish connection with the laser
|
||||
4. Once connected, the status will show "Connected to [port]" in green
|
||||
|
||||
### Control Tab
|
||||
|
||||
#### Frequency Control
|
||||
- Enter desired frequency (16,700 - 125,000 Hz)
|
||||
- Click **Set Frequency** to apply the setting
|
||||
- Click **Query** to read the current frequency from the laser
|
||||
|
||||
#### Current Control
|
||||
- Enter desired pump diode current (0 - 7,000 mA)
|
||||
- Click **Set Current** to apply the setting
|
||||
- Click **Query** to read the current from the laser
|
||||
|
||||
#### Pulse Mode Control
|
||||
- Select desired pulse mode from dropdown
|
||||
- Click **Set Mode** to apply the setting
|
||||
|
||||
#### Laser Control
|
||||
- **Enable Laser**: Starts laser emission
|
||||
- **Disable Laser**: Stops laser emission
|
||||
- **Query Status**: Checks if laser is currently enabled/disabled
|
||||
|
||||
### Monitor Tab
|
||||
|
||||
#### System Information
|
||||
- **Query All**: Queries all available parameters from the laser
|
||||
- **Controller SN**: Displays controller serial number
|
||||
- **Head SN**: Displays laser head serial number
|
||||
|
||||
#### Power Monitoring
|
||||
- **Query Power**: Reads output power in mW
|
||||
|
||||
#### Messages
|
||||
- Real-time log of all operations and responses
|
||||
- Useful for debugging and verifying commands
|
||||
|
||||
## RS-232 Communication Settings
|
||||
|
||||
The driver uses the following settings (automatic, no configuration needed):
|
||||
- **Baud Rate**: 9600
|
||||
- **Data Bits**: 8
|
||||
- **Parity**: None
|
||||
- **Stop Bits**: 1
|
||||
- **Flow Control**: None
|
||||
- **Timeout**: 1 second
|
||||
|
||||
## Command Reference
|
||||
|
||||
The application uses the following Helios commands:
|
||||
|
||||
| Command | Function | Range |
|
||||
|---------|----------|-------|
|
||||
| `FP=value` | Set frequency period (ns) | 8,000 - 60,000 |
|
||||
| `FP?` | Query frequency period | - |
|
||||
| `PC=value` | Set pump current (mA) | 0 - 7,000 |
|
||||
| `PC?` | Query pump current | - |
|
||||
| `PM=value` | Set pulse mode (0-2) | 0=Single, 1=Gate, 2=Continuous |
|
||||
| `LE=value` | Set laser enable (0/1) | 0=Off, 1=On |
|
||||
| `LE?` | Query laser enable status | - |
|
||||
| `PO?` | Query output power (mW) | - |
|
||||
| `SN?` | Query controller serial | - |
|
||||
| `HSN?` | Query head serial | - |
|
||||
|
||||
## Safety Notes
|
||||
|
||||
⚠️ **IMPORTANT**: Please follow these safety precautions when using the laser:
|
||||
|
||||
1. **Door Switch**: Ensure the laser enclosure door switch is closed during operation
|
||||
2. **Laser Disable Pin**: The laser disable pin (pin 3) must be properly connected
|
||||
3. **Residual Emission**: The laser may emit when the door switch is open - always treat it as potentially dangerous
|
||||
4. **Start Low**: When setting current, start at lower values and increase gradually
|
||||
5. **Monitor Power**: Use the "Query Power" function to verify safe output levels
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Cannot Connect
|
||||
- Verify the correct serial port is selected
|
||||
- Check that the USB-to-RS-232 adapter is properly connected
|
||||
- Ensure no other application is using the same port
|
||||
- Try clicking "Refresh Ports" to update the list
|
||||
|
||||
### Commands Not Working
|
||||
- Verify the laser is connected (status shows green)
|
||||
- Check that the laser is not in error state
|
||||
- Review the message log for error details
|
||||
|
||||
### Serial Numbers Not Showing
|
||||
- The laser may not respond if not properly powered
|
||||
- Check the serial connection
|
||||
- Try the "Query All" button to get diagnostic information
|
||||
|
||||
## Files
|
||||
|
||||
- `helios_test_app.py` - Main application
|
||||
- `run_helios_test.sh` - Launcher script
|
||||
- `hardware/helios_laser.py` - Helios driver
|
||||
- `docs/protocols/helios_comms_protocol.pdf` - Official Helios documentation
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python 3.8+
|
||||
- PyQt6
|
||||
- pyserial
|
||||
- Helios laser with RS-232 interface
|
||||
- USB-to-RS-232 adapter (if using modern computer)
|
||||
Reference in New Issue
Block a user