Ejemplo n.º 1
0
 public bool IsFilterMatch(CanMsg pMsg)
 {
     if ((pMsg.Id & MaskId) == (FilterId & MaskId))
     {
         return true;
     }
     else
     {
         return false;
     }
 }
Ejemplo n.º 2
0
        public void RequestIOStateChange(int OpId, int State)
        {
            CanMsg Msg = new CanMsg(0x1FFFFFA0, 4);
            Msg.Dlc = 3;

            Msg.Data[0] = (Byte)OpId;

            Msg.Data[1] = (Byte)State;
            Msg.Data[2] = (Byte)(State >> 8);

            CAN.TxMsg(Msg, 0);
        }
Ejemplo n.º 3
0
        public void Update_Msg(CanMsg Msg)
        {
            int MsgIndex = Msg_Index(Msg.Id);

            // Get the index of the message
            if (MsgIndex != -1)
            {
                // msg is found update the message
                Buffer[MsgIndex].Data = Msg.Data;
                Buffer[MsgIndex].Dlc = Msg.Dlc;
                Buffer[MsgIndex].Flags = Msg.Flags;
                Buffer[MsgIndex].Timestamp = Msg.Timestamp;

            }
            else
            {
                // msg is not found add the message
                Buffer.Add(Msg);
                MsgIndex = Buffer.IndexOf(Msg);

            }

            Buffer[MsgIndex].Updated = true;
        }
Ejemplo n.º 4
0
        public void ServiceToolHandleCanRX(CanMsg Msg)
        {
            /*Get Byte*/
            Msg.Id = Msg.Id & 0xFF;

            switch (Msg.Id)
            {

                case(0x00):

                    break;

                case(0x11):

                    /*Packet Rx*/
                    ServiceToolPacket Packet = new ServiceToolPacket(Msg.Data);
                    HandlePacket(Packet);

                    break;

                default:

                    break;

            }
        }
Ejemplo n.º 5
0
        void ServiceToolSendCtrlMsg()
        {
            CanMsg Msg = new CanMsg(0x1FFFFF00, 4);
            Msg.Dlc = 8;

            BitArray Bits = new BitArray(8);

            Bits[0] = this.Settings.OpCtrlEnabeld;

            Bits.CopyTo(Msg.Data, 0);

            CAN.TxMsg(Msg, 0);
        }
Ejemplo n.º 6
0
        void SendPacket(ServiceToolPacket Packet)
        {
            CanMsg Msg = new CanMsg(0x1FFFFF10, 4);
            Msg.Dlc = 6;

            Msg.Data[0] = (Byte)Packet.PacketType;
            Msg.Data[1] = (Byte)Packet.Param;
            Msg.Data[2] = (Byte)(Packet.Value >> 0);
            Msg.Data[3] = (Byte)(Packet.Value >> 8);
            Msg.Data[4] = (Byte)(Packet.Value >> 16);
            Msg.Data[5] = (Byte)(Packet.Value >> 24);

            CAN.TxMsg(Msg, 0);
        }
Ejemplo n.º 7
0
 public void TxCanMsgCallback(CanMsg Msg, int Ch)
 {
     /*Tx A Message*/
     CAN.TxMsg(Msg, Ch);
 }
Ejemplo n.º 8
0
        private void EnquePacket(Packet Pkt)
        {
            Byte PktId;
            CanMsg Msg = new CanMsg();

            /*Enque The Packet*/
            PktId = Que.AddPacketToQue(Pkt);

            /*Tx The Packet*/
            Msg.Id = (int)Pkt.PacketMsgId;
            Msg.Dlc = 0x08;
            Msg.Flags = 0x04;
            Msg.Data = Pkt.PacketMsgData;

            if (Msg.Data.Length < 8)
            {
                throw new Exception("Bad Data Lenght");
            }

            /*Tx The Message*/
            if (Callback != null)
            {
                Callback(Msg, 0);
            }
        }
Ejemplo n.º 9
0
        public void HandleRxMsg(CanMsg RxMsg)
        {
            /*Handle An Rx Can Mag*/
            switch (RxMsg.Id & 0x000000FF)
            {

                case(0x11):
                    /*Responce Headder Packet*/
                    if (Que.HandleMsgRx((UInt32)RxMsg.Id, RxMsg.Data, (Byte)RxMsg.Dlc))
                    {
                        /*Packet Rx Is Complete*/
                        HandleCompletePacket((Byte)RxMsg.Data[1]);

                    }
                    break;
                case(0x12):
                    /*Responce Data Packet*/
                    if (Que.HandleMsgRx((UInt32)RxMsg.Id, RxMsg.Data, (Byte)RxMsg.Dlc))
                    {
                        /*Packet Rx Is Complete*/
                        HandleCompletePacket((Byte)RxMsg.Data[1]);

                    }
                    break;
                case(0x13):
                    /*Reponce Error Packet*/
                    Que.HandleMsgRx((UInt32)RxMsg.Id, RxMsg.Data, (Byte)RxMsg.Dlc);
                    break;
                default:
                    /*Unknwon*/
                    break;

            }
        }