using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using HBLConsole.Model; using HBLConsole.Service; using HBLConsole.GVL; using HBLConsole.Communication; using BPA.Message; using HBLConsole.Business; using HBLConsole.Factory; using BPA.Message.Enum; namespace HBLConsole.MainConsole { public class Main { private volatile static Main _Instance; public static Main GetInstance => _Instance ?? (_Instance = new Main()); private Main() { //ActionOperate.GetInstance.Register(new Func(() => { return GeneralConfig.DeviceType.ToString(); }), "GetDeviceType"); } List Topics = new List(); public void DataInit() { string deviceType = TextHelper.GetInstance.ReadTextInfo(); GeneralConfig.DeviceType = DeviceClientType.MORKS; if (Enum.TryParse(deviceType, out DeviceClientType dct)) GeneralConfig.DeviceType = dct; LocaPath.GetInstance.FilePath = $"AccessFile\\{GeneralConfig.DeviceType.ToString()}\\"; ThreadOperate.GetInstance.Start(new Action(() => { Sqlite.GetInstance.GetData(); }), "GetAlarm"); //Json.Read(); //if (Enum.TryParse(Json.Data.ClientDeviceType, out DeviceClientType dct)) //{ // GeneralConfig.DeviceType = dct; //} //else { GeneralConfig.DeviceType = DeviceClientType.MORKS; } Json.Read(); Json.Read(); Json.Read(); Json.Read(); MessageLog.GetInstance.Show($"启动【{GeneralConfig.DeviceType}】设备"); } public void DataSave() { Json.Save(); Json.Save(); //Json.Save(); Json.Save(); Json.Save(); Sqlite.GetInstance.Save(); TextHelper.GetInstance.SaveLogInfo(MessageLog.GetInstance.LogInfo, "LogInfo"); } public void BusinessInit() { ThreadOperate.GetInstance.Start(new Action(() => { SimpleFactory.GetInstance.DeviceInit();//设备初始化 InternetInfo.ConfigInit();//从 consul 获取配置数据 Topics.Clear(); Topics.Add(TOPIC.GetInstance.GetOrderPushTopic(GeneralConfig.DeviceType, InternetInfo.ClientId)); Topics.Add(TOPIC.GetInstance.GetBusinessTopic(GeneralConfig.DeviceType, InternetInfo.ClientId)); //MQTT 连接成功 MqttHelper.GetInstance.ConnectOk = new Action(() => { //SimpleFactory.GetInstance.DeviceInit();//设备初始化 MqttHelper.GetInstance.MqttSubscriptionAsync(Topics.ToArray());//主题订阅 //IotReport.GetInstance.Init();//IOT 上报 HeartbeatReport.GetInstance.Init();//心跳上报 ServerData.GetInstance.Init();//数据处理初始化 //接收MQTT消息 MqttHelper.GetInstance.MqttReceive = new Action((receivce) => { ServerData.GetInstance.ReceiveData(Encoding.UTF8.GetString(receivce.ApplicationMessage.Payload)); }); }); //MQTT 重连成功 MqttHelper.GetInstance.Reconnection = new Action(() => { MqttHelper.GetInstance.MqttSubscriptionAsync(Topics.ToArray()); }); //MQTT 连接 MqttHelper.GetInstance.MqttInitAsync(InternetInfo.MqttUserName, InternetInfo.MqttPassword, InternetInfo.MqttAddress, InternetInfo.MqttPort, DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")); }), "业务逻辑初始化"); } } }