我正在尝试在 C# 中实现相同的方法,但找不到 javascript const patch = {..} 的等效方法
我也不太明白这里发生了什么 - 为什么补丁有一个属性“rundiagnostics”,它似乎是方法名称,以及为什么要更新孪生报告的属性。
我想处理一个长时间运行的命令并在命令响应中反映结果。目前尚不完全清楚 IoT Central 如何处理长时间运行的命令,因此欢迎任何额外的解释。也许是一两个序列图 (??)。
文档链接此处
client.onDeviceMethod('rundiagnostics', commandHandler);
// ...
const commandHandler = async (request, response) => {
switch (request.methodName) {
case 'rundiagnostics': {
console.log('Starting long-running diagnostics run ' + request.payload);
await sendCommandResponse(request, response, 202, 'Diagnostics run started');
// Long-running operation here
// ...
const patch = {
rundiagnostics: {
value: 'Diagnostics run complete at ' + new Date().toLocaleString()
}
};
deviceTwin.properties.reported.update(patch, function (err) {
if (err) throw err;
console.log('Properties have been reported for component');
});
break;
}
default:
await sendCommandResponse(request, response, 404, 'unknown method');
break;
}
};
您将补丁定义为如下字符串:
var patch =
@"{
tags: {
location: {
region: 'US',
plant: 'Redmond43'
}
}
}";
并且您可能需要将整个脚本更改为 C# 等效脚本。
请参阅 https://learn.microsoft.com/en-us/azure/iot-hub/device-twins-dotnet 了解详细的 C# 示例。