private static DownlinkMessage BuildDownstreamMessage(LoRaDevice loRaDevice, StationEui stationEUI, ILogger logger, ulong xTime, ReceiveWindow?rx1, ReceiveWindow rx2, RxDelay lnsRxDelay, LoRaPayloadData loRaMessage, LoRaDeviceClassType deviceClassType, uint?antennaPreference = null) { var messageBytes = loRaMessage.Serialize(loRaDevice.AppSKey.Value, loRaDevice.NwkSKey.Value); var downlinkMessage = new DownlinkMessage( messageBytes, xTime, rx1, rx2, loRaDevice.DevEUI, lnsRxDelay, deviceClassType, stationEUI, antennaPreference ); if (logger.IsEnabled(LogLevel.Debug)) { logger.LogDebug($"{loRaMessage.MessageType} {JsonConvert.SerializeObject(downlinkMessage)}"); } return(downlinkMessage); }
public DownlinkMessage(byte[] payload, ulong xtime, ReceiveWindow?rx1, ReceiveWindow rx2, DevEui devEui, RxDelay lnsRxDelay, LoRaDeviceClassType deviceClassType, StationEui stationEui = default, uint?antennaPreference = null) { if (payload is null) { throw new ArgumentNullException(nameof(payload)); } Data = payload; DevEui = devEui; LnsRxDelay = lnsRxDelay; DeviceClassType = deviceClassType; AntennaPreference = antennaPreference; Rx1 = rx1; Rx2 = rx2; StationEui = stationEui; Xtime = xtime; }