From c43588e172917783843133eb0061bf0d118ae5d5 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Fri, 7 Nov 2025 19:10:23 -0500 Subject: cal: transmit table to CAN bus --- sw/cal/main.go | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'sw/cal/main.go') 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) -- cgit v1.2.3