in Hands-on lab/lab-files/starter-project/SmartMeterSimulator/MainForm.cs [170:201]
private void DoWork(Sensor sensor)
{
switch (sensor.State)
{
case DeviceState.Connected:
//add some delay
Thread.Sleep(delay / 2);
//Set device to transmit
sensor.State = DeviceState.Transmit;
//Send sensor data to Iot Hubs
sensor.SendMessageAsync();
break;
case DeviceState.Transmit:
//add some delay
Thread.Sleep(delay / 2);
//set device to ready
sensor.State = DeviceState.Connected;
break;
}
//Check for any cloud-to-device messages sent through IoT Hub:
if (sensor.State == DeviceState.Connected || sensor.State == DeviceState.Transmit)
{
sensor.ReceiveMessageAsync();
}
//Update the Device
WorkComplete(sensor);
}