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); }
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; }