Пример #1
0
        async Task SendEvent()
        {
#if (ACCESS_IOT_HUB)
            List <SensorReadingBuffer> currentReadings = new List <SensorReadingBuffer>();
            lock (this)
            {
                foreach (var r in lastSensorReading)
                {
                    currentReadings.Add(new SensorReadingBuffer()
                    {
                        AccelX      = r.AccelX,
                        AccelY      = r.AccelY,
                        AccelZ      = r.AccelZ,
                        Temperature = r.Temperature,
                        Brightness  = r.Brightness,
                        Timestamp   = r.Timestamp
                    });
                }
                lastSensorReading.Clear();
            }
            Debug.WriteLine("Device sending {0} messages to IoTHub...\n", currentReadings.Count);

            try
            {
                List <Models.SensorReading> sendingBuffers = new List <Models.SensorReading>();
                for (int count = 0; count < currentReadings.Count; count++)
                {
                    var sensorReading = new Models.SensorReading()
                    {
                        accelx    = currentReadings[count].AccelX,
                        accely    = currentReadings[count].AccelY,
                        accelz    = currentReadings[count].AccelZ,
                        temp      = currentReadings[count].Temperature,
                        time      = currentReadings[count].Timestamp,
                        Longitude = MSIoTKiTHoLJP.IoTHoLConfig.Longitude,
                        Latitude  = MSIoTKiTHoLJP.IoTHoLConfig.Latitude
                    };
                    sendingBuffers.Add(sensorReading);
                }
                var     payload      = JsonConvert.SerializeObject(sendingBuffers);
                Message eventMessage = new Message(Encoding.UTF8.GetBytes(payload));
                Debug.WriteLine("\t{0}> Sending message: {1}, Data: [{2}]", DateTime.Now.ToLocalTime(), currentReadings.Count, payload);

                await deviceClient.SendEventAsync(eventMessage);

                tbSendStatus.Text = "Send[" + sendCount++ + "]@" + DateTime.Now.ToString();
                IndicateDebug(GIS.FEZHAT.Color.Blue, 10);
            }
            catch (Exception ex)
            {
                Debug.Write(ex.Message);
                IndicateDebug(GIS.FEZHAT.Color.Yellow, 3600);
            }
#endif
        }
Пример #2
0
        async Task SendEvent()
        {
#if (ACCESS_IOT_HUB)
            List<SensorReadingBuffer> currentReadings = new List<SensorReadingBuffer>();
            lock (this)
            {
                foreach (var r in lastSensorReading)
                {
                    currentReadings.Add(new SensorReadingBuffer()
                    {
                        AccelX = r.AccelX,
                        AccelY = r.AccelY,
                        AccelZ = r.AccelZ,
                        Temperature = r.Temperature,
                        Brightness = r.Brightness,
                        Timestamp = r.Timestamp
                    });
                }
                lastSensorReading.Clear();
            }
            Debug.WriteLine("Device sending {0} messages to IoTHub...\n", currentReadings.Count);

            try
            {
                List<Models.SensorReading> sendingBuffers = new List<Models.SensorReading>();
                for (int count = 0; count < currentReadings.Count; count++)
                {
                    var sensorReading = new Models.SensorReading()
                    {
                        msgId = deviceId.ToString() + currentReadings[count].Timestamp.ToString("yyyyMMddhhmmssfff"),
                        accelx = currentReadings[count].AccelX,
                        accely = currentReadings[count].AccelY,
                        accelz = currentReadings[count].AccelZ,
                        deviceId = deviceId.ToString(),
                        temp = currentReadings[count].Temperature,
                        time = currentReadings[count].Timestamp,
                        Longitude = MSIoTKiTHoLJP.IoTHoLConfig.Longitude,
                        Latitude = MSIoTKiTHoLJP.IoTHoLConfig.Latitude
                    };
                    sendingBuffers.Add(sensorReading);
                }
                var payload = JsonConvert.SerializeObject(sendingBuffers);
                Message eventMessage = new Message(Encoding.UTF8.GetBytes(payload));
                Debug.WriteLine("\t{0}> Sending message: {1}, Data: [{2}]", DateTime.Now.ToLocalTime(), currentReadings.Count, payload);

                await deviceClient.SendEventAsync(eventMessage);
                tbSendStatus.Text = "Send[" + sendCount++ + "]@" + DateTime.Now.ToString();
                IndicateDebug(GIS.FEZHAT.Color.Blue, 10);
            }
            catch (Exception ex)
            {
                Debug.Write(ex.Message);
                IndicateDebug(GIS.FEZHAT.Color.Yellow, 3600);
            }
#endif
        }