コード例 #1
0
        public static async Task SBQueueListener(
      [ServiceBusTrigger("monitor")] BrokeredMessage msg, TextWriter logger)
        {
            var contentType = msg.ContentType;
            logger.WriteLine("Enqued Sequence Number" + msg.EnqueuedSequenceNumber);
            try
            {
                if (hub.State == ConnectionState.Disconnected)
                {
                    hub.Start().Wait();
                }
                using (var stream = msg.GetBody<Stream>())
                {
                    var reader = new StreamReader(stream);
                    var body = reader.ReadToEnd();
                    int startBody = body.IndexOf("{");
                    int endBody = body.LastIndexOf("}");
                    body = body.Substring(startBody, endBody - startBody + 1);
                    var rcvdDevStatus = JsonConvert.DeserializeObject<DeviceStatus>(body);
                    var deviceStatus = new DeviceStatus()
                    {
                        DeviceId = rcvdDevStatus.DeviceId,
                        tempavg = rcvdDevStatus.tempavg,
                        accelxavg = rcvdDevStatus.accelxavg,
                        accelyavg = rcvdDevStatus.accelyavg,
                        accelzavg = rcvdDevStatus.accelzavg,
                        Status = "normal",
                        time = rcvdDevStatus.time
                    };
                    int currentStatus = 0;
                    if (rcvdDevStatus.tempavg > 32)
                    {
                        currentStatus = 1;
                        deviceStatus.Status = "Too Hot!";
                    }
                    else
                    {
                        currentStatus = 2;
                    }
                    if (LastStatus != currentStatus)
                    {
                        proxy.Invoke("Update", new[] { deviceStatus });
                        LastStatus = currentStatus;

                        if (stepHub.State == ConnectionState.Disconnected)
                        {
                            stepHub.Start().Wait();
                            stepProxy.Invoke("Notify", new[] { new IoTKitHolTrackingPacket() {
                                DeviceId =deviceStatus.DeviceId,
                                HolVersion ="V3",
                                HolStep ="Step9",
                                Message ="Working" }
                            });
                        }
                    }
                    logger.WriteLine(body);
                }
                //   msg.
                msg.Complete();
            }
            catch (Exception ex)
            {
                logger.WriteLine("Failed - " + ex.Message);
            }
        }        static int LastStatus = 0;
コード例 #2
0
        public static async Task SBQueueListener(
            [ServiceBusTrigger("monitor")] BrokeredMessage msg, TextWriter logger)
        {
            var contentType = msg.ContentType;

            logger.WriteLine("Enqued Sequence Number" + msg.EnqueuedSequenceNumber);
            try
            {
                if (hub.State == ConnectionState.Disconnected)
                {
                    hub.Start().Wait();
                }
                using (var stream = msg.GetBody <Stream>())
                {
                    var reader    = new StreamReader(stream);
                    var body      = reader.ReadToEnd();
                    int startBody = body.IndexOf("{");
                    int endBody   = body.LastIndexOf("}");
                    body = body.Substring(startBody, endBody - startBody + 1);
                    var rcvdDevStatus = JsonConvert.DeserializeObject <DeviceStatus>(body);
                    var deviceStatus  = new DeviceStatus()
                    {
                        DeviceId  = rcvdDevStatus.DeviceId,
                        tempavg   = rcvdDevStatus.tempavg,
                        accelxavg = rcvdDevStatus.accelxavg,
                        accelyavg = rcvdDevStatus.accelyavg,
                        accelzavg = rcvdDevStatus.accelzavg,
                        Status    = "normal",
                        time      = rcvdDevStatus.time
                    };
                    int currentStatus = 0;
                    if (rcvdDevStatus.tempavg > 32)
                    {
                        currentStatus       = 1;
                        deviceStatus.Status = "Too Hot!";
                    }
                    else
                    {
                        currentStatus = 2;
                    }
                    if (LastStatus != currentStatus)
                    {
                        proxy.Invoke("Update", new[] { deviceStatus });
                        LastStatus = currentStatus;

                        if (stepHub.State == ConnectionState.Disconnected)
                        {
                            stepHub.Start().Wait();
                            stepProxy.Invoke("Notify", new[] { new IoTKitHolTrackingPacket()
                                                               {
                                                                   DeviceId   = deviceStatus.DeviceId,
                                                                   HolVersion = "V3",
                                                                   HolStep    = "Step9",
                                                                   Message    = "Working"
                                                               } });
                        }
                    }
                    logger.WriteLine(body);
                }
                //   msg.
                msg.Complete();
            }
            catch (Exception ex)
            {
                logger.WriteLine("Failed - " + ex.Message);
            }
        }