GUI Development
This section contains information for developers working on the Latency Recorder GUI application.
Overview
The GUI is built using Flutter, providing a cross-platform desktop application for:
- Device detection and connection
- Recording control and monitoring
- Data visualization and analysis
- Export functionality
Architecture
Key Components
- Device Management (
device.dart
): Handles serial port detection and communication - Home Screen (
home.dart
): Main application interface - Recording Control (
recordbutton.dart
): Start/stop recording functionality - Port Selection (
ports.dart
): Serial port configuration - About Page (
about.dart
): Application information
Dependencies
flutter_libserialport
: Serial communicationprovider
: State managementfl_chart
: Data visualization (when implemented)
API Documentation
The GUI is documented using Dart's built-in documentation system. The API documentation includes:
- Widget documentation: Complete reference for all custom widgets and components
- State management: Documentation for providers and state classes
- Serial communication: APIs for device detection and data handling
- Utility functions: Helper methods and shared functionality
View API Documentation
📚 Flutter/Dart API Reference
Explore the complete API documentation for all Flutter/Dart components, widgets, and utilities.
View API Documentation →Generating Documentation
To regenerate the API documentation:
./generate-docs.sh
Development Setup
-
Install Flutter:
# Download from https://flutter.dev/docs/get-started/install flutter doctor
-
Install dependencies:
cd gui flutter pub get
-
Run the application:
flutter run -d macos # or linux, windows
Building for Distribution
macOS
flutter build macos --release
Linux
flutter build linux --release
Windows
flutter build windows --release
Communication Protocol
The GUI communicates with the Arduino using a simple serial protocol:
- Start Recording: Send
'S'
- Stop Recording: Send
'E'
- Data Format: Comma-separated values with timestamp and ADC reading
- Baud Rate: 115200
Future Enhancements
- Real-time data visualization
- Advanced analysis tools
- Experiment configuration management
- Data export in multiple formats