{
  "$schema": "https://apidocs.iqrf.org/iqrf-gateway-daemon/latest/com.iqrftech.self-desc/schema/jsonschema/1-0-0#",
  "self": {
    "vendor": "com.iqrftech.self-desc",
    "name": "iqrfSensor_Frc-request",
    "format": "jsonschema",
    "version": "1-0-0"
  },
  "type": "object",
  "properties": {
    "mType": {
      "type": "string",
      "description": "Standard peripheral Sensor - FRC request.",
      "enum": [
        "iqrfSensor_Frc"
      ]
    },
    "data": {
      "type": "object",
      "properties": {
        "msgId": {
          "type": "string",
          "description": "Message identification for binding request with response."
        },
        "timeout": {
          "type": "integer",
          "description": "Timeout to wait for IQRF DPA response."
        },
        "req": {
          "type": "object",
          "properties": {
            "nAdr": {
              "type": "integer",
              "description": "Network device address."
            },
            "hwpId": {
              "type": "integer",
              "description": "Hardware profile identification."
            },
            "param": {
              "type": "object",
              "properties": {
                "sensorType": {
                  "type": "integer",
                  "description": "Type of sensor (quantity) to read values of. Refer to the Sensor interoperability standard https://www.iqrfalliance.org/iqrf-interoperability/ for details."
                },
                "sensorIndex": {
                  "type": "integer",
                  "description": "Index of the sensor. When the sensor type is specified, then its is an index among of all sensors of the specified type. Some FRC commands might use top 3 bits of this parameter for passing additional data."
                },
                "frcCommand": {
                  "type": "integer",
                  "description": "One of predefined standard sensor FRC commands. Use FRC commands available from Sensor enumeration."
                },
                "selectedNodes": {
                  "type": "array",
                  "description": "Array if integer values corresponding to the selected nodes. Use default value to select all nodes and use sleepAfterFrc parameter.",
                  "items": {
                    "type": "integer"
                  }
                },
                "sleepAfterFrc": {
                  "type": "object",
                  "description": "Object with the following fields to put the nodes into sleep mode after the FRC is finished.",
                  "properties": {
                    "time": {
                      "type": "integer",
                      "description": "See DPA documentation https://www.iqrf.org/DpaTechGuide/pages/sleep.html for details."
                    },
                    "control": {
                      "type": "integer",
                      "description": "See DPA documentation https://www.iqrf.org/DpaTechGuide/pages/sleep.html for details."
                    }
                  }
                },
                "getExtraResult": {
                  "type": "boolean",
                  "description": "If set Extra result DPA message is sent and processed",
                  "default": true
                },
                "extFormat": {
                  "type": "boolean",
                  "description": "Sensors returns in extended format",
                  "default": false
                }
              },
              "required": [
                "sensorType",
                "sensorIndex",
                "frcCommand"
              ]
            }
          },
          "required": [
            "nAdr",
            "param"
          ]
        },
        "returnVerbose": {
          "type": "boolean",
          "description": "Flag that includes additional parameters in the response."
        }
      },
      "required": [
        "msgId",
        "req"
      ]
    }
  },
  "required": [
    "mType",
    "data"
  ]
}