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);
 }
Example #2
0
        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.
 }