Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 20 additions & 3 deletions gr26/model/ecu.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,23 @@ import (
mp "github.com/gaucho-racing/mapache/mapache-go/v3"
)

func map_forward_current(raw_current uint8) float64 {
switch raw_current {
case 0:
return 50
case 1:
return 100
case 2:
return 200
case 3:
return 300
case 4:
return 325
default:
return 0
}
}

var ECUStatus1 = mp.Message{
mp.NewField("ecu_state", 1, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal {
return []mp.Signal{
Expand All @@ -27,10 +44,10 @@ var ECUStatus1 = mp.Message{
{Name: "ping_group_3", Value: float64(f.Value), RawValue: f.Value},
}
}),
mp.NewField("power_torque", 1, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal {
mp.NewField("forward_ac_i_code_regen_ac_i_code", 1, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal {
return []mp.Signal{
{Name: "power_level", Value: float64(f.Value & 0x0F), RawValue: f.Value & 0x0F},
{Name: "torque_map", Value: float64((f.Value >> 4) & 0x0F), RawValue: (f.Value >> 4) & 0x0F},
{Name: "forward_ac_i_code", Value: map_forward_current(uint8(f.Value & 0x0F)), RawValue: f.Value & 0x0F},
{Name: "regen_ac_i_code", Value: float64((f.Value>>4)&0x0F) * 15.0, RawValue: (f.Value >> 4) & 0x0F},
}
}),
mp.NewField("max_cell_temp", 1, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal {
Expand Down
3 changes: 3 additions & 0 deletions gr26/model/message.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ var messageMap = map[int]mp.Message{
0x201: TCMResourceUtil,
0x210: TCMShelterHeartbeat,
0x211: TCMShelterBatch,
// SAM
0x026: SAMIMU,
0x02B: SAMSusPots,
// GPS
0x030: DGPS_UVW,
0x031: GPSLatitude,
Expand Down
74 changes: 74 additions & 0 deletions gr26/model/sam.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package model

import (
mp "github.com/gaucho-racing/mapache/mapache-go/v3"
)

var SAMIMU = mp.Message{
mp.NewField("bmi323_acc_x", 2, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal {
signals := []mp.Signal{}
signals = append(signals, mp.Signal{
Name: "bmi323_acc_x",
Value: (float64(f.Value) * 0.01) - 327.68,
RawValue: f.Value,
})
return signals
}),
mp.NewField("bmi323_acc_y", 2, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal {
signals := []mp.Signal{}
signals = append(signals, mp.Signal{
Name: "bmi323_acc_y",
Value: (float64(f.Value) * 0.01) - 327.68,
RawValue: f.Value,
})
return signals
}),
mp.NewField("bmi323_acc_z", 2, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal {
signals := []mp.Signal{}
signals = append(signals, mp.Signal{
Name: "bmi323_acc_z",
Value: (float64(f.Value) * 0.01) - 327.68,
RawValue: f.Value,
})
return signals
}),
mp.NewField("bmi323_gyro_x", 2, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal {
signals := []mp.Signal{}
signals = append(signals, mp.Signal{
Name: "bmi323_gyro_x",
Value: (float64(f.Value) * 0.001) - 32.768,
RawValue: f.Value,
})
return signals
}),
mp.NewField("bmi323_gyro_y", 2, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal {
signals := []mp.Signal{}
signals = append(signals, mp.Signal{
Name: "bmi323_gyro_y",
Value: (float64(f.Value) * 0.001) - 32.768,
RawValue: f.Value,
})
return signals
}),
mp.NewField("bmi323_gyro_z", 2, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal {
signals := []mp.Signal{}
signals = append(signals, mp.Signal{
Name: "bmi323_gyro_z",
Value: (float64(f.Value) * 0.001) - 32.768,
RawValue: f.Value,
})
return signals
}),
}

var SAMSusPots = mp.Message{
mp.NewField("sus_pot_pos", 1, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal {
signals := []mp.Signal{}
signals = append(signals, mp.Signal{
Name: "sus_pot_pos",
Value: float64(f.Value),
RawValue: f.Value,
})
return signals
}),
}
Loading