diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2025-11-07 19:10:23 -0500 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2025-11-07 19:10:23 -0500 |
| commit | c43588e172917783843133eb0061bf0d118ae5d5 (patch) | |
| tree | c748fecb1b530422c57dae449064cd8a5beb6c6a /sw/cal/main.go | |
| parent | 688972df9daa1f80d24feff5c056ab3a66c4eee9 (diff) | |
| download | can-gauge-interface-c43588e172917783843133eb0061bf0d118ae5d5.zip | |
cal: transmit table to CAN bus
Diffstat (limited to 'sw/cal/main.go')
| -rw-r--r-- | sw/cal/main.go | 21 |
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) |