手动触发模拟设备的警报
Manually Triggering Alerts for Simulated Devices
有没有我们可以手动触发模拟设备的警报,而不是等待它的值来触发它?例如手动设置设备的值。
您可以更新设置来实现此目的。在 Azure IoT Central 门户中,您可以编辑设置并像这样更新它:
点击更新按钮后,设备将收到 DesiredPropertyUpdate 回调。在该回调中,您可以配置设备采取行动。要完成此操作,您需要设置回调处理程序:
Client.SetDesiredPropertyUpdateCallbackAsync(HandleSettingChanged, null).Wait();
处理程序是这样的,例如:
private static async Task HandleSettingChanged(TwinCollection desiredProperties, object userContext)
{
try
{
Console.WriteLine("Received settings change...");
Console.WriteLine(JsonConvert.SerializeObject(desiredProperties));
string setting = "fanSpeed";
if (desiredProperties.Contains(setting))
{
// Act on setting change, then
AcknowledgeSettingChange(desiredProperties, setting);
}
await Client.UpdateReportedPropertiesAsync(reportedProperties);
}
catch (Exception ex)
{
Console.WriteLine();
Console.WriteLine("Error in sample: {0}", ex.Message);
}
}
详细内容可参考本教程:“Connect a Raspberry Pi to your Azure IoT Central application”。
有没有我们可以手动触发模拟设备的警报,而不是等待它的值来触发它?例如手动设置设备的值。
您可以更新设置来实现此目的。在 Azure IoT Central 门户中,您可以编辑设置并像这样更新它:
点击更新按钮后,设备将收到 DesiredPropertyUpdate 回调。在该回调中,您可以配置设备采取行动。要完成此操作,您需要设置回调处理程序:
Client.SetDesiredPropertyUpdateCallbackAsync(HandleSettingChanged, null).Wait();
处理程序是这样的,例如:
private static async Task HandleSettingChanged(TwinCollection desiredProperties, object userContext)
{
try
{
Console.WriteLine("Received settings change...");
Console.WriteLine(JsonConvert.SerializeObject(desiredProperties));
string setting = "fanSpeed";
if (desiredProperties.Contains(setting))
{
// Act on setting change, then
AcknowledgeSettingChange(desiredProperties, setting);
}
await Client.UpdateReportedPropertiesAsync(reportedProperties);
}
catch (Exception ex)
{
Console.WriteLine();
Console.WriteLine("Error in sample: {0}", ex.Message);
}
}
详细内容可参考本教程:“Connect a Raspberry Pi to your Azure IoT Central application”。