# DBC Package CAN database (DBC) signal definitions and parsing utilities. ## Structure - `models/` - Core types (DBCCollection, CANMessage, CANSignal) - `state/` - State tracking for CAN signals - `diagnostics/` - Diagnostic signal handling - `fm29_*/`, `n60/` - Generated packages from DBC files (stubs by default) ## Generated Packages The `fm29_*` and `n60` packages contain CAN signal definitions generated from DBC files. By default, these are stubs that return empty collections. To generate real definitions, you need: 1. DBC source files (from CEC-Common repo or equivalent) 2. The `cantool` from `pkg/can-go` ## Generating DBC Code ```bash # From cloud-services root go run ./pkg/can-go/cmd/cantool generate /path/to/dbc/files ./pkg/dbc ``` Or use the generate script: ```bash ./scripts/generate-dbc.sh /path/to/dbc/files ``` ## When Do You Need Real DBC Packages? - **Gateway**: Uses only `dbc/models` - stubs are fine - **Optimus**: Needs real DBC for CAN signal parsing - **Ditto**: Needs real DBC for digital twin state - **Beacon**: Needs real DBC for diagnostic alerts ## Adding New DBC Versions 1. Add DBC files to source directory 2. Run cantool generate 3. Update `new_dbc_collection.go` to include new version