public byte[] getFinalMessage(byte [] token) { var downlinkmsg = new DownlinkPktFwdMessage(Convert.ToBase64String(rawMessage)); var messageBytes = Encoding.Default.GetBytes(JsonConvert.SerializeObject(downlinkmsg)); PhysicalPayload message = new PhysicalPayload(token, 0x03, messageBytes); return(message.GetMessage()); }
public LoRaMessage(LoRaGenericPayload payload, LoRaMessageType type, byte[] physicalToken, string _datr, uint _rfch, double _freq, long _tmst) { //construct a Join Accept Message if (type == LoRaMessageType.JoinAccept) { payloadMessage = (LoRaPayloadJoinAccept)payload; loraMetadata = new LoRaMetada(payloadMessage, type); var downlinkmsg = new DownlinkPktFwdMessage(loraMetadata.rawB64data, _datr, _rfch, _freq, _tmst); var jsonMsg = JsonConvert.SerializeObject(downlinkmsg); Console.WriteLine(jsonMsg); var messageBytes = Encoding.Default.GetBytes(jsonMsg); physicalPayload = new PhysicalPayload(physicalToken, PhysicalIdentifier.PULL_RESP, messageBytes); } else if (type == LoRaMessageType.UnconfirmedDataDown) { payloadMessage = (LoRaPayloadStandardData)payload; loraMetadata = new LoRaMetada(payloadMessage, type); var downlinkmsg = new DownlinkPktFwdMessage(loraMetadata.rawB64data, _datr, _rfch, _freq, _tmst + 1000000); var jsonMsg = JsonConvert.SerializeObject(downlinkmsg); Console.WriteLine(jsonMsg); var messageBytes = Encoding.Default.GetBytes(jsonMsg); physicalPayload = new PhysicalPayload(physicalToken, PhysicalIdentifier.PULL_RESP, messageBytes); } else if (type == LoRaMessageType.ConfirmedDataDown) { payloadMessage = (LoRaPayloadStandardData)payload; loraMetadata = new LoRaMetada(payloadMessage, type); var downlinkmsg = new DownlinkPktFwdMessage(loraMetadata.rawB64data, _datr, _rfch, _freq, _tmst + 1000000); var jsonMsg = JsonConvert.SerializeObject(downlinkmsg); Console.WriteLine(jsonMsg); 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 LoRaMessage(LoRaGenericPayload payload, LoRaMessageType type, byte[] physicalToken) { //construct a Join Accept Message if (type == LoRaMessageType.JoinAccept) { payloadMessage = (LoRaPayloadJoinAccept)payload; loraMetadata = new LoRaMetada(payloadMessage, type); var downlinkmsg = new DownlinkPktFwdMessage(loraMetadata.rawB64data); 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(); } }