SendDeviceToCloudMessageAsync() public static method

public static SendDeviceToCloudMessageAsync ( ) : Task
return Task
示例#1
0
        static void DoSends(CancellationToken ct, string iotHubConnectionString)
        {
            // Was cancellation already requested?
            if (ct.IsCancellationRequested == true)
            {
                Console.WriteLine("DoSends was cancelled before it got started.");
                ct.ThrowIfCancellationRequested();
            }

            long msgTime      = 1473956534640;
            var  deviceClient = DeviceClient.CreateFromConnectionString(iotHubConnectionString, TransportType.Amqp);

            while (true)
            {
                //send device to cloud telemetry
                var deviceToCloudMessage = new DeviceTelemetryMessage
                {
                    datestamp   = DateTime.UtcNow,
                    response    = "environment",
                    temperature = lastTemp,
                    humidity    = 28.7,
                    pressure    = 100912
                };

                var messageString = JsonConvert.SerializeObject(deviceToCloudMessage);
                var sendTask      = AzureIoTHub.SendDeviceToCloudMessageAsync(deviceClient, messageString);
                sendTask.Wait(ct);
                Console.WriteLine("Sent Message to Cloud: {0}", messageString);
                ct.WaitHandle.WaitOne(TimeSpan.FromSeconds(5));//wait before sending so we are not in a tight loop

                ++msgTime;
            }
        }
示例#2
0
        static void DoSends(CancellationToken ct)
        {
            // Was cancellation already requested?
            if (ct.IsCancellationRequested == true)
            {
                Console.WriteLine("DoSends was cancelled before it got started.");
                ct.ThrowIfCancellationRequested();
            }

            long msgTime   = 1473956534640;
            int  iteration = 0;

            while (true)
            {
                //send device to cloud telemetry
                var deviceToCloudMessage = new DeviceTelemetryMessage
                {
                    datestamp   = DateTime.UtcNow,
                    response    = "environment",
                    temperature = lastTemp,
                    humidity    = 28.7,
                    pressure    = 100912,
                    message_id  = Guid.NewGuid().ToString(),
                    device_id   = deviceId
                };

                var messageString = JsonConvert.SerializeObject(deviceToCloudMessage);
                var sendTask      = AzureIoTHub.SendDeviceToCloudMessageAsync(messageString, deviceToCloudMessage.message_id);
                sendTask.Wait(ct);
                Console.WriteLine("Sent Message to Cloud: {0}", messageString);
                ct.WaitHandle.WaitOne(TimeSpan.FromSeconds(sendIntervalInSeconds));//wait before sending so we are not in a tight loop

                ++msgTime;
            }
        }
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            _pinDht = _gpio.OpenPin(DHT11_PIN, GpioSharingMode.Exclusive);
            _dht11  = new Dht11(_pinDht, GpioPinDriveMode.Input);

            _pinLed = _gpio.OpenPin(LED_PIN);
            _pinLed.SetDriveMode(GpioPinDriveMode.Output);
            _pinLed.Write(GpioPinValue.Low);

            _timer.Start();

            _startedAt = DateTimeOffset.Now;

            // Send IoT device info (once).
            if (_sendToCloud)
            {
                try {
                    await AzureIoTHub.SendDeviceToCloudMessageAsync(JsonConvert.SerializeObject(_deviceInfo));

                    _gridOffline.Visibility = Visibility.Collapsed;
                }
                catch (Exception ex) {
                    Debug.WriteLine("Problem sending to IoT Hub: " + ex.Message.ToString());
                    _gridOffline.Visibility = Visibility.Visible;
                }
            }
        }
示例#4
0
        //private string CheckForStateValue(eState newState)
        //{
        //    String lightStatus;

        //    switch (newState)
        //    {
        //        case eState.JustRight:
        //            {
        //                lightStatus = JustRightLightString;
        //            }
        //            break;

        //        case eState.TooBright:
        //            {
        //                lightStatus = HighLightString;
        //            }
        //            break;

        //        case eState.TooDark:
        //            {
        //                lightStatus = LowLightString;
        //            }
        //            break;

        //        default:
        //            {
        //                lightStatus = "N/A";
        //            }
        //            break;
        //    }

        //    return lightStatus;
        //}


        private async Task SendDeviceToCloudMessageAsync(string status, BMP280SensorData BMP280SensorData, MCP3008SensorData MCP3008SensorData)
        {
            ConferenceRoomDataPoint conferenceRoomDataPoint = new ConferenceRoomDataPoint()
            {
                DeviceId     = deviceName,
                Time         = DateTime.UtcNow.ToString("o"),
                RoomTemp     = BMP280SensorData.Temperature.ToString(),
                RoomPressure = BMP280SensorData.Pressure.ToString(),
                RoomAlt      = BMP280SensorData.Altitude.ToString(),
            };

            if (status == "Occupied")
            {
                conferenceRoomDataPoint.Color = "Red";
            }
            else
            {
                conferenceRoomDataPoint.Color = "Green";
            }



            var jsonString = JsonConvert.SerializeObject(conferenceRoomDataPoint);
            //var jsonStringInBytes = new Message(Encoding.ASCII.GetBytes(jsonString));

            await AzureIoTHub.SendDeviceToCloudMessageAsync(jsonString);

            Debug.WriteLine("{0} > Sending message: {1}", DateTime.UtcNow, jsonString);
        }
