diff --git a/gr25/model/gps.go b/gr25/model/gps.go index 3fc85af3..b6fc3faa 100644 --- a/gr25/model/gps.go +++ b/gr25/model/gps.go @@ -29,7 +29,7 @@ var GPSLongitude = mp.Message{ } var GPSAltitude = mp.Message{ - mp.NewField("gps_altitude", 2, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { + mp.NewField("gps_altitude", 8, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { signals := []mp.Signal{} signals = append(signals, mp.Signal{ Name: "gps_altitude", @@ -39,3 +39,123 @@ var GPSAltitude = mp.Message{ return signals }), } + +var GPSPx = mp.Message{ + mp.NewField("X_Theta", 2, mp.Signed, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "x_theta", + Value: (float64(f.Value) * 0.01), + RawValue: f.Value, + }) + return signals + }), + mp.NewField("X_Acc", 2, mp.Signed, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "x_acc", + Value: (float64(f.Value) * 0.01), + RawValue: f.Value, + }) + return signals + }), + mp.NewField("Status", 4, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "status", + Value: float64(f.Value), + RawValue: f.Value, + }) + return signals + }), +} + +var GPSQy = mp.Message{ + mp.NewField("Y_Theta", 2, mp.Signed, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "y_theta", + Value: float64(f.Value) * 0.001, + RawValue: f.Value, + }) + return signals + }), + mp.NewField("Y_Acc", 2, mp.Signed, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "y_acc", + Value: float64(f.Value) * 0.01, + RawValue: f.Value, + }) + return signals + }), + mp.NewField("Status", 4, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "status", + Value: float64(f.Value), + RawValue: f.Value, + }) + return signals + }), +} + +var GPSRz = mp.Message{ + mp.NewField("Z_Theta", 2, mp.Signed, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "z_theta", + Value: float64(f.Value) * 0.001, + RawValue: f.Value, + }) + return signals + }), + mp.NewField("Z_Acc", 2, mp.Signed, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "z_acc", + Value: float64(f.Value) * 0.01, + RawValue: f.Value, + }) + return signals + }), + mp.NewField("Status", 4, mp.Unsigned, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "status", + Value: float64(f.Value), + RawValue: f.Value, + }) + return signals + }), +} + +var DGPS_UVW = mp.Message{ + mp.NewField("DGPS_u", 2, mp.Signed, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "dgps_u", + Value: float64(f.Value) * 0.01, + RawValue: f.Value, + }) + return signals + }), + mp.NewField("DGPS_v", 2, mp.Signed, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "dgps_v", + Value: float64(f.Value) * 0.01, + RawValue: f.Value, + }) + return signals + }), + mp.NewField("DGPS_w", 2, mp.Signed, mp.LittleEndian, func(f mp.Field) []mp.Signal { + signals := []mp.Signal{} + signals = append(signals, mp.Signal{ + Name: "dgps_w", + Value: float64(f.Value) * 0.01, + RawValue: f.Value, + }) + return signals + }), +} diff --git a/gr25/model/message.go b/gr25/model/message.go index 36a9c4e6..3b9726b7 100644 --- a/gr25/model/message.go +++ b/gr25/model/message.go @@ -30,6 +30,13 @@ var messageMap = map[int]mp.Message{ 0x02A: TCMResourceUtil, 0x02B: DashWarningFlags, 0x02E: ECUPedals, + 0x030: DGPS_UVW, + 0x031: GPSLatitude, + 0x032: GPSLongitude, + 0x033: GPSAltitude, + 0x034: GPSPx, + 0x035: GPSQy, + 0x036: GPSRz, } func GetMessage(id int) mp.Message {