private void TryDecodePacket(int size) { var messageId = PacketV2Helper.GetMessageId(_buffer, 0); var packet = CreatePacket(messageId); if (packet == null) { _decodeErrorSubject.OnNext(new MessageIdNotFoundException(messageId)); return; } try { var span = new ReadOnlySpan <byte>(_buffer, 0, size); packet.Deserialize(ref span); } catch (Exception exception) { _decodeErrorSubject.OnNext(new DeserializePackageException(messageId, string.Format(RS.DecoderV2_TryDecodePacket_Error_for_deserialize_mavlink_V2, messageId, exception.Message), exception)); return; } try { _packetSubject.OnNext(packet); } catch (Exception e) { _logger.Error($"Fatal error to publish packet:{e.Message}"); Debug.Assert(false, e.Message); } }
private void TryDecodePacket() { var messageId = PacketV2Helper.GetMessageId(_buffer, 0); var packet = CreatePacket(messageId); if (packet == null) { _decodeErrorSubject.OnNext(new MessageIdNotFoundException(messageId)); return; } try { packet.Deserialize(_buffer, 0); } catch (Exception exception) { _decodeErrorSubject.OnNext(new DeserizliaePackageException(messageId, string.Format(RS.DecoderV2_TryDecodePacket_Error_for_deserialize_mavlink_V2, messageId, exception.Message), exception)); } _packetSubject.OnNext(packet); }