private void btnSet_Click(object sender, EventArgs e) { TreeNode node = tvSensors.SelectedNode; if (node != null) { if (node.Level == 2) { TreeNode sensorNode = node.Parent; Sensor sensor = sensorNode.Tag as Sensor; string deviceType = ""; if (sensor.SensorDeviceType == SensorDeviceType.Door) { deviceType = "Door"; } if (sensor.SensorDeviceType == SensorDeviceType.Credential) { deviceType = "Credential"; } SafeInvoke(() => { SensorServiceClient.SignalReceived(sensor.DeviceToken, deviceType, sensor.Name, node.Text); }); } } }
private void tvDoors_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { e.Node.TreeView.SelectedNode = e.Node; if (MouseButtons.Right == e.Button && null != e.Node.Parent) { string enumName = treeNodeNameToEnumTypeName(e.Node.Name); if (!string.IsNullOrEmpty(enumName)) { var enumType = Type.GetType("SMC.Proxies." + enumName); var dialog = new DoorStateFlagChangeComboBox(e.Node, Enum.GetNames(enumType)); var deviceToken = e.Node.Parent.Name; var sensorName = e.Node.Name; dialog.SelectedValueChanged += (o, args) => { if (-1 != dialog.SelectedIndex) { var newValue = (string)dialog.Items[dialog.SelectedIndex]; e.Node.Text = e.Node.Name + ": " + newValue; SafeInvoke(() => { SensorServiceClient.SignalReceived(deviceToken, "Door", sensorName, newValue); }); } }; } } }
public void Start() { //We have to listen on the same port number to get the broadcast msgs UdpClient simpleSocket = new UdpClient(7000); //Listening to all IP's in our network, the port number does not matter, it will be overriden above IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); // Getting into the loop: while (true) { //Define the "predicted" max size of data to be received "4000" is more than enough byte[] databuffer = new byte[4000]; //Listening on the socket with ref ip => can be overriden! databuffer = simpleSocket.Receive(ref remoteEndPoint); String encodedText = Encoding.ASCII.GetString(databuffer); Console.WriteLine("Received data from sensor: \nPlain data\n" + encodedText); int light; int temp; String timestamp; //Listening to JSON & XML TextReader reader = new StringReader(encodedText); String str1 = reader.ReadLine(); String str2 = reader.ReadLine(); String str3 = reader.ReadLine(); light = Convert.ToInt32(str1.Split(' ')[1]); temp = Convert.ToInt32(str2.Split(' ')[1]); timestamp = str3.Split(' ')[1]; Console.WriteLine($"Received data from sensor: \nJSON and XML:\nlight={light}\ntemperature={temp}\ntimestamp={timestamp}\n"); using (SensorServiceClient azureClient = new SensorServiceClient("BasicHttpBinding_ISensorService")) { azureClient.StoreData(new SensorData { Light = Convert.ToByte(light), Temperature = Convert.ToByte(temp), TimeStamp = timestamp }); } } }
public static void Start() { IPEndPoint ep = new IPEndPoint(IPAddress.Any, 0); UdpClient simpleSocket = new UdpClient(5000); UdpClient jsonSocket = new UdpClient(5001); UdpClient xmlSocket = new UdpClient(5002); while (true) { //PLAIN Byte[] plainBuffer = simpleSocket.Receive(ref ep); String encodedText = Encoding.ASCII.GetString(plainBuffer); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"{encodedText}\n"); //JSON Byte[] jsonBuffer = jsonSocket.Receive(ref ep); String encodedJson = Encoding.ASCII.GetString(jsonBuffer); Measurement jsonMeasurement = JsonConvert.DeserializeObject <Measurement>(encodedJson); Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine($"{jsonMeasurement}"); Console.WriteLine(); try { SensorServiceClient azureClient = new SensorServiceClient(SensorServiceClient.EndpointConfiguration.BasicHttpBinding_ISensorService); SensorData sensorData = new SensorData { Id = jsonMeasurement.Id, Light = jsonMeasurement.Light, Temperature = jsonMeasurement.Temperature, Timestamp = jsonMeasurement.Timestamp }; azureClient.StoreDataAsync(sensorData); } catch (Exception e) { Console.WriteLine($"Error calling Azure service {e.Message}", ConsoleColor.Cyan); break; } try { TwitterHandler.InitAuth(); if (jsonMeasurement.Temperature <= 40) { var tweet = $"All good! Go back to sleep! Lights seems normal and the current temperature is {jsonMeasurement.Temperature} °C #keasysint"; TwitterHandler.Alarm(tweet); } else if (41 <= jsonMeasurement.Temperature && jsonMeasurement.Temperature <= 100) { var tweet = $"Something is not right, please ask for feedback and report to Captain Holt! Current temperature is {jsonMeasurement.Temperature} °C! Address Refnumber: {jsonMeasurement.Id} #keasysint"; TwitterHandler.Alarm(tweet); } else if (100 < jsonMeasurement.Temperature) { var tweet = $"ALARM! The roof is on fire!! The temperature is {jsonMeasurement.Temperature} °C! Go to the designated address ! Reported at {jsonMeasurement.Timestamp}, hurry up! #keasysint"; TwitterHandler.Alarm(tweet); } } catch (Exception exc) { Console.WriteLine($"Error calling Twitter service {exc.Message}", ConsoleColor.Cyan); break; } //XML Byte[] xmlBuffer = xmlSocket.Receive(ref ep); String encodedXml = Encoding.ASCII.GetString(xmlBuffer); var m = XmlDeserializeFromString <Measurement>(encodedXml); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"{m}"); Console.WriteLine(); } }