示例#5
0
 async public Task Display(IDeviceMessage sensor)
 {
     await AzureIoTHub.SendDeviceToCloudMessageAsync(sensor.MachineID, JsonConvert.SerializeObject(sensor, new JsonSerializerSettings()
     {
         NullValueHandling = NullValueHandling.Ignore
     }));
 }
        private async void SendButton_Click(object sender, RoutedEventArgs e)
        {
            AzureIoTHub.SendDeviceToCloudMessageAsync();
            var message = await AzureIoTHub.ReceiveCloudToDeviceMessageAsync();

            Debug.WriteLine("Message: " + message);
        }
示例#7
0
        private static async void sendMessage()
        {
            double avgWindSpeed = 10; // m/s
            Random rand         = new Random();

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

                var telemetryDataPoint = new
                {
                    deviceId  = "myFirstDevice",
                    windSpeed = currentWindSpeed
                };
                var messageString = JsonConvert.SerializeObject(telemetryDataPoint);
                //var message = new Microsoft.Azure.Devices.Client.Message(Encoding.ASCII.GetBytes(messageString));



                await AzureIoTHub.SendDeviceToCloudMessageAsync(messageString);

                // HelloMessage.Text = String.Format("{0} > Sending message: {1}", DateTime.Now, messageString);
                // Console.WriteLine("{0} > Sending message: {1}", DateTime.Now, messageString);

                Task.Delay(1000).Wait();
            }
            // await AzureIoTHub.SendDeviceToCloudMessageAsync();
        }
        private void UpdateDevice_Click(object sender, RoutedEventArgs e)
        {
            AzureDevices SelectedDevice = (AzureDevices)DeviceList.SelectedItems[0];

            if (TrueRadio.IsChecked.Value)
            {
                SelectedDevice.Status = true;
            }
            else
            {
                SelectedDevice.Status = false;
            }

            var index = DeviceList.Items.IndexOf(DeviceList.SelectedItem);

            list.RemoveAt(index);
            list.Insert(index, SelectedDevice);

            /* DeviceList.ItemsSource = null;
             * DeviceList.ItemsSource = list;*/

            MyAzureClass myAzureClass = new MyAzureClass();

            myAzureClass.UpdateRecordInTable(SelectedDevice);
            AzureIoTHub.SendDeviceToCloudMessageAsync();
        }
示例#9
0
        private async Task CollectSensorData(IProgress <Measurement> progress)
        {
            using (ISenseHat senseHat = await SenseHatFactory.GetSenseHat())
            {
                for (; ;)
                {
                    try
                    {
                        senseHat.Sensors.HumiditySensor.Update();
                        senseHat.Sensors.PressureSensor.Update();
                        senseHat.Sensors.ImuSensor.Update();

                        var measurement = new Measurement()
                        {
                            Temperature   = senseHat.Sensors.Temperature ?? 0,
                            Humidity      = senseHat.Sensors.Humidity ?? 0,
                            Pressure      = senseHat.Sensors.Pressure ?? 0,
                            MagneticField = (Vector3)senseHat.Sensors.MagneticField,
                            Gyroscope     = (Vector3)senseHat.Sensors.Gyro,
                            Acceleration  = (Vector3)senseHat.Sensors.Acceleration
                        };
                        progress.Report(measurement);

                        await AzureIoTHub.SendDeviceToCloudMessageAsync(measurement);
                    } catch (Exception e)
                    {
                        Debug.WriteLine("Exception: " + e.Message);
                    }
                    await Task.Delay(1000);
                }
            }
        }
