示例#1
0
        private static async Task SendDeviceToCloudMessagesAsync()
        {
            var weatherDataprovider = await SimulatedWeatherSensorProvider.Create();

            for (int i = 0; i < 288; i++)
            {
                double currentHumidity = weatherDataprovider.GetHumidity();
                double currentTemperature = weatherDataprovider.GetTemperature();
                double currentWindSpeed = weatherDataprovider.GetWindSpeed();

                var telemetryDataPoint = new
                {
                    time = DateTime.Now.ToString(),
                    deviceId = deviceId,
                    currentHumidity = currentHumidity,
                    currentTemperature = currentTemperature,
                    currentWindSpeed = currentWindSpeed
                };
                var messageString = JsonConvert.SerializeObject(telemetryDataPoint);
                var message = new Message(Encoding.ASCII.GetBytes(messageString));

                await deviceClient.SendEventAsync(message);

                await Task.Delay(500);
            }
        }
 async Task SendEvent(string message)
 {
     var azureEntry = new
     {
         DeviceId = "RouterIoT",
         Timestamp = DateTime.Now.Ticks,
         Value = message
     };
     var eventMessage = new Message(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(azureEntry)));
     await deviceClient.SendEventAsync(eventMessage);
 }
示例#3
0
        private static async void SendDeviceToCloudMessagesAsync()
        {
            double avgWindSpeed = 10; // m/s
            Random rand = new Random();

            while (true)
            {
                double currentWindSpeed = avgWindSpeed + rand.NextDouble() * 4 - 2;

                var telemetryDataPoint = new
                {
                    deviceId = "RossDevice",
                    windSpeed = currentWindSpeed
                };
                var messageString = JsonConvert.SerializeObject(telemetryDataPoint);
                var message = new Message(Encoding.ASCII.GetBytes(messageString));

                await deviceClient.SendEventAsync(message);
                Console.WriteLine("{0} > Sending message: {1}", DateTime.Now, messageString);

                Thread.Sleep(1000);
            }
        }
        private static async void SendDeviceToCloudMessagesAsync(string status)
        {
            //create anonymous types
            var sensorData = new
            {
                sensorID = sensor1.SensorId,
                sensorType = sensor1.SensorType,
                rawData = sensor1.RawData,
                timeStamp = sensor1.TimeStamp,
                sampleRate = sensor1.SampleRate
            };

            var nodeData = new
            {
                nodeID = node1.NodeID,
                nodeType = node1.NodeType,
            };

            var DeviceData = new
            {
                deviceID = device1.DeviceID,
                deviceType = device1.DeviceType
            };

            //concatenate types into messageString 
            var messageString = JsonConvert.SerializeObject(DeviceData);
            messageString += JsonConvert.SerializeObject(nodeData);
            messageString += JsonConvert.SerializeObject(sensorData);

            var message = new Message(Encoding.ASCII.GetBytes(messageString));

            await deviceClient.SendEventAsync(message);
        }
        private static async void SendDeviceToCloudMessagesAsync(string status)
        {
            var telemetryDataPoint = new
            {
                deviceId = deviceName,
                time = DateTime.Now.ToString(),
                roomStatus = status
            };
            var messageString = JsonConvert.SerializeObject(telemetryDataPoint);
            var message = new Message(Encoding.ASCII.GetBytes(messageString));

            await deviceClient.SendEventAsync(message);
        }
        async Task<EmotionResult> GetEmotion(CancellationToken token, int stage)
        {
            try
            {
                for (int retry = 0; retry < 2; retry++)
                {
                    Log("Capturing photo");
                    using (var mediaStream = new MemoryStream())
                    {
                        await mediaCapture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreateJpeg(), mediaStream.AsRandomAccessStream());
                        if (token.IsCancellationRequested)
                            return null;
                        mediaStream.Position = 0L;


                        await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
                        {
                            BitmapImage img = new BitmapImage();
                            await img.SetSourceAsync(mediaStream.AsRandomAccessStream());

                            if (stage == 0)
                            {
                                beforeImage.Source = img;
                            }
                            else if (stage == 1)
                            {
                                afterImage.Source = img;
                            }
                        });
                        mediaStream.Position = 0L;

                        Log("Getting emotion");
                        var emotions = await emotionClient.RecognizeAsync(mediaStream);
                        if (token.IsCancellationRequested)
                            return null;
                        if (emotions != null && emotions.Length > 0)
                        {
                            Log("Emotion recognized");
                            var nearestOne = emotions.OrderByDescending(emotion => emotion.FaceRectangle.Height * emotion.FaceRectangle.Width).First();

                            var list = new[] { new { Emotion="Anger", Score= nearestOne.Scores.Anger },
                                new { Emotion="Contempt", Score= nearestOne.Scores.Contempt},
                                new { Emotion="Disgust", Score= nearestOne.Scores.Disgust },
                                new { Emotion="Fear", Score= nearestOne.Scores.Fear },
                                new { Emotion="Happiness", Score= nearestOne.Scores.Happiness },
                                new { Emotion="Neutral", Score= nearestOne.Scores.Neutral },
                                new { Emotion="Sadness", Score= nearestOne.Scores.Sadness },
                                new { Emotion="Surprise", Score= nearestOne.Scores.Surprise }};

                            var max = list.ToList().OrderByDescending(a => a.Score).First();
                            //Show the picture
                            await beforeImage.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                           {
                               if (stage == 0)
                               {
                                   drawEmotionRectangle(beforeRectangleCanvas, nearestOne.FaceRectangle,
                                       max.Score * 100, max.Emotion);
                                   beforeEmotion.Text = max.Emotion;
                                   beforeEmotionScore.Text = (max.Score * 100.0).ToString();
                               }
                               else if (stage == 1)
                               {
                                   drawEmotionRectangle(afterRectangleCanvas, nearestOne.FaceRectangle,
                                       max.Score * 100, max.Emotion);
                                   afterEmotion.Text = max.Emotion;
                                   afterEmotionScore.Text = (max.Score * 100.0).ToString();
                               }

                           });

                            return new EmotionResult { Date = DateTime.Now, Emotion = max.Emotion, Score = (int)(max.Score * 100.0), Stage = stage };
                        }
                        else
                        {
                            Log("emotion not recognized, retry");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log(ex.Message);
            }
            return null;
        }