public LoRaMessageWrapper(LoRaPayload payload, LoRaMessageType type, byte[] physicalToken, string datr, uint rfch, double freq, long tmst) { LoRaPayloadMessage = payload; PktFwdPayload = new DownlinkPktFwdMessage(Convert.ToBase64String(LoRaPayloadMessage.GetByteMessage()), datr, rfch, freq, tmst); var jsonMsg = JsonConvert.SerializeObject(PktFwdPayload); Logger.Log(ConversionHelper.ByteArrayToString(payload.GetLoRaMessage().DevEUI.ToArray()), $"{((MType)(payload.Mhdr.Span[0])).ToString()} {jsonMsg}", Logger.LoggingLevel.Full); var messageBytes = Encoding.Default.GetBytes(jsonMsg); PhysicalPayload = new PhysicalPayload(physicalToken, PhysicalIdentifier.PULL_RESP, messageBytes); }
/// <summary> /// This contructor is used in case of downlink message /// </summary> /// <param name="inputMessage"></param> /// <param name="type"> /// 0 = Join Request /// 1 = Join Accept /// 2 = Unconfirmed Data up /// 3 = Unconfirmed Data down /// 4 = Confirmed Data up /// 5 = Confirmed Data down /// 6 = Rejoin Request</param> public LoRaMessageWrapper(LoRaPayload payload, LoRaMessageType type, byte[] physicalToken) { LoRaPayloadMessage = payload; // construct a Join Accept Message if (type == LoRaMessageType.JoinAccept) { var downlinkmsg = new DownlinkPktFwdMessage(Convert.ToBase64String(payload.GetByteMessage())); PktFwdPayload = downlinkmsg; var jsonMsg = JsonConvert.SerializeObject(downlinkmsg); var messageBytes = Encoding.Default.GetBytes(jsonMsg); PhysicalPayload = new PhysicalPayload(physicalToken, PhysicalIdentifier.PULL_RESP, messageBytes); } else if (type == LoRaMessageType.UnconfirmedDataDown) { throw new NotImplementedException(); } else if (type == LoRaMessageType.ConfirmedDataDown) { throw new NotImplementedException(); } }