using HBLConsole.Model; using HBLConsole.Service; using Newtonsoft.Json; using System; using System.Text; using HBLConsole.Communication; using System.Threading; namespace HBLConsole.Business { public class M2MqttHelper { private volatile static M2MqttHelper _Instance; public static M2MqttHelper GetInstance => _Instance ?? (_Instance = new M2MqttHelper()); private M2MqttHelper() { } IotMessage iotMessage = new IotMessage(); LowerComputerStateInfo lowerComputerStateInfoClass = new LowerComputerStateInfo(); string PublishContent; public void Init() { ThreadManage.GetInstance.StartLong(new Action(() => { //AlarmHelper.GetInstance.EdgeAlarm(GVL_Fault.GetInstance.MCUDisconnected, "单片机掉线", AlarmLevel.严重报警); //AlarmHelper.GetInstance.EdgeAlarm(GVL_Fault.GetInstance.IceCreamAbnormal, "冰淇淋机异常"); //AlarmHelper.GetInstance.EdgeAlarm(GVL_Fault.GetInstance.TakeBowlAbnormal, "取碗异常"); //AlarmHelper.GetInstance.EdgeAlarm(GVL_Fault.GetInstance.RobotAbnormal, "机器人异常", AlarmLevel.严重报警); #region 报警信息设置 lowerComputerStateInfoClass.AlarmInfo.Clear(); //foreach (var item in AlarmHelper.GetInstance.GetAlarmInfo) //{ // lowerComputerStateInfoClass.AlarmInfo.Add(new IotAlarmInfo() // { // time = item.date, // AlarmLevel = item.AlarmLevel, // info = item.AlarmInfomation, // color = new ColorSet() // { // a = AlarmHelper.GetInstance.colorValue[item.AlarmLevel].A, // b = AlarmHelper.GetInstance.colorValue[item.AlarmLevel].B, // g = AlarmHelper.GetInstance.colorValue[item.AlarmLevel].G, // r = AlarmHelper.GetInstance.colorValue[item.AlarmLevel].R, // }, // infoSrc = "" // }); //} #endregion #region 报警频率显示 lowerComputerStateInfoClass.AlarmHzObj.Clear(); foreach (var item in Json.Data.AlarmHz) { lowerComputerStateInfoClass.AlarmHzObj.Add(new AlarmHz() { Count = item.Value, Name = item.Key }); } #endregion #region 忙碌状态显示 //lowerComputerStateInfoClass.Busy = GVL_VAR.GetInstance.Busy ? "空闲" : "忙碌"; #endregion iotMessage.@params.LowerComputerStateInfo = JsonConvert.SerializeObject(lowerComputerStateInfoClass); PublishContent = JsonConvert.SerializeObject(iotMessage); MqttM2.GetInstance.PublishInfo(PublishContent); //mqttClient.Publish($"/sys/grgp0rFA2uu/{deviceName}/thing/event/property/post", Encoding.UTF8.GetBytes(PublishContent), 0, false); }), "阿里云数据上报", false, new Action(() => { MqttM2.GetInstance.DisConnect(); })); } } }