aboutsummaryrefslogtreecommitdiffstats
path: root/sw/cal/main.go
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2025-11-07 19:10:23 -0500
committerSam Anthony <sam@samanthony.xyz>2025-11-07 19:10:23 -0500
commitc43588e172917783843133eb0061bf0d118ae5d5 (patch)
treec748fecb1b530422c57dae449064cd8a5beb6c6a /sw/cal/main.go
parent688972df9daa1f80d24feff5c056ab3a66c4eee9 (diff)
downloadcan-gauge-interface-c43588e172917783843133eb0061bf0d118ae5d5.zip
cal: transmit table to CAN bus
Diffstat (limited to 'sw/cal/main.go')
-rw-r--r--sw/cal/main.go21
1 files changed, 19 insertions, 2 deletions
diff --git a/sw/cal/main.go b/sw/cal/main.go
index a6e4b1d..c2b7209 100644
--- a/sw/cal/main.go
+++ b/sw/cal/main.go
@@ -6,6 +6,7 @@ import (
"os"
"go.einride.tech/can/pkg/dbc"
+ "go.einride.tech/can/pkg/socketcan"
)
const dev = "can0"
@@ -20,6 +21,10 @@ var (
dbcFilenameFlag = "dbc"
dbcFilename = flag.String(dbcFilenameFlag, "", "DBC file name")
+ // SocketCAN device
+ canDevFlag = "can"
+ canDev = flag.String(canDevFlag, "can0", "SocketCAN device")
+
// Signal names
tachSigFlag = "tachSig"
speedSigFlag = "speedSig"
@@ -70,13 +75,25 @@ func main() {
eprintf("%v\n", err)
}
- // Parse calibration tables
- for _, filename := range tblFilenames {
+ // Open CAN connection
+ conn, err := socketcan.Dial("can", *canDev)
+ if err != nil {
+ eprintf("%v\n", err)
+ }
+ defer conn.Close()
+ tx := socketcan.NewTransmitter(conn)
+
+ // Write calibration tables to EEPROM
+ for k, filename := range tblFilenames {
fmt.Println("Parsing", filename)
tbl, err := parseTable(filename)
if err != nil {
eprintf("%v\n", err)
}
+
+ if err := writeTable(tx, tbl, k); err != nil {
+ eprintf("%v\n", err)
+ }
}
fmt.Println(sigDefs)