public JT809_0x9200_0x9203 Deserialize(ReadOnlySpan <byte> bytes, out int readSize) { int offset = 0; JT809_0x9200_0x9203 jT809_0X1200_0x9203 = new JT809_0x9200_0x9203(); jT809_0X1200_0x9203.GNSSCount = JT809BinaryExtensions.ReadByteLittle(bytes, ref offset); jT809_0X1200_0x9203.GNSS = new List <JT809_0x9200_0x9202>(); if (jT809_0X1200_0x9203.GNSSCount > 0) { int bufReadSize; int tempOffset = 0; for (int i = 0; i < jT809_0X1200_0x9203.GNSSCount; i++) { try { if (i == 0) { tempOffset = offset + 36; JT809_0x9200_0x9202 jT809_0x1200_0x1202 = JT809FormatterExtensions.GetFormatter <JT809_0x9200_0x9202>() .Deserialize(bytes.Slice(offset, 36), out bufReadSize); jT809_0X1200_0x9203.GNSS.Add(jT809_0x1200_0x1202); } else { JT809_0x9200_0x9202 jT809_0x1200_0x9202 = JT809FormatterExtensions.GetFormatter <JT809_0x9200_0x9202>() .Deserialize(bytes.Slice(tempOffset, 36), out bufReadSize); tempOffset += 36; jT809_0X1200_0x9203.GNSS.Add(jT809_0x1200_0x9202); } } catch (Exception) { tempOffset += 36; } } } readSize = jT809_0X1200_0x9203.GNSSCount * 36 + 1; return(jT809_0X1200_0x9203); }
public JT809_0x9200_0x9203 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9200_0x9203 jT809_0X1200_0x9203 = new JT809_0x9200_0x9203(); jT809_0X1200_0x9203.GNSSCount = reader.ReadByte(); jT809_0X1200_0x9203.GNSS = new List <JT809_0x9200_0x9202>(); if (jT809_0X1200_0x9203.GNSSCount > 0) { for (int i = 0; i < jT809_0X1200_0x9203.GNSSCount; i++) { try { JT809MessagePackReader jT809_0x9200_0x9202Reader = new JT809MessagePackReader(reader.ReadArray(36)); JT809_0x9200_0x9202 jT809_0x1200_0x1202 = JT809_0x9200_0x9202_Formatter.Instance.Deserialize(ref jT809_0x9200_0x9202Reader, config); jT809_0X1200_0x9203.GNSS.Add(jT809_0x1200_0x1202); } catch (Exception) { } } } return(jT809_0X1200_0x9203); }