internal DeviceControlReportLedStatusRequest(DeviceControlRequestId deviceControlRequestId, uint sequenceId, byte[] payload) : base(CategoryIdType.DeviceControl, (ushort)deviceControlRequestId, sequenceId, payload, 4) { /* Data format: * * - 00 [ 1 ] LED Status * - 01 [ 3 ] Reserved */ this.LedStatus = (payload[0] == 0x01); }
private static RequestBase ExtractRequestPayload(CategoryIdType categoryId, ushort requestType, uint sequenceId, byte[] payload) { switch (categoryId) { case CategoryIdType.DeviceControl: DeviceControlRequestId deviceControlRequestId = (DeviceControlRequestId)requestType; switch (deviceControlRequestId) { case DeviceControlRequestId.GetDesiredLedStatus: return(new DeviceControlGetDesiredLedStatusRequest(deviceControlRequestId, sequenceId)); case DeviceControlRequestId.ReportLedStatus: return(new DeviceControlReportLedStatusRequest(deviceControlRequestId, sequenceId, payload)); default: throw new InvalidOperationException($"Unknown response payload type: {(WifiRequestId)requestType}"); } case CategoryIdType.WifiControl: WifiRequestId wifiRequestId = (WifiRequestId)requestType; switch (wifiRequestId) { case WifiRequestId.SetWifiStatus: return(new WifiStatusRequest(wifiRequestId, sequenceId, payload)); case WifiRequestId.SetWifiScanResultsSummary: return(new WifiScanSummaryRequest(wifiRequestId, sequenceId, payload)); case WifiRequestId.SetNextWifiScanResult: return(new WifiScanResultRequest(wifiRequestId, sequenceId, payload)); case WifiRequestId.GetNewWifiDetails: // This request doesn't have a payload return(new WifiGetNewDetailsRequest(wifiRequestId, sequenceId)); case WifiRequestId.SetWifiOperationResult: return(new WifiSetRequest(wifiRequestId, sequenceId, payload)); default: throw new InvalidOperationException($"Unknown response payload type: {wifiRequestId}"); } default: throw new InvalidOperationException($"Unknown Category ID type: {categoryId}"); } }
internal DeviceControlGetDesiredLedStatusRequest(DeviceControlRequestId deviceControlRequestId, uint sequenceId) : base(CategoryIdType.DeviceControl, (ushort)deviceControlRequestId, sequenceId, null, 0) { // This request type doesn't have a payload. }