Newer
Older
SensorHub / SensorHub.Servers / SendConfigThread.cs
root on 17 Sep 2021 3 KB first commit
//using SensorHub.Config;
//using SensorHub.Servers.Commands.CASICCommands;
//using SensorHub.Utility;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading;
//using System.Threading.Tasks;

//namespace SensorHub.Servers
//{
//    class SendConfigThread
//    {
//        private CasicServer433 server;
//        private string code;
        
//        public SendConfigThread(CasicServer433 server,String code)
//        {
//            this.code = code;
//            this.server = server;
//        }

//        public void doSendConfig() //下发配置线程
//        {
//            RedisHelper redis = new RedisHelper(0);
//            while (true)
//            {
//                String devcode = redis.ListRightPopLeftPush<String>(code, code);

//                if (!string.IsNullOrEmpty(devcode))
//                {
//                    break;
//                }

//                String configItem = redis.StringGet(devcode);
//                devcode = devcode.Replace("$", "");

//                byte[] config = null;
//                if (configItem.Contains("collect"))
//                {
//                    config = ConfigBuild.buildQueryFrame(devcode);
//                }
//                else
//                {
//                    config = ConfigBuild.buildConfigFrame(devcode, configItem, 0x01);
//                }

//                DispatchMessage(code, config);

//                String devType = devcode.Substring(0, 2);
//                if (devType == "72" || devType == "73" || devType == "74")//路灯时间长
//                {
//                    Thread.Sleep(40000);
//                }
//                else
//                {
//                    Thread.Sleep(15000);
//                }
//            }

//            //concentratorThreadList.Remove(code);
//        }

//        private void DispatchMessage(string devCode, byte[] config)
//        {
//            foreach (CasicSession session in server.GetAllSessions())
//            {
//                session.Logger.Info("集中器设备编号:" + session.HubAddr + "," + session.SessionID);

//                if (!session.IsBusy && session.HubAddr == devCode && devCode != null)
//                {
//                    //当前时间
//                    SystemTimeConfig sysTimeConfig = new SystemTimeConfig(null);
//                    byte[] btConfig = sysTimeConfig.getConfig(new byte[0]);
//                    btConfig.CopyTo(config, 16);

//                    //增加CRC校验
//                    String strCrc = StringUtil.To16HexString(String.Format("{0:X}", (int)CodeUtils.CRC16_AD(config)));
//                    byte[] btcrc = { CodeUtils.String2Byte(strCrc.Substring(0, 2)), CodeUtils.String2Byte(strCrc.Substring(2, 2)) };
//                    byte[] afcrc = new byte[config.Length + 2];
//                    config.CopyTo(afcrc, 0);
//                    btcrc.CopyTo(afcrc, config.Length);

//                    session.Logger.Info("下发配置信息:" + BitConverter.ToString(afcrc).Replace("-", ""));
//                    session.Send(afcrc, 0, afcrc.Length);
//                }
//            }
//        }
//    }
//}