2.7 KiB
2.7 KiB
HMI Controller Component
ASF Sensor Hub (Sub-Hub) Embedded System
Component ID: C-HMI-001
Version: 1.0
Date: 2025-02-01
Location: application_layer/business_stack/hmi_controller/
Display: OLED 128x64 (I2C)
1. Component Overview
The HMI Controller provides local human-machine interface functionality including OLED display management, button input handling, and menu navigation. This component enables local status monitoring and basic diagnostics access.
Primary Purpose: Provide local user interface for system status and diagnostics.
2. Responsibilities
2.1 In-Scope
- OLED display initialization and management
- Display content rendering
- Button input handling (Up, Down, Select)
- Menu system implementation
- Status information display
- Diagnostic information display
- Sensor information display
2.2 Out-of-Scope
- Configuration changes (read-only interface)
- System control (handled by System State Manager)
- Data modification (handled by authenticated sessions)
3. Provided Interfaces
3.1 Display Interface
/**
* @brief Initialize HMI Controller
* @return true on success
*/
bool hmi_init(void);
/**
* @brief Update display with system status
* @param status System status structure
* @return true on success
*/
bool hmi_update_status(const system_status_t* status);
/**
* @brief Display diagnostic information
* @param diag_info Diagnostic information structure
* @return true on success
*/
bool hmi_display_diagnostics(const diagnostic_info_t* diag_info);
3.2 Button Interface
/**
* @brief Get button input
* @param button_state Output button state
* @return true if button pressed
*/
bool hmi_get_button_input(button_state_t* button_state);
4. Display Content
4.1 Main Screen
- Connectivity status
- System state
- Connected sensor count
- Current time/date
- Error indicator
4.2 Menu Structure
Main Menu
├── Status
│ ├── System State
│ ├── Sensors
│ └── Connectivity
├── Diagnostics
│ ├── Recent Events
│ ├── Error Count
│ └── System Health
└── About
├── Firmware Version
└── Device ID
5. Dependencies
- OSAL-I2C: OLED display communication
- OSAL-GPIO: Button input
- System State Manager: System state information
- Diagnostics Manager: Diagnostic information
- Time Utils: Time/date display
6. Traceability
6.1 System Requirements
- SR-SYS-007: OLED display interface
- SR-SYS-008: System information display
- SR-SYS-009: Button navigation
- SR-SYS-010: Diagnostic menu access
Document Status: Complete
Next Review: Before implementation