# cxsichen/helllo-world architecture

> Architecture diagram of the GitHub repository cxsichen/helllo-world, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cxsichen/helllo-world
- Repository: https://github.com/cxsichen/helllo-world

## Overview

This repository is a collection of Android console applications rather than one integrated product. Its strongest evidenced workflow is vehicle configuration in canReader: users change vehicle-specific preferences, which produce command messages through the activity interface. The tree also documents serial/button control, parking, launcher/weather, radio, and video applications; these are represented as separate branches, not assumed to share runtime wiring. Some subsystem connections remain unshown because the README is only a project label and most source was not sampled.

Main entry points: [`ButtonControl/src/com/console/buttoncontrol/SerialPortService.java`](https://github.com/cxsichen/helllo-world/blob/master/ButtonControl/src/com/console/buttoncontrol/SerialPortService.java) (Button serial service), [`SerialPortServer/src/cn/colink/serialport/service/SerialPortService.java`](https://github.com/cxsichen/helllo-world/blob/master/SerialPortServer/src/cn/colink/serialport/service/SerialPortService.java) (Serial port service), [`canReader/src/com/console/canreader/fragment/SSJeepFreedom/LightEngineeFragment1.java`](https://github.com/cxsichen/helllo-world/blob/master/canReader/src/com/console/canreader/fragment/SSJeepFreedom/LightEngineeFragment1.java) (Vehicle settings UI), [`video/src/com/console/video/manager/VideoManager.java`](https://github.com/cxsichen/helllo-world/blob/master/video/src/com/console/video/manager/VideoManager.java) (Video manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_vehicle["Vehicle controls"]
  node_can_ui["Vehicle settings UI"]
  node_toyota_settings["Toyota settings UI"]
  node_car_protocols["Vehicle protocol handlers"]
  node_can_service["CAN service<br/>[CanService.java]"]
  node_can_state["Vehicle preferences"]
  node_caninfo["CAN vehicle data<br/>[CanInfo.java]"]
end

subgraph group_serial["Serial control"]
  node_button_service["Button serial service"]
  node_button_keys["Button key handling<br/>[KeyDealer.java]"]
  node_button_info["Button key state<br/>[KeyInfo.java]"]
  node_server_service["Serial port service"]
  node_server_control["Serial command control"]
  node_server_keys["Serial key handling<br/>[KeyDealer.java]"]
end

subgraph group_console_apps["Console apps"]
  node_launcher["Console launcher<br/>[MainActivity.java]"]
  node_weather["Weather controller"]
  node_radio_app["Radio application<br/>[Application.java]"]
  node_radio_crash["Crash handling<br/>[CrashHandler.java]"]
end

subgraph group_media["Media"]
  node_video_ui["Video application<br/>[MainActivity.java]"]
  node_video_manager["Video manager<br/>[VideoManager.java]"]
  node_storage_scan["Storage discovery<br/>[StorageUtil.java]"]
  node_storage_info["Storage description<br/>[StorageInfo.java]"]
end

node_driver(("Console user"))
node_serial_device["Serial device"]
node_weather_service["Weather provider"]

node_driver -->|"changes settings"| node_can_ui
node_can_ui -->|"reads vehicle data"| node_caninfo
node_can_ui -.->|"sends commands"| node_can_service
node_driver -->|"changes settings"| node_toyota_settings
node_button_service -->|"delegates keys"| node_button_keys
node_button_service -->|"reads key state"| node_button_info
node_button_service -.->|"reads serial input"| node_serial_device
node_server_service -->|"creates controller"| node_server_control
node_server_service -->|"dispatches keys"| node_server_keys
node_server_service -->|"reads and writes"| node_serial_device
node_launcher -.->|"uses controller"| node_weather
node_weather -.->|"requests weather"| node_weather_service
node_radio_app -->|"initializes handler"| node_radio_crash
node_driver -.->|"browses video"| node_video_ui
node_video_ui -.->|"uses manager"| node_video_manager
node_video_manager -->|"queries storage"| node_storage_scan
node_video_manager -->|"uses metadata"| node_storage_info
node_storage_scan -->|"creates entries"| node_storage_info

click node_can_ui "https://github.com/cxsichen/helllo-world/blob/master/canReader/src/com/console/canreader/fragment/SSJeepFreedom/LightEngineeFragment1.java"
click node_toyota_settings "https://github.com/cxsichen/helllo-world/blob/master/canReader/src/com/console/canreader/activity/Toyota/SettingActivity.java"
click node_car_protocols "https://github.com/cxsichen/helllo-world/tree/master/canReader/src/com/console/canreader/bean"
click node_can_service "https://github.com/cxsichen/helllo-world/blob/master/canReader/src/com/console/canreader/service/CanService.java"
click node_can_state "https://github.com/cxsichen/helllo-world/blob/master/canReader/src/com/console/canreader/utils/PreferenceUtil.java"
click node_caninfo "https://github.com/cxsichen/helllo-world/blob/master/Parking/src/com/console/canreader/service/CanInfo.java"
click node_button_service "https://github.com/cxsichen/helllo-world/blob/master/ButtonControl/src/com/console/buttoncontrol/SerialPortService.java"
click node_button_keys "https://github.com/cxsichen/helllo-world/blob/master/ButtonControl/src/com/console/buttoncontrol/utils/KeyDealer.java"
click node_button_info "https://github.com/cxsichen/helllo-world/blob/master/ButtonControl/src/com/console/buttoncontrol/KeyInfo.java"
click node_server_service "https://github.com/cxsichen/helllo-world/blob/master/SerialPortServer/src/cn/colink/serialport/service/SerialPortService.java"
click node_server_control "https://github.com/cxsichen/helllo-world/blob/master/SerialPortServer/src/cn/colink/serialport/control/SerialPortControl.java"
click node_server_keys "https://github.com/cxsichen/helllo-world/blob/master/SerialPortServer/src/cn/colink/serialport/utils/KeyDealer.java"
click node_launcher "https://github.com/cxsichen/helllo-world/blob/master/launcher_console/launcher_console_1/launcher_console/launcher_console/src/com/console/launcher_console/MainActivity.java"
click node_weather "https://github.com/cxsichen/helllo-world/blob/master/launcher_console/launcher_console_1/launcher_console/launcher_console/src/com/console/launcher_console/control/WeatherController.java"
click node_radio_app "https://github.com/cxsichen/helllo-world/blob/master/radio_console/src/com/console/radio/app/Application.java"
click node_radio_crash "https://github.com/cxsichen/helllo-world/blob/master/radio_console/src/com/console/radio/utils/CrashHandler.java"
click node_video_ui "https://github.com/cxsichen/helllo-world/blob/master/video/src/com/console/video/MainActivity.java"
click node_video_manager "https://github.com/cxsichen/helllo-world/blob/master/video/src/com/console/video/manager/VideoManager.java"
click node_storage_scan "https://github.com/cxsichen/helllo-world/blob/master/video/src/com/console/video/util/StorageUtil.java"
click node_storage_info "https://github.com/cxsichen/helllo-world/blob/master/video/src/com/console/video/bean/StorageInfo.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_can_ui,node_toyota_settings,node_car_protocols,node_can_service,node_can_state,node_caninfo,node_driver toneBlue
class node_button_service,node_button_keys,node_button_info,node_server_service,node_server_control,node_server_keys toneAmber
class node_launcher,node_weather,node_radio_app,node_radio_crash toneMint
class node_video_ui,node_video_manager,node_storage_scan,node_storage_info toneRose
class node_serial_device,node_weather_service toneIndigo
```

## Components

### Vehicle controls

- [Vehicle settings UI](https://github.com/cxsichen/helllo-world/blob/master/canReader/src/com/console/canreader/fragment/SSJeepFreedom/LightEngineeFragment1.java): `canReader/src/com/console/canreader/fragment/SSJeepFreedom/LightEngineeFragment1.java`
- [Toyota settings UI](https://github.com/cxsichen/helllo-world/blob/master/canReader/src/com/console/canreader/activity/Toyota/SettingActivity.java): `canReader/src/com/console/canreader/activity/Toyota/SettingActivity.java`
- [Vehicle protocol handlers](https://github.com/cxsichen/helllo-world/tree/master/canReader/src/com/console/canreader/bean): `canReader/src/com/console/canreader/bean`
- [CAN service](https://github.com/cxsichen/helllo-world/blob/master/canReader/src/com/console/canreader/service/CanService.java): `canReader/src/com/console/canreader/service/CanService.java`
- [Vehicle preferences](https://github.com/cxsichen/helllo-world/blob/master/canReader/src/com/console/canreader/utils/PreferenceUtil.java): `canReader/src/com/console/canreader/utils/PreferenceUtil.java`
- [CAN vehicle data](https://github.com/cxsichen/helllo-world/blob/master/Parking/src/com/console/canreader/service/CanInfo.java): `Parking/src/com/console/canreader/service/CanInfo.java`

### Serial control

- [Button serial service](https://github.com/cxsichen/helllo-world/blob/master/ButtonControl/src/com/console/buttoncontrol/SerialPortService.java): `ButtonControl/src/com/console/buttoncontrol/SerialPortService.java`
- [Button key handling](https://github.com/cxsichen/helllo-world/blob/master/ButtonControl/src/com/console/buttoncontrol/utils/KeyDealer.java): `ButtonControl/src/com/console/buttoncontrol/utils/KeyDealer.java`
- [Button key state](https://github.com/cxsichen/helllo-world/blob/master/ButtonControl/src/com/console/buttoncontrol/KeyInfo.java): `ButtonControl/src/com/console/buttoncontrol/KeyInfo.java`
- [Serial port service](https://github.com/cxsichen/helllo-world/blob/master/SerialPortServer/src/cn/colink/serialport/service/SerialPortService.java): `SerialPortServer/src/cn/colink/serialport/service/SerialPortService.java`
- [Serial command control](https://github.com/cxsichen/helllo-world/blob/master/SerialPortServer/src/cn/colink/serialport/control/SerialPortControl.java): `SerialPortServer/src/cn/colink/serialport/control/SerialPortControl.java`
- [Serial key handling](https://github.com/cxsichen/helllo-world/blob/master/SerialPortServer/src/cn/colink/serialport/utils/KeyDealer.java): `SerialPortServer/src/cn/colink/serialport/utils/KeyDealer.java`

### Console apps

- [Console launcher](https://github.com/cxsichen/helllo-world/blob/master/launcher_console/launcher_console_1/launcher_console/launcher_console/src/com/console/launcher_console/MainActivity.java): `launcher_console/launcher_console_1/launcher_console/launcher_console/src/com/console/launcher_console/MainActivity.java`
- [Weather controller](https://github.com/cxsichen/helllo-world/blob/master/launcher_console/launcher_console_1/launcher_console/launcher_console/src/com/console/launcher_console/control/WeatherController.java): `launcher_console/launcher_console_1/launcher_console/launcher_console/src/com/console/launcher_console/control/WeatherController.java`
- [Radio application](https://github.com/cxsichen/helllo-world/blob/master/radio_console/src/com/console/radio/app/Application.java): `radio_console/src/com/console/radio/app/Application.java`
- [Crash handling](https://github.com/cxsichen/helllo-world/blob/master/radio_console/src/com/console/radio/utils/CrashHandler.java): `radio_console/src/com/console/radio/utils/CrashHandler.java`

### Media

- [Video application](https://github.com/cxsichen/helllo-world/blob/master/video/src/com/console/video/MainActivity.java): `video/src/com/console/video/MainActivity.java`
- [Video manager](https://github.com/cxsichen/helllo-world/blob/master/video/src/com/console/video/manager/VideoManager.java): `video/src/com/console/video/manager/VideoManager.java`
- [Storage discovery](https://github.com/cxsichen/helllo-world/blob/master/video/src/com/console/video/util/StorageUtil.java): `video/src/com/console/video/util/StorageUtil.java`
- [Storage description](https://github.com/cxsichen/helllo-world/blob/master/video/src/com/console/video/bean/StorageInfo.java): `video/src/com/console/video/bean/StorageInfo.java`

### Other components

- **Console user**
- **Serial device**
- **Weather provider**

## Connections

- Console user → Vehicle settings UI: changes settings (evidence: `canReader/src/com/console/canreader/fragment/SSJeepFreedom/LightEngineeFragment1.java`)
- Vehicle settings UI → CAN vehicle data: reads vehicle data (evidence: `canReader/src/com/console/canreader/fragment/SSJeepFreedom/LightEngineeFragment1.java`)
- Vehicle settings UI → CAN service: sends commands
- Console user → Toyota settings UI: changes settings (evidence: `canReader/src/com/console/canreader/activity/Toyota/SettingActivity.java`)
- Button serial service → Button key handling: delegates keys (evidence: `ButtonControl/src/com/console/buttoncontrol/SerialPortService.java`)
- Button serial service → Button key state: reads key state (evidence: `ButtonControl/src/com/console/buttoncontrol/SerialPortService.java`)
- Button serial service → Serial device: reads serial input
- Serial port service → Serial command control: creates controller (evidence: `SerialPortServer/src/cn/colink/serialport/service/SerialPortService.java`)
- Serial port service → Serial key handling: dispatches keys (evidence: `SerialPortServer/src/cn/colink/serialport/service/SerialPortService.java`)
- Serial port service → Serial device: reads and writes (evidence: `SerialPortServer/src/cn/colink/serialport/service/SerialPortService.java`)
- Console launcher → Weather controller: uses controller
- Weather controller → Weather provider: requests weather
- Radio application → Crash handling: initializes handler (evidence: `radio_console/src/com/console/radio/app/Application.java`)
- Console user → Video application: browses video
- Video application → Video manager: uses manager
- Video manager → Storage discovery: queries storage (evidence: `video/src/com/console/video/manager/VideoManager.java`)
- Video manager → Storage description: uses metadata (evidence: `video/src/com/console/video/manager/VideoManager.java`)
- Storage discovery → Storage description: creates entries (evidence: `video/src/com/console/video/util/StorageUtil.java`)
