public AvlData Decode(IBitReader reader) { DateTime dateTime = reader != null?DateTimeExt.FromAvl(reader.ReadUInt32() * 1000L + reader.ReadByte() * 10) : throw new ArgumentNullException(nameof(reader)); AvlDataPriority priority = (AvlDataPriority)reader.ReadByte(); GpsElementExt gpsElementExt = FMPro3GpsElementEncoding.Instance.Decode(reader); IoElement data = FMPro3IOElementEncoding.Instance.Decode(reader); data.Add(gpsElementExt.IO[500001]); return(new AvlData(priority, dateTime, gpsElementExt.GPS, data)); }