diff options
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) |