Exemple #1
0
        private void HandleMessageReceived(MqttApplicationMessage message)
        {
            Console.WriteLine("### RECEIVED APPLICATION MESSAGE ###");
            Console.WriteLine($"+ Topic = {message.Topic}");

            Console.WriteLine($"+ Payload = {Encoding.UTF8.GetString(message.Payload)}");
            Console.WriteLine($"+ QoS = {message.QualityOfServiceLevel}");
            Console.WriteLine($"+ Retain = {message.Retain}");
            Console.WriteLine();
            string payload = Encoding.UTF8.GetString(message.Payload);

            Console.WriteLine(payload);
            TempratureModel tempratureModel = new TempratureModel();

            tempratureModel.Id        = Guid.NewGuid().ToString();
            tempratureModel.timeStamp = DateTime.Now.ToString("MMM_dd_yyyy_HH_mm_ss");
            tempratureModel.value     = payload;
            context.tempratures.Add(tempratureModel);
            context.SaveChanges();
            Console.WriteLine("Temprature added");
        }
        private void HandleMessageReceived(MqttApplicationMessage message)
        {
            Console.WriteLine("### RECEIVED APPLICATION MESSAGE ###");
            Console.WriteLine($"+ Topic = {message.Topic}");

            Console.WriteLine($"+ Payload = {Encoding.UTF8.GetString(message.Payload)}");
            Console.WriteLine($"+ QoS = {message.QualityOfServiceLevel}");
            Console.WriteLine($"+ Retain = {message.Retain}");
            Console.WriteLine();
            string payload    = Encoding.UTF8.GetString(message.Payload);
            var    testObject = JsonConvert.DeserializeObject <highestObject>(payload);

            FullDatagram datagram = new FullDatagram();

            datagram.signature = testObject.datagram.signature;
            datagram.Id        = Guid.NewGuid().ToString();
            datagram.timeStamp = DateTime.Now.ToString("MMM_dd_yyyy_HH_mm_ss");
            foreach (var substring in testObject.datagram.p1.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries))
            {
                if (substring.Contains("1-0:1.8.1"))
                {
                    double value = Convert.ToDouble(removeExcessData(substring.ToString(), "1-0:1.8.1", "*kWh"));
                    datagram.totalHigh = value;
                }
                else if (substring.Contains("1-0:1.8.2"))
                {
                    double value = Convert.ToDouble(removeExcessData(substring.ToString(), "1-0:1.8.2", "*kWh"));
                    datagram.totalLow = value;
                }
                else if (substring.Contains("1-0:1.7.0"))
                {
                    double value = Convert.ToDouble(removeExcessData(substring.ToString(), "1-0:1.7.0", "*kW"));
                    datagram.currentUsage = value;
                }
                else if (substring.Contains("1-0:2.8.1"))
                {
                    double value = Convert.ToDouble(removeExcessData(substring.ToString(), "1-0:2.8.1", "*kWh"));
                    datagram.returnHigh = value;
                }
                else if (substring.Contains("1-0:2.8.2"))
                {
                    double value = Convert.ToDouble(removeExcessData(substring.ToString(), "1-0:2.8.2", "*kWh"));
                    datagram.returnLow = value;
                }
                else if (substring.Contains("0-1:24.2.1"))
                {
                    double value = Convert.ToDouble(removeExcessData(substring.ToString(), "0-1:24.2.1", "*m3", "210330112500S"));
                    datagram.gasUsage = value;
                }
            }
            if (datagram.currentUsage > 10)
            {
                datagram.currentUsage = datagram.currentUsage / 1000;
                datagram.totalHigh    = datagram.totalHigh / 1000;
                datagram.totalLow     = datagram.totalLow / 1000;
                datagram.returnHigh   = datagram.returnHigh / 1000;
                datagram.returnLow    = datagram.returnLow / 1000;
                datagram.gasUsage     = datagram.gasUsage / 1000;
            }
            context.datagrams.Add(datagram);
            context.SaveChanges();
            Console.WriteLine("datagram added");
        }