/// <summary> /// Store a captured CAN packet /// </summary> /// <param name="TimeInMicroseconds">Time registered by PEAK device</param> /// <param name="CANId">Id of the packet</param> /// <param name="DataLength">Length of data</param> /// <param name="Data">Captured data</param> /// <returns>Reference to the packet</returns> Packet UpdatePackets(ulong TimeInMicroseconds, uint CANId, byte DataLength, byte[] Data) { Packet packet; if (overwriteLastPacket) { //Update packet list by overwriting last value packet = Packets.Find(x => x.Id == CANId); if (packet == null) { packet = new Packet(); Packets.Add(packet); } } else { //store as new values packet = new Packet(); Packets.Add(packet); } //add/update values packet.Microseconds = TimeInMicroseconds; packet.Id = CANId; packet.Length = DataLength; packet.Data = Data; //remember first packet for diff calc if (DiffPacket == null) { AddMessage(Feedback, "First packet received " + PacketToString(packet)); DiffPacket = Packet.Clone(packet); } return(packet); }
public PacketInfo GetPacket(string name) { return (Packets.Find(packet => 0 == string.Compare(name, packet.Name, StringComparison.OrdinalIgnoreCase))); }