From 835deaded01a5484ca3a76cfc34ef63bc77b505d Mon Sep 17 00:00:00 2001 From: Bharat Kathi Date: Fri, 6 Jun 2025 18:54:57 -0700 Subject: [PATCH 1/5] gr25: add dash panel messages --- gr25/model/dash_panel.go | 96 ++++++++++++++++++++++++++++++++++++++++ gr25/model/message.go | 2 + 2 files changed, 98 insertions(+) create mode 100644 gr25/model/dash_panel.go diff --git a/gr25/model/dash_panel.go b/gr25/model/dash_panel.go new file mode 100644 index 00000000..7f837566 --- /dev/null +++ b/gr25/model/dash_panel.go @@ -0,0 +1,96 @@ +package model + +import mp "github.com/gaucho-racing/mapache-go" + +var DashPanel = mp.Message{ + mp.NewField("dash_panel", 1, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + bitMap := []string{ + "bms_led", + "imd_led", + "bspd_led", + } + for i := 0; i < len(bitMap); i++ { + signals = append(signals, mp.Signal{ + Name: bitMap[i], + Value: float64(f.Bytes[0] >> i & 1), + RawValue: int(f.Bytes[0] >> i & 1), + }) + } + return signals + }), +} + +// ECU sends this command to dash panel +var DashConfig = mp.Message{ + mp.NewField("dash_panel_leds", 1, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + bitMap := []string{ + "bms_led", + "imd_led", + "bspd_led", + } + for i := 0; i < len(bitMap); i++ { + signals = append(signals, mp.Signal{ + Name: bitMap[i], + Value: float64(f.Bytes[0] >> i & 1), + RawValue: int(f.Bytes[0] >> i & 1), + }) + } + return signals + }), + mp.NewField("button_led_1_r", 1, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "button_led_1_r", + Value: float64(f.Value), + RawValue: f.Value, + }) + return signals + }), + mp.NewField("button_led_1_g", 1, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "button_led_1_g", + Value: float64(f.Value), + RawValue: f.Value, + }) + return signals + }), + mp.NewField("button_led_1_b", 1, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "button_led_1_b", + Value: float64(f.Value), + RawValue: f.Value, + }) + return signals + }), + mp.NewField("button_led_2_r", 1, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "button_led_2_r", + Value: float64(f.Value), + RawValue: f.Value, + }) + return signals + }), + mp.NewField("button_led_2_g", 1, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "button_led_2_g", + Value: float64(f.Value), + RawValue: f.Value, + }) + return signals + }), + mp.NewField("button_led_2_b", 1, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "button_led_2_b", + Value: float64(f.Value), + RawValue: f.Value, + }) + return signals + }), +} diff --git a/gr25/model/message.go b/gr25/model/message.go index 399cdeda..d5133131 100644 --- a/gr25/model/message.go +++ b/gr25/model/message.go @@ -20,6 +20,8 @@ var messageMap = map[int]mp.Message{ 0x012: DC_DCStatus, 0x018: FanStatus, 0x019: FanCommand, + 0x01A: DashPanel, + 0x01B: DashConfig, 0x02A: TCMResourceUtil, } From b3b8010e656a268b4524e58af8f256212a50fae2 Mon Sep 17 00:00:00 2001 From: Bharat Kathi Date: Fri, 6 Jun 2025 19:02:35 -0700 Subject: [PATCH 2/5] gr25: add ignored button state bytes to dash panel msg --- gr25/model/dash_panel.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gr25/model/dash_panel.go b/gr25/model/dash_panel.go index 7f837566..0e14e6fc 100644 --- a/gr25/model/dash_panel.go +++ b/gr25/model/dash_panel.go @@ -19,6 +19,9 @@ var DashPanel = mp.Message{ } return signals }), + mp.NewField("ignored", 2, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { + return []mp.Signal{} + }), } // ECU sends this command to dash panel From 52d6bab601bb12612f46f31091f21dafd4778dd7 Mon Sep 17 00:00:00 2001 From: Bharat Kathi Date: Fri, 6 Jun 2025 19:07:22 -0700 Subject: [PATCH 3/5] gr25: fix acu precharge check bit --- gr25/model/acu.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/gr25/model/acu.go b/gr25/model/acu.go index 6bb7aff8..eb10e56f 100644 --- a/gr25/model/acu.go +++ b/gr25/model/acu.go @@ -185,11 +185,13 @@ var ACUPrecharge = mp.Message{ bitMap := []string{ "set_ts_active", } - signals = append(signals, mp.Signal{ - Name: bitMap[0], - Value: float64(f.CheckBit(0)), - RawValue: f.CheckBit(0), - }) + for i := 0; i < len(bitMap); i++ { + signals = append(signals, mp.Signal{ + Name: bitMap[i], + Value: float64(f.Bytes[0] >> i & 1), + RawValue: int(f.Bytes[0] >> i & 1), + }) + } return signals }), } From f91ab222f16e10e26fac7b332e51846c5d88806c Mon Sep 17 00:00:00 2001 From: Bharat Kathi Date: Fri, 6 Jun 2025 19:19:25 -0700 Subject: [PATCH 4/5] gr25: add dash warning message --- gr25/model/dash_panel.go | 18 ++++++++++++++++++ gr25/model/message.go | 1 + 2 files changed, 19 insertions(+) diff --git a/gr25/model/dash_panel.go b/gr25/model/dash_panel.go index 0e14e6fc..9582d311 100644 --- a/gr25/model/dash_panel.go +++ b/gr25/model/dash_panel.go @@ -97,3 +97,21 @@ var DashConfig = mp.Message{ return signals }), } + +// ECU sends this command to dash panel +var DashWarningFlags = mp.Message{ + mp.NewField("warning_flags", 1, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + bitMap := []string{ + "bse_apps_violation", + } + for i := 0; i < len(bitMap); i++ { + signals = append(signals, mp.Signal{ + Name: bitMap[i], + Value: float64(f.Bytes[0] >> i & 1), + RawValue: int(f.Bytes[0] >> i & 1), + }) + } + return signals + }), +} diff --git a/gr25/model/message.go b/gr25/model/message.go index d5133131..0bb53853 100644 --- a/gr25/model/message.go +++ b/gr25/model/message.go @@ -23,6 +23,7 @@ var messageMap = map[int]mp.Message{ 0x01A: DashPanel, 0x01B: DashConfig, 0x02A: TCMResourceUtil, + 0x02E: DashWarningFlags, } func GetMessage(id int) mp.Message { From 3c58bd6733cce1f77a7ed213548688826fae5be6 Mon Sep 17 00:00:00 2001 From: Bharat Kathi Date: Fri, 6 Jun 2025 19:23:25 -0700 Subject: [PATCH 5/5] gr25: fix dash warning msg id --- gr25/model/message.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gr25/model/message.go b/gr25/model/message.go index 0bb53853..7f7171de 100644 --- a/gr25/model/message.go +++ b/gr25/model/message.go @@ -23,7 +23,7 @@ var messageMap = map[int]mp.Message{ 0x01A: DashPanel, 0x01B: DashConfig, 0x02A: TCMResourceUtil, - 0x02E: DashWarningFlags, + 0x02B: DashWarningFlags, } func GetMessage(id int) mp.Message {