ElectroTime

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 communication
  • provider: State management
  • fl_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

  1. Install Flutter:

    # Download from https://flutter.dev/docs/get-started/install flutter doctor
  2. Install dependencies:

    cd gui flutter pub get
  3. 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