Exemplo n.º 1
0
        public void RequestConfiguration()
        {
            OutgoingJ1939Message message = new OutgoingJ1939Message()
            {
                USBPrefix = 'T',
                SA        = 0x33,
                PGN       = 0xEA33,
            };

            message.Data[0] = 0x43;
            message.Data[1] = 0xFC;
            message.Data[2] = 0x00;
            CommunicationManager.Instance.SendMessage(message);
            OutgoingJ1939Message message2 = new OutgoingJ1939Message()
            {
                USBPrefix = 'T',
                SA        = 0x33,
                PGN       = 0xEA33,
            };

            message2.Data[0] = 0xB9;
            message2.Data[1] = 0xFD;
            message2.Data[2] = 0x00;
            CommunicationManager.Instance.SendMessage(message2);
        }
Exemplo n.º 2
0
        private void ConfigureTireThreshholds(int byteIndex, byte value)
        {
            OutgoingJ1939Message message = new OutgoingJ1939Message()
            {
                USBPrefix = 'T',
                SA        = 0x33,
                PGN       = 0x8233,
            };

            message.Data[0]         = 0xEE; //all axles
            message.Data[byteIndex] = value;
            CommunicationManager.Instance.SendMessage(message);
        }
Exemplo n.º 3
0
        public override void LearnTire(byte instance)
        {
            OutgoingJ1939Message message = new OutgoingJ1939Message()
            {
                USBPrefix = 'T',
                SA        = 0x33,
                PGN       = 0xEF33,
            };

            message.Data[0] = 0xFD;
            message.Data[1] = positionToAxle[instance];
            message.Data[6] = 0x55;
            message.Data[7] = 0x49;
            PendingPosition = instance;
            CommunicationManager.Instance.SendMessage(message);
        }
Exemplo n.º 4
0
        public void ResetDefaults()
        {
            ConfigureTargetPSI(0xEE, 86); // 100 psi
            OutgoingJ1939Message message = new OutgoingJ1939Message()
            {
                USBPrefix = 'T',
                SA        = 0x33,
                PGN       = 0x8233,
            };

            message.Data[0] = 0xEE; //all axles
            message.Data[3] = 40;
            message.Data[4] = 60;
            message.Data[5] = 40;
            message.Data[6] = 117;
            CommunicationManager.Instance.SendMessage(message);
        }
Exemplo n.º 5
0
        public void ConfigureTargetPSI(int axle, double newValue)
        {
            byte dataAxle = (byte)axle;

            if (axle < MAX_AXLES || axle == 0xEE)
            {
                OutgoingJ1939Message message = new OutgoingJ1939Message()
                {
                    USBPrefix = 'T',
                    SA        = 0x33,
                    PGN       = 0xAE33,
                };
                message.Data[0] = (byte)(dataAxle << 4);
                message.Data[1] = (byte)(newValue / 1.160301902);
                CommunicationManager.Instance.SendMessage(message);
            }
        }
Exemplo n.º 6
0
        public override void ClearTire(byte instance)
        {
            OutgoingJ1939Message message = new OutgoingJ1939Message()
            {
                USBPrefix = 'T',
                SA        = 0x33,
                PGN       = 0xEF33,
            };

            message.Data[0] = 0xFE;
            message.Data[1] = positionToAxle[instance];
            message.Data[6] = (byte)'U';
            message.Data[7] = (byte)'I';

            Tires[instance].sensorReporting = false;
            Tires[instance].TireStatus      = TireStatus.None;
            CommunicationManager.Instance.SendMessage(message);
        }
Exemplo n.º 7
0
        public override void AbortLearn()
        {
            OutgoingJ1939Message message = new OutgoingJ1939Message()
            {
                USBPrefix = 'T',
                SA        = 0x33,
                PGN       = 0xEF33,
            };

            message.Data[0] = 0xFC;
            message.Data[6] = 0x55;
            message.Data[7] = 0x49;
            if (PendingPosition < MAX_TIRE_POSITIONS)
            {
                Tires[PendingPosition].sensorReporting = false;
                Tires[PendingPosition].TireStatus      = TireStatus.None;
            }
            PendingPosition = 0xFF;
            CommunicationManager.Instance.SendMessage(message);
            RequestConfiguration();
        }