예제 #1
0
 public static DBusMessage ModifyMS43Message(MS43AnalogValues av, DBusMessage message)
 {
     var data = message.Data.Skip(0);
     data[30] = (byte)((av.WideBandLambda - 0.5) * 255); // TODO why not?
     data[31] = (byte)(av.IntakePressure / 10);
     return new DBusMessage(DeviceAddress.DME, message.ReceiverDescription, data);
 }
        static void ProcessToDDEMessage(Message m)
        {
            if (m.Data[0] == 0x2C && m.Data[1] == 0x10)
            {
                Random r        = new Random();
                var    response = new DBusMessage(DeviceAddress.DDE, DeviceAddress.OBD, 0x6C, 0x10,
                                                  0x01, (byte)r.Next(0, 255),
                                                  0x03, (byte)r.Next(0, 255),
                                                  0x05, (byte)r.Next(0, 255),
                                                  0x07, (byte)r.Next(0, 255),
                                                  0x09, (byte)r.Next(0, 255),
                                                  0x0B, (byte)r.Next(0, 255),
                                                  0x0D, (byte)r.Next(0, 255),
                                                  0x0F, (byte)r.Next(0, 255),
                                                  0x11, (byte)r.Next(0, 255));
                DBusManager.Instance.EnqueueMessage(response);
            }

            if (m.Data[0] == 0x30 && m.Data[1] == 0xC7)
            {
                var response = new DBusMessage(DeviceAddress.DDE, DeviceAddress.OBD, 0x70, 0xC7, 0x07, m.Data[3]);
                DBusManager.Instance.EnqueueMessage(response);
            }
        }