Example #1
0
 public static DBusMessage ModifyMS43Message(DMEAnalogValues av, Message message)
 {
     var data = message.Data.Skip(0);
     data[30] = ToByte((av.WideBandLambda - 0.5) * 255); // TODO why not? TBD with JMG
     data[31] = ToByte(av.IntakePressure / 10);
     return new DBusMessage(DeviceAddress.DME, message.ReceiverDescription, data);
 }
Example #2
0
        public static DBusMessage ModifyMS43Message(DMEAnalogValues av, Message message)
        {
            var data = message.Data.Skip(0);

            data[30] = ToByte((av.WideBandLambda - 0.5) * 255); // TODO why not? TBD with JMG
            data[31] = ToByte(av.IntakePressure / 10);
            return(new DBusMessage(DeviceAddress.DME, message.ReceiverDescription, data));
        }
Example #3
0
        public static DBusMessage ModifyMS43Message(DMEAnalogValues av, Message message)
        {
            var data = message.Data;

            if (data.Length < 51)
            {
                data = data.PadRight(0x00, 51 - data.Length);
            }
            data[42] = ToByte((av.WideBandLambda - 0.5) * 255);
            data[43] = ToByte(av.IntakePressure / 10);
            data[44] = ToByte(av.FuelPressure / 40);
            data[45] = ToByte(av.OilPressure / 40);
            data[46] = ToByte(av.IntakeTempAfterCooler * 2.55);
            data[47] = ToByte(av.CoolerInTemp * 2.55);
            data[48] = ToByte(av.CoolerOutTemp * 2.55);
            data[49] = ToByte(av.IsMethanolInjecting ? 0x01 : 0x00);
            data[50] = ToByte(av.IsMethanolFailsafe ? 0x01 : 0x00);
            return(new DBusMessage(DeviceAddress.DME, message.ReceiverDescription, data));
        }
Example #4
0
        public void Update(DMEAnalogValues av)
        {
            SecondaryWatcher?.Update(av);

            if (Settings.FieldType != GaugeField.Custom)
            {
                return;
            }
            try
            {
                if (!properties.Keys.Contains(Settings.Field))
                {
                    properties.Add(Settings.Field, av.GetType().GetProperty(Settings.Field));
                }
                var obj = properties[Settings.Field].GetValue(av);
                if (obj is double)
                {
                    RawValue = (double)obj;
                }
                else if (obj is int)
                {
                    RawValue = Convert.ToDouble((int)obj);
                }
            }
            catch
            {
                StringValue = "N/A";
            }
        }
Example #5
0
        public void Update(DMEAnalogValues av)
        {
            SecondaryWatcher?.Update(av);

            if (Settings.FieldType != GaugeField.Custom)
            {
                return;
            }
            try
            {
                if (!properties.Keys.Contains(Settings.Field))
                {
                    properties.Add(Settings.Field, av.GetType().GetProperty(Settings.Field));
                }
                RawValue = properties[Settings.Field].GetValue(av);
            }
            catch
            {
                StringValue = "N/A";
            }
        }