private void processPacket(object sender, DataEventArgs args) { byte[] data = args.Data; int offset = args.Offset; int count = args.Count; LogosRecord result; LogosRecordType type = (LogosRecordType)data[5]; switch (type) { case LogosRecordType.VehicleState: { LogosVehicleStateRecord r = new LogosVehicleStateRecord(); r.TickCount = BitConverter.ToInt32(data, offset + 6); r.Value = BitConverter.ToUInt32(data, offset + 10); result = r; } break; case LogosRecordType.TrafficControlState: { LogosTrafficControlStateRecord r = new LogosTrafficControlStateRecord(); r.TickCount = BitConverter.ToInt32(data, offset + 6); r.Value = BitConverter.ToUInt64(data, offset + 10); result = r; } break; default: result = new LogosRecord(); break; } if (RecordReceived != null) { RecordReceived(this, new LogosEventArgs(result)); } }
public LogosEventArgs(LogosRecord r) { Record = r; }