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"); }
private void btConvert_Click(object sender, EventArgs e) { MqttJsonObject obj = ScadaHexByteOperator.JsonToObject <MqttJsonObject>(this.richTextBox1.Text); }
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"); }