public bool IsFilterMatch(CanMsg pMsg) { if ((pMsg.Id & MaskId) == (FilterId & MaskId)) { return true; } else { return false; } }
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); }
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; }
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; } }
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); }
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); }
public void TxCanMsgCallback(CanMsg Msg, int Ch) { /*Tx A Message*/ CAN.TxMsg(Msg, Ch); }
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); } }
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; } }