Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GR25 Mapache Ingest

Note

This service originally lived in the main Mapache repository. It was split into this repository as an archival snapshot while Mapache undergoes a complete v4 rewrite.

GR25 Mapache Ingest translates telemetry from Gaucho Racing's GR25 car into Mapache signals.

How it works

  1. The service connects to MQTT and subscribes to gr25/#.
  2. It expects CAN telemetry on gr25/{vehicle_id}/{node_id}/{can_id}.
  3. Each payload contains an 8-byte big-endian microsecond timestamp, a 2-byte upload key, and the CAN payload.
  4. The CAN ID selects a GR25-specific message decoder.
  5. Decoded message fields are exported as normalized Mapache signals and written to the database.
  6. Ping messages are handled separately for vehicle and node health monitoring.

Signal names are prefixed with the source node, such as {node_id}_{signal_name}, to keep names unique across the car.

Stored values

Final telemetry is saved in the Mapache Signal relational model using GORM and a SingleStore-compatible database. Each signal contains its vehicle ID, node-prefixed name, decoded numeric value, raw value, microsecond timestamp, production time, and ingestion time. Ping records are stored alongside signals in their own model.

The service also exposes a small HTTP API for signal and health access.

Running

go build ./...

Runtime configuration is supplied through environment variables for MQTT, the database, Rincon registration, and the HTTP port. See config/config.go for the accepted settings.

About

Mapache ingest adapter for Gaucho Racing's GR25 car.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages