C4Component
title OpenHaptics Firmware Architecture Component Diagram
Boundary(games, "Games", "boundary") {
System_Ext(game_1, "Game 1")
Rel(game_1, hub, "Uses", "WS")
System_Ext(game_2, "Game 2")
Rel(game_2, hub, "Uses", "WS [bHaptics]")
System_Ext(game_3, "Game 3")
Rel(game_3, hub, "Uses", "OSC")
}
Container(hub, "OpenHaptics Hub", "PC, Quest")
Container_Boundary(firmware, "Firmware") {
Component(connection, "Connection", "BLE Connection", "Allows wearables to be connected to VR devices.")
Rel(connection, output, "Updates output")
Rel(connection, indicator, "Displays connection status")
Component(output, "Output", "Closest Output", "Writes output.")
Rel(output, output_component_pca, "Write output", "CHEST_FRONT")
Rel(output, output_component_ledc, "Write output", "PALM_RIGHT_FRONT")
Component(output_component_pca, "OutputComponent", "PCA9685", "Writes output.")
Component(output_component_ledc, "OutputComponent", "ledc", "Writes output.")
Component(battery, "Battery", "ADC", "Handles battery charge")
Component(indicator, "Indicator", "WS2812", "Visually display device status to user")
Rel_Back(indicator, battery, "Queries and displays charge status")
ComponentQueue(other_components, "Other Components")
}
Rel(hub, connection, "Connects", "BLE")
Rel_Back(hub, connection, "Reports configuration", "BLE")