/// <summary> /// Send message from the device to the cloud /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SendMessge_Click(object sender, RoutedEventArgs e) { try { // you have to have a device registered before you send a message. If not display message // and return if (device == null) { Messages.Items.Add($"Please make sure to register the device by clicking Create Device"); MessageBox.Show("Please make sure to register the device by clicking Create Device", "Create Device"); return; } // Initialize the DeviceCommsHelper so we can send/recieve messages DeviceCommsHelper.Initialize(Utils.ReadSetting("iotHubUri"), Utils.ReadSetting("DeviceName"), device.Authentication.SymmetricKey.PrimaryKey); Messages.Items.Add($"Initialized IoT Hub Comms"); // create the sample data IoTData ioTData = new IoTData() { ClientDevice = device.Id, LockId = "57" }; // Searlize the sample data to JSON var jsonMessage = JsonConvert.SerializeObject(ioTData); // Send the message to the IOTHub DeviceCommsHelper.SendDeviceToCloudMessagesAsync(jsonMessage); Messages.Items.Add($"Sent message to IoT Hub"); } catch (Exception ex) { Messages.Items.Add($"{Utils.FormatExceptionMessage(ex)}"); Console.WriteLine($"{Utils.FormatExceptionMessage(ex)}"); throw ex; } }
/// <summary> /// This method will wait for cloud to device messages /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ReadMessge_Click(object sender, RoutedEventArgs e) { try { // Initialize the DeviceCommsHelper so we can send/recieve messages DeviceCommsHelper.Initialize(Utils.ReadSetting("iotHubUri"), Utils.ReadSetting("DeviceName"), device.Authentication.SymmetricKey.PrimaryKey); Messages.Items.Add($"Initialize connection to IoT Hub"); DeviceCommsHelper.ReceiveCloudMessageAsync(); Messages.Items.Add($"Tune into Channel for Cloud to device messages"); } catch (Exception ex) { Messages.Items.Add($"{Utils.FormatExceptionMessage(ex)}"); Console.WriteLine($"{Utils.FormatExceptionMessage(ex)}"); throw ex; } }