示例#10
0
 public void Stop()
 {
     ena.Write(GpioPinValue.Low);
     enb.Write(GpioPinValue.Low);
     in1.Write(GpioPinValue.Low);
     in2.Write(GpioPinValue.Low);
     in3.Write(GpioPinValue.Low);
     in4.Write(GpioPinValue.Low);
     if (timerForward.IsRunning)
     {
         Debug.WriteLine("Tiempo hacia delante: " + timerForward.ElapsedMilliseconds);
         timerForward.Stop();
         AzureIoTHub.SendDeviceToCloudMessageAsync((int)timerForward.ElapsedMilliseconds, "forward", true);
     }
     if (timerBacward.IsRunning)
     {
         Debug.WriteLine("Tiempo hacia atrás: " + timerBacward.ElapsedMilliseconds);
         timerBacward.Stop();
         AzureIoTHub.SendDeviceToCloudMessageAsync((int)timerForward.ElapsedMilliseconds, "backward", true);
     }
     if (timerLeft.IsRunning)
     {
         Debug.WriteLine("Tiempo hacia izquierda: " + timerLeft.ElapsedMilliseconds);
         timerLeft.Stop();
         AzureIoTHub.SendDeviceToCloudMessageAsync((int)timerForward.ElapsedMilliseconds, "left", false);
     }
     if (timerRight.IsRunning)
     {
         Debug.WriteLine("Tiempo hacia derecha: " + timerRight.ElapsedMilliseconds);
         timerRight.Stop();
         AzureIoTHub.SendDeviceToCloudMessageAsync((int)timerForward.ElapsedMilliseconds, "right", false);
     }
 }
        private async Task ReadAsync()
        {
            Task <UInt32> loadAsyncTask;
            uint          ReadBufferLength = 1024;
            string        MedValues        = null;

            // Set InputStreamOptions to complete the asynchronous read operation when one or   more bytes is available
            dataReaderObject.InputStreamOptions = InputStreamOptions.Partial;

            // Create a task object to wait for data on the serialPort.InputStream
            loadAsyncTask = dataReaderObject.LoadAsync(ReadBufferLength).AsTask();

            UInt32 bytesRead = await loadAsyncTask;

            if (bytesRead > 0)
            {
                string pulseReading = dataReaderObject.ReadString(bytesRead)
                                      .Split(new[] { "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries).Last().Trim();
                MedValues = rcvdText.Text =
                    $"Medical_IOT_PulseOximeter,John Doe,{pulseReading},17.438575,78.510194";
                //,17.3971, 78.4903";
                status.Text = "bytes read successfully!";
                await AzureIoTHub.SendDeviceToCloudMessageAsync(MedValues);
            }
            await Task.Delay(TimeSpan.FromSeconds(3));
        }
示例#12
0
        public async void uda()
        {
            int ud = 3;

            this.InitializeComponent();
            await AzureIoTHub.SendDeviceToCloudMessageAsync(ud.ToString());

            //await AzureIoTHub.ReceiveCloudToDeviceMessageAsync(luminozitate.ToString());
        }
示例#13
0
        private void DeviceStatusButton_PointerPressed(object sender, PointerRoutedEventArgs e)
        {
            MainDevice.Status = true;
            MyAzureClass myAzureClass = new MyAzureClass();

            myAzureClass.UpdateRecordInTable(MainDevice);
            AzureIoTHub.SendDeviceToCloudMessageAsync();
            Debug.WriteLine("Button Pressed");
        }
 private async Task SendDataToAzure()
 {
     while (true)
     {
         if (SendDataToAzureIoTHub)
         {
             await AzureIoTHub.SendDeviceToCloudMessageAsync();
         }
         await Task.Delay(1000);
     }
 }
示例#15
0
        public async void sendSong()
        {
            System.Diagnostics.Debug.WriteLine("sending...");

            Dictionary <string, string> jsend = new Dictionary <string, string>();
            DRP drp = new DRP(DRPDevType.RBPI, "yeguslavia", 2, 3, new System.Collections.Generic.List <float>(), 0, DRPMessageType.ILLEGAL);

            await AzureIoTHub.SendDeviceToCloudMessageAsync(drp.ToString());

            System.Diagnostics.Debug.WriteLine("message send");
        }
示例#16
0
        private async void SendGeoPosition(BasicGeoposition location)
        {
            // The location to reverse geocode.
            while (true)
            {
                string str = "ambulance2" + "," + location.Latitude.ToString() + "," + location.Longitude.ToString();
                await AzureIoTHub.SendDeviceToCloudMessageAsync(str);


                await Task.Delay(10000);
            }
        }
示例#17
0
 private void SendMessagesToIoTHub()
 {
     Task.Run(async() => {
         try
         {
             await AzureIoTHub.SendDeviceToCloudMessageAsync();
         }
         catch (Exception e)
         {
             Console.WriteLine(e.Message);
         }
     });
 }
        private async void _timer_Tick(object sender, object e)
        {
            DhtReading reading = new DhtReading();
            int        val     = this.TotalAttempts;

            this.TotalAttempts++;

            reading = await _dht11.GetReadingAsync().AsTask();

            _retryCount.Add(reading.RetryCount);
            this.OnPropertyChanged(nameof(AverageRetriesDisplay));
            this.OnPropertyChanged(nameof(TotalAttempts));
            this.OnPropertyChanged(nameof(PercentSuccess));

            if (reading.IsValid)
            {
                this.TotalSuccess++;
                this.Temperature = Convert.ToSingle(reading.Temperature);
                this.Humidity    = Convert.ToSingle(reading.Humidity);
                this.LastUpdated = DateTimeOffset.Now;

                // Set IoT data.
                _sensorData                     = new SensorData();
                _sensorData.DeviceId            = _deviceName;
                _sensorData.Temperature         = Convert.ToSingle(reading.Temperature);
                _sensorData.ExternalTemperature = 20;
                _sensorData.Humidity            = Convert.ToSingle(reading.Humidity);

                // Blink led.
                this.BlinkLed();

                // Send IoT data.
                if (_sendToCloud)
                {
                    try {
                        await AzureIoTHub.SendDeviceToCloudMessageAsync(JsonConvert.SerializeObject(_sensorData));

                        _gridOffline.Visibility = Visibility.Collapsed;
                    }
                    catch (Exception ex) {
                        Debug.WriteLine("Problem sending to IoT Hub: " + ex.Message.ToString());
                        _gridOffline.Visibility = Visibility.Visible;
                    }
                }

                // Update UI.
                this.OnPropertyChanged(nameof(SuccessRate));
            }

            this.OnPropertyChanged(nameof(LastUpdatedDisplay));
        }
示例#19
0
        private async void send_button_Click(object sender, RoutedEventArgs e)
        {
            // Read data from the simulated sensor
            SensorData data = new SensorData();

            data.Temperature = Convert.ToDouble(this.InTemperature.Text);
            data.Pressure    = Convert.ToDouble(this.InPressure.Text);

            // Send data to the cloud
            await AzureIoTHub.SendDeviceToCloudMessageAsync(data);

            Debug.WriteLine(String.Format("Data sent: {0}, {1}",
                                          data.Temperature, data.Pressure));
        }
        public async void getData()
        {
            // Read data from the sensor
            WeatherData data = new WeatherData();

            data.Temperature = tempAndPressure.Temperature.DegreesCelsius;
            data.Pressure    = tempAndPressure.Pressure.Bars;

            // Send data to the cloud
            await AzureIoTHub.SendDeviceToCloudMessageAsync(data);

            Debug.WriteLine(String.Format("Data sent: {0}, {1}",
                                          data.Temperature, data.Pressure));
        }
示例#21
0
        private async void buttonPin_ValueChangedAsync(GpioPin sender, GpioPinValueChangedEventArgs e)
        {
            MyAzureClass myAzureClass = new MyAzureClass();

            // toggle the state of the LED every time the button is pressed
            if (e.Edge == GpioPinEdge.FallingEdge)
            {
                ledPinValue = (ledPinValue == GpioPinValue.Low) ?
                              GpioPinValue.High : GpioPinValue.Low;
                ledPin.Write(ledPinValue);
                MainDevice.Status = Convert.ToBoolean(ledPinValue);
                myAzureClass.UpdateRecordInTable(MainDevice);
                AzureIoTHub.SendDeviceToCloudMessageAsync();
            }
        }
示例#22
0
        private async void _timer_Tick(object sender, object e)
        {
            var temp = await _bme280.ReadTemperature();

            var humidity = await _bme280.ReadHumidity();

            var pressure = await _bme280.ReadPressure();

            var altitude = await _bme280.ReadAltitude(seaLevelPressure);

            temp = (temp * 9) / 5 + 32;;
            await AzureIoTHub.SendDeviceToCloudMessageAsync(temp, humidity, pressure, altitude);

            Debug.WriteLine("Temp: {0} deg F", temp);
            Debug.WriteLine("Humidity: {0} %", humidity);
            Debug.WriteLine("Pressure: {0} Pa", pressure);
            Debug.WriteLine("Altitude: {0} m", altitude);
        }
示例#23
0
        }//发送指令

        private async void UpLoadData(int PortNum, Router.Controller.FileIO Obj)
        {
            try
            {
                string[] DataQune = await Obj.PoPToCloud();//Obj.PoPOut();PoPToCloud();

                foreach (var item in DataQune)
                {
                    string content = "";
                    if (RSAFlag == true)
                    {
                        content = RSAConvert.PublicEncrypt(item);//RSA加密
                    }
                    else
                    {
                        content = item;
                    }
                    if (AZureFlag == true)//使用AZure IoT
                    {
                        await AzureIoTHub.SendDeviceToCloudMessageAsync(item);
                    }

                    if (string.IsNullOrEmpty(content))
                    {
                        continue;
                    }
                    using (DatagramSocket socket = new DatagramSocket())
                    {
                        HostName      broardaddr = new HostName(IPAddress.Broadcast.ToString());
                        IOutputStream outstream  = await socket.GetOutputStreamAsync(broardaddr, PortNum.ToString());

                        DataWriter writer = new DataWriter(outstream);
                        writer.UnicodeEncoding = UnicodeEncoding.Utf8;
                        uint len = writer.MeasureString(content);
                        writer.WriteUInt32(len);
                        writer.WriteString(content);
                        await writer.StoreAsync();

                        writer.Dispose();
                    }
                }
            }
            catch (Exception) { }
        }//向云上传数据
示例#24
0
        private async void FileReadTimer_Tick(ThreadPoolTimer timer)
        {
            Debug.WriteLine("ReadFile");
            Windows.Storage.StorageFolder storageFolder = Windows.Storage.KnownFolders.PicturesLibrary; //.ApplicationData.Current.LocalFolder;

            try
            {
                Windows.Storage.StorageFile dFile =
                    await storageFolder.GetFileAsync("app2cloud.txt");

                var list = await Windows.Storage.FileIO.ReadLinesAsync(dFile);

                if (list.Count > 0)
                {
                    foreach (string s in list)
                    {
                        try
                        {
                            if (deviceId != null)
                            {
                                Debug.Write(".");
                                DateTime d = DateTime.UtcNow;
                                long     x = d.ToFileTime();
                                await AzureIoTHub.SendDeviceToCloudMessageAsync("{\"pkey\":\"" + deviceId + "\", \"rkey\":\"" + x.ToString() + "\",\"status\":\"" + s + "\"}");
                            }
                        }
                        catch
                        {
                            Debug.Write("e");
                        }
                    }
                }
                else
                {
                }
            }
            catch (Exception ex)
            {
                Debug.Write("E");
            }
            this.fileReadTimer = ThreadPoolTimer.CreateTimer(FileReadTimer_Tick, TimeSpan.FromMilliseconds(900));
        }
示例#25
0
        private async Task UpdateBatteryInfo()
        {
            BatteryReport br = await this.GetBatteryStatus();

            DateTime d = DateTime.UtcNow;
            long     x = d.ToFileTime();

            if (br == null)
            {
                await AzureIoTHub.SendDeviceToCloudMessageAsync("{\"pkey\":\"" + deviceId + "\", \"rkey\":\"" + x.ToString() + "\",\"status\":\"Idle\", \"rate\":\"0\", \"percent\":\"100\"}");
            }
            else
            {
                Debug.WriteLine(br.Status.ToString());
                Debug.WriteLine("Rate: " + br.ChargeRateInMilliwatts.Value.ToString() + "mW");
                Debug.WriteLine("Remaining: " + PowerManager.RemainingChargePercent.ToString() + "% " + PowerManager.RemainingDischargeTime.Hours.ToString() + "h " + PowerManager.RemainingDischargeTime.Minutes.ToString() + "min");
                //mt.SendData("R:"+ br.ChargeRateInMilliwatts.Value.ToString() + "P:" + PowerManager.RemainingChargePercent.ToString());

                await AzureIoTHub.SendDeviceToCloudMessageAsync("{\"pkey\":\"" + deviceId + "\", \"rkey\":\"" + x.ToString() + "\",\"status\":\"" + br.Status.ToString() + "\", \"rate\":\"" + br.ChargeRateInMilliwatts.Value.ToString() + "\", \"percent\":\"" + PowerManager.RemainingChargePercent.ToString() + "\"}");
            }//ScreenCapture screen = ScreenCapture.GetForCurrentView();
        }
示例#26
0
        public override void Run()
        {
            // notify with blue screen
            SenseHat.Display.Clear();
            SenseHat.Display.Fill(Colors.DeepSkyBlue);
            SenseHat.Display.Update();
            //update the sensor
            SenseHat.Sensors.HumiditySensor.Update();
            SenseHat.Sensors.PressureSensor.Update();
            // get the data to send
            SenseHatDatas data = new SenseHatDatas();

            data.TemperatureData = SenseHat.Sensors.Temperature;
            data.HumidityData    = SenseHat.Sensors.Humidity;
            data.PressureData    = SenseHat.Sensors.Pressure;
            // send to cloud
            AzureIoTHub.SendDeviceToCloudMessageAsync(data);



            ActionRunner.Run(senseHat => HomeSelector.GetAction(senseHat, SetScreenText));
        }
示例#27
0
        void dispatcherTimer_Tick(object sender, object e)
        {
            System.Diagnostics.Debug.WriteLine("dispatcherTimer_Tick()");
            DateTimeOffset time = DateTimeOffset.Now;
            TimeSpan       span = time - lastTime;

            lastTime = time;

            try
            {
                TelemtryData data = MeasureTelemetry();

                //sensor.Measure();
                //string sensorTemperatureInFahrenheit = sensor.TemperatureInFahrenheit.ToString();
                //string sensorHumidity = sensor.Humidity.ToString();

                string sensorTemperatureInFahrenheit = data.Temperature.ToString();
                string sensorHumidity = data.Humidity.ToString();

                this.txtT.Text = sensorTemperatureInFahrenheit + " F";
                this.txtH.Text = sensorHumidity + " %";

                display.SetText("T:" + sensorTemperatureInFahrenheit + " F.\nH:" + sensorHumidity + " %. ").SetBacklightRgb(127, 127, 127);;

                string msgString = Newtonsoft.Json.JsonConvert.SerializeObject(data);
                System.Diagnostics.Debug.WriteLine("json:" + msgString);

                Task.Run(async() =>
                {
                    //await AzureIoTHub.SendDeviceToCloudMessageAsync(msgString);
                    await AzureIoTHub.SendDeviceToCloudMessageAsync(msgString);
                });
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.ToString());
            }
        }
