diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2025-11-08 10:16:42 -0500 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2025-11-08 10:16:42 -0500 |
| commit | 9b562121464ea21ba8c8b4d3783d3f873746ee00 (patch) | |
| tree | 6ac231d72996efbd7356c462ddb06b183eb9181e /sw/cal/dbc.go | |
| parent | 413d894d0637d7a4e55025664043ffa1c29e9bbb (diff) | |
| download | can-gauge-interface-9b562121464ea21ba8c8b4d3783d3f873746ee00.zip | |
cal: send Signal Control framess
Diffstat (limited to 'sw/cal/dbc.go')
| -rw-r--r-- | sw/cal/dbc.go | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/sw/cal/dbc.go b/sw/cal/dbc.go index 7aa61bd..f746504 100644 --- a/sw/cal/dbc.go +++ b/sw/cal/dbc.go @@ -8,8 +8,27 @@ import ( "go.einride.tech/can/pkg/dbc" ) +type SignalDef struct { + id dbc.MessageID + name string + start, size uint64 + isBigEndian bool + isSigned bool +} + +func newSignalDef(msg *dbc.MessageDef, sig dbc.SignalDef) SignalDef { + return SignalDef{ + msg.MessageID, + string(sig.Name), + sig.StartBit, + sig.Size, + sig.IsBigEndian, + sig.IsSigned, + } +} + // Extract signals from the DBC file. -func parseSignals(filename string, names map[int]string) (map[int]dbc.SignalDef, error) { +func parseSignals(filename string, names map[int]string) (map[int]SignalDef, error) { // Parse DBC file msgDefs, err := parseDbcFile(filename) if err != nil { @@ -17,7 +36,7 @@ func parseSignals(filename string, names map[int]string) (map[int]dbc.SignalDef, } // Search for signals - signals := make(map[int]dbc.SignalDef) + signals := make(map[int]SignalDef) for _, msg := range msgDefs { for k, name := range names { i := slices.IndexFunc(msg.Signals, func(sig dbc.SignalDef) bool { return sig.Name == dbc.Identifier(name) }) @@ -27,7 +46,8 @@ func parseSignals(filename string, names map[int]string) (map[int]dbc.SignalDef, if _, ok := signals[k]; ok { return nil, ErrDupSig{msg.Signals[i]} } - signals[k] = msg.Signals[i] + fmt.Println(msg.Signals[i]) + signals[k] = newSignalDef(msg, msg.Signals[i]) } } |