Ejemplo n.º 1
0
        private async void CreateJson()
        {
            for (int i = 0; i < _mqttClients.Count; i++)
            {
                try
                {
                    string         cleintNum      = "MQTT" + Convert.ToString((int.Parse(tbClientID.Text) + i));
                    string         deviceNum      = Convert.ToString((long.Parse(tbDeviceID.Text) + i));
                    IMqttClient    _mqttClient    = _mqttClients[i];
                    MqttJsonObject mqttJsonObject = new MqttJsonObject();
                    mqttJsonObject.paras  = new List <MqttJsonPara>();
                    mqttJsonObject.device = new MqttJsonDevice()
                    {
                        hard_version = "1.0.0",
                        run_time     = "",
                        soft_version = "1.0.0",
                        status       = "normal",
                        uid          = deviceNum
                    };
                    mqttJsonObject.paras.Add(new MqttJsonPara()
                    {
                        name     = "current1",
                        datatype = "current",
                        iotype   = "analog",
                        version  = "1.0.0",
                        data     = new List <object>()
                        {
                            DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                            0,
                            10,
                            random.Next(-10 - 100, 100),
                            random.Next(-10 - 100, 100)
                        }
                    });
                    mqttJsonObject.paras.Add(new MqttJsonPara()
                    {
                        name     = "current2",
                        datatype = "current",
                        iotype   = "analog",
                        version  = "1.0.0",
                        data     = new List <object>()
                        {
                            DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                            0,
                            11,
                            random.Next(-100, 100),
                            random.Next(-100, 100)
                        }
                    });
                    mqttJsonObject.paras.Add(new MqttJsonPara()
                    {
                        name     = "current3",
                        datatype = "current",
                        iotype   = "analog",
                        version  = "1.0.0",
                        data     = new List <object>()
                        {
                            DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                            0,
                            12,
                            random.Next(-100, 100),
                            random.Next(-100, 100)
                        }
                    });
                    mqttJsonObject.paras.Add(new MqttJsonPara()
                    {
                        name     = "relevance1",
                        datatype = "current",
                        iotype   = "analog",
                        version  = "1.0.0",
                        data     = new List <object>()
                        {
                            DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                            0,
                            10,
                            random.Next(-100, 100),
                            random.Next(-100, 100)
                        }
                    });
                    mqttJsonObject.paras.Add(new MqttJsonPara()
                    {
                        name     = "pulse_width",
                        datatype = "current",
                        iotype   = "analog",
                        version  = "1.0.0",
                        data     = new List <object>()
                        {
                            DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                            0,
                            11,
                            random.Next(-100, 100),
                            random.Next(-100, 100)
                        }
                    });
                    mqttJsonObject.paras.Add(new MqttJsonPara()
                    {
                        name     = "pulse_width2",
                        datatype = "current",
                        iotype   = "analog",
                        version  = "1.0.0",
                        data     = new List <object>()
                        {
                            DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                            1,
                            11,
                            random.Next(-100, 100),
                            random.Next(-100, 100)
                        }
                    });
                    mqttJsonObject.paras.Add(new MqttJsonPara()
                    {
                        name     = "switch1",
                        datatype = "current",
                        iotype   = "analog",
                        version  = "1.0.0",
                        data     = new List <object>()
                        {
                            DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                            0,
                            10,
                            random.Next(0, 1),
                            random.Next(0, 1)
                        }
                    });
                    mqttJsonObject.paras.Add(new MqttJsonPara()
                    {
                        name     = "switch2",
                        datatype = "current",
                        iotype   = "analog",
                        version  = "1.0.0",
                        data     = new List <object>()
                        {
                            DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                            0,
                            11,
                            random.Next(0, 1),
                            random.Next(0, 1)
                        }
                    });
                    string json = ScadaHexByteOperator.ObjectToJson(mqttJsonObject);
                    if (_mqttClient != null && _mqttClient.IsConnected)
                    {
                        await _mqttClient.PublishAsync(new MqttApplicationMessage()
                        {
                            Payload = Encoding.UTF8.GetBytes(json),
                            QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce,
                            Retain = true,
                            Topic  = "Topic/" + cleintNum + "/Read/" + deviceNum
                        });
                    }
                }
                catch
                { continue; }
                Thread.Sleep(500);
            }


            AddRichText("发布时间" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "发布一组数据成功\r\n");
        }
Ejemplo n.º 2
0
 private void btConvert_Click(object sender, EventArgs e)
 {
     MqttJsonObject obj = ScadaHexByteOperator.JsonToObject <MqttJsonObject>(this.richTextBox1.Text);
 }
Ejemplo n.º 3
0
        private async void CreateJson()
        {
            try
            {
                string deviceUid = "0036001b3438511035303434";

                MqttJsonObject mqttJsonObject = new MqttJsonObject();
                mqttJsonObject.paras  = new List <MqttJsonPara>();
                mqttJsonObject.device = new MqttJsonDevice()
                {
                    hard_version = "1.0.0",
                    run_time     = "",
                    soft_version = "1.0.0",
                    status       = "normal",
                    uid          = deviceUid
                };
                for (int j = 0; j < 3; j++)
                {
                    ///写入电流
                    for (int i = 1; i <= 8; i++)
                    {
                        mqttJsonObject.paras.Add(new MqttJsonPara()
                        {
                            name     = "current_0_" + i,
                            datatype = "current",
                            iotype   = "analog",
                            version  = "1.0.0",
                            data     = new List <object>()
                            {
                                DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                                0,
                                10,
                                random.Next(-100, 100)
                            }
                        });
                    }

                    ///写入脉宽
                    for (int i = 1; i <= 8; i++)
                    {
                        mqttJsonObject.paras.Add(new MqttJsonPara()
                        {
                            name     = "pulse_width_0_" + i,
                            datatype = "pulse_width",
                            iotype   = "analog",
                            version  = "1.0.0",
                            data     = new List <object>()
                            {
                                DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                                0,
                                10,
                                random.Next(-100, 100)
                            }
                        });
                    }
                    ///写入开关量
                    for (int i = 1; i <= 8; i++)
                    {
                        mqttJsonObject.paras.Add(new MqttJsonPara()
                        {
                            name     = "switch_0_" + i,
                            datatype = "switch",
                            iotype   = "switch",
                            version  = "1.0.0",
                            data     = new List <object>()
                            {
                                DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                                0,
                                10,
                                random.Next(0, 1)
                            }
                        });
                    }
                    ///写入符合采集
                    for (int i = 1; i <= 8; i++)
                    {
                        mqttJsonObject.paras.Add(new MqttJsonPara()
                        {
                            name     = "relevance_0_" + i,
                            datatype = "relevance",
                            iotype   = "switch",
                            version  = "1.0.0",
                            data     = new List <object>()
                            {
                                DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                                0,
                                10,
                                random.Next(-100, 100),
                                random.Next(0, 100),
                                random.Next(0, 1)
                            }
                        });
                    }
                }
                string json = ScadaHexByteOperator.ObjectToJson(mqttJsonObject);
                if (_mqttClient != null && _mqttClient.IsConnected)
                {
                    await _mqttClient.PublishAsync(new MqttApplicationMessage()
                    {
                        Payload = Encoding.UTF8.GetBytes(json),
                        QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce,
                        Retain = true,
                        Topic  = "/xc_cloud_master/cs/0036001b3438511035303434"
                    });
                }
            }
            catch
            { return; }


            AddRichText("发布时间" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "发布一组数据成功\r\n");
        }