示例#28
0
 private void DeviceStatus_Clicked(object sender, RoutedEventArgs e)
 {
     if (DeviceStatusButton.IsEnabled)
     {
         if (DeviceStatusButton.Content.ToString() == "Not Clicked")
         {
             MainDevice.Status = true;
             MyAzureClass myAzureClass = new MyAzureClass();
             myAzureClass.UpdateRecordInTable(MainDevice);
             AzureIoTHub.SendDeviceToCloudMessageAsync();
             Debug.WriteLine("Button Pressed");
             DeviceStatusButton.Content = "Clicked";
         }
         else
         {
             MainDevice.Status = false;
             MyAzureClass myAzureClass = new MyAzureClass();
             myAzureClass.UpdateRecordInTable(MainDevice);
             AzureIoTHub.SendDeviceToCloudMessageAsync();
             Debug.WriteLine("Button Released");
             DeviceStatusButton.Content = "Not Clicked";
         }
     }
 }
        public async void Run(IBackgroundTaskInstance taskInstance)
        {
            Debug.WriteLine("Running....");
            InitGPIO();
            pin.Write(GpioPinValue.High);

            BackgroundTaskDeferral deferral = taskInstance.GetDeferral();

            mfrc = new Mfrc522();
            await mfrc.InitIO();

            // Main loop
            while (true)
            {
                //true when an RFiD tag is detected
                if (mfrc.IsTagPresent())
                {
                    pin.Write(GpioPinValue.Low);
                    Debug.WriteLine("IsTagPresent() == True.");
                    //read the UUID from the card
                    Uid uid = mfrc.ReadUid();
                    Debug.WriteLine("Tag value == " + uid.ToString());
                    //rfid controller halt state
                    //mfrc.HaltTag();

                    //Send message to IoT Hub
                    await AzureIoTHub.SendDeviceToCloudMessageAsync(uid.ToString());

                    pin.Write(GpioPinValue.High);
                }

                //sleep
                await System.Threading.Tasks.Task.Delay(TimeSpan.FromSeconds(1));
            }
            //deferral.Complete();
        }
示例#30
0
 public override async void OnNext(ObdState value)
 {
     var message = value.ToJson();
     await _hub.SendDeviceToCloudMessageAsync(message);
 }