internal static LoRaDevice CreateFromSimulatedDevice( SimulatedDevice simulatedDevice, ILoRaDeviceClient loRaDeviceClient, DefaultLoRaDataRequestHandler requestHandler = null, ILoRaDeviceClientConnectionManager connectionManager = null) { var result = new LoRaDevice(simulatedDevice.LoRaDevice.DevAddr, simulatedDevice.LoRaDevice.DeviceID, connectionManager ?? new SingleDeviceConnectionManager(loRaDeviceClient)) { AppEUI = simulatedDevice.LoRaDevice.AppEUI, AppKey = simulatedDevice.LoRaDevice.AppKey, SensorDecoder = simulatedDevice.LoRaDevice.SensorDecoder, AppSKey = simulatedDevice.LoRaDevice.AppSKey, NwkSKey = simulatedDevice.LoRaDevice.NwkSKey, GatewayID = simulatedDevice.LoRaDevice.GatewayID, IsOurDevice = true, ClassType = (simulatedDevice.ClassType == 'C' || simulatedDevice.ClassType == 'c') ? LoRaDeviceClassType.C : LoRaDeviceClassType.A, }; result.SetFcntDown(simulatedDevice.FrmCntDown); result.SetFcntUp(simulatedDevice.FrmCntUp); result.AcceptFrameCountChanges(); if (requestHandler != null) { result.SetRequestHandler(requestHandler); } return(result); }
public LoRaDevice Create(IoTHubDeviceInfo deviceInfo) { if (!this.deviceClientMap.TryGetValue(deviceInfo.DevEUI, out var deviceClientToAssign)) { deviceClientToAssign = this.loRaDeviceClient; } var loRaDevice = new LoRaDevice( deviceInfo.DevAddr, deviceInfo.DevEUI, this.connectionManager); this.connectionManager.Register(loRaDevice, deviceClientToAssign); loRaDevice.SetRequestHandler(this.requestHandler ?? new DefaultLoRaDataRequestHandler(this.configuration, this.frameCounterUpdateStrategyProvider, new LoRaPayloadDecoder(), this.deduplicationFactory, this.adrStrategyProvider, this.adrManagerFactory, this.functionBundlerProvider)); this.deviceMap[deviceInfo.DevEUI] = loRaDevice; return(loRaDevice); }