如何在 IoT Central - 命令页面中显示命令结果?
流动:
- 命令发送到设备
- 设备收到命令并返回Payload:
{ "status": 200, "payload": { "command": "ping", "result_code": "ok", "result_data": "ping 5 ms" } }
如何在 IoT Central 中显示这些数据?
现在 IoT Central 仅显示默认的“Sent at ...”消息。
如何在 IoT Central - 命令页面中显示命令结果?
流动:
{ "status": 200, "payload": { "command": "ping", "result_code": "ok", "result_data": "ping 5 ms" } }
如何在 IoT Central 中显示这些数据?
现在 IoT Central 仅显示默认的“Sent at ...”消息。
如果在设备上处理命令时设置与命令同名的报告属性,则可以设置在 IoT Central UI 中显示的值。例如,使用 Node.js,您可以为倒计时方法创建一个处理程序,如下所示:
function onCountdown(request, response) {
  console.log('received a request for Countdown');
  console.log(JSON.stringify(request.payload, null, 2));
  var fakeResponsePayload = {
    key: 'value'
  };
  response.send(200, fakeResponsePayload, function (err) {
    if (err) {
      console.error('Unable to send method response: ' + err.toString());
    } else {
      console.log('response to Countdown sent.');
      client.getTwin(function(err, twin) {
        if (err) {
          console.error('could not get twin');
        } else {
          console.log('twin created');
          var patch = {
            countdown:{
              value: 18
            }
          };
          twin.properties.reported.update(patch, function(err) {
            if (err) {
              console.error('unable to update twin: ' + err.toString());
            } else {
              console.log('twin state reported');
            }
          });
        }
      });      
    }
  });
}
client.onDeviceMethod('countdown', onCountdown);
请注意,命令的字段名称为countdown。
这里还有一个 C++ 示例:https ://github.com/Azure/iot-central-firmware/blob/master/MXCHIP/mxchip_advanced/src/registeredMethodHandlers.cpp