Esempio n. 1
0
 /// <summary>
 /// ͬ���豸���ز���
 /// </summary>
 /// <param name="devid">�豸ID</param>
 private void commiDevice(object arg)
 {
     string tag = Convert.ToString(arg);
     if (string.IsNullOrEmpty(tag))
         return;
     isDownLoaded = false;
     SynDeviceParam syn = new SynDeviceParam();
     isSuccessSynDevice = syn.CommiDevice(tag);
     while (!this.frmPrb.Visible)
         Thread.Sleep(100);
     isDownLoaded = true;
 }
Esempio n. 2
0
        public void ProcessRequest(HttpContext context)
        {
            //设备ID和下载指令,tag格式,其中多个设备和指令需以"|"分割
            StreamReader reader = new StreamReader(context.Request.InputStream);
            string tag = reader.ReadToEnd();
            if (string.IsNullOrEmpty(tag))
                return;
            string cmd = basefun.valtag(tag, "指令");
            if ("设备同步黑白名单" == cmd)
            {
                SynDeviceParam syn = new SynDeviceParam();
                string msg = syn.downCardALL();
                bool success = true;
                if (!string.IsNullOrEmpty(msg))
                {
                    success = false;
                    msg = basefun.setvaltag("", "提示", msg);
                }
                msg = basefun.setvaltag(msg, "成功", success ? "true" : "false");
                context.Response.Write(msg);
            }
            Debug.WriteLine(DateTime.Now.ToString("HH:mm.ss.fff") + " 发出请求");
            string reqid = basefun.valtag(tag, "reqID");
            //已经在处理请求的返回结果信息
            if (reqlist.ContainsKey(reqid))
            {
                reqParam reqparam = reqlist[reqid];
                reqparam.dtreq = DateTime.Now;
                string[] devs = new string[0];
                if (!string.IsNullOrEmpty(reqparam.reqdev))
                    devs = reqparam.reqdev.Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                if (reqparam.taglist.Count >= devs.Length)
                    reqlist.Remove(reqid);
                string msg = "";
                foreach (string t in reqparam.taglist)
                    msg += t + ";";
                Debug.WriteLine(DateTime.Now.ToString("HH:mm.ss.fff") + " 结果:" + msg);
                context.Response.Write(msg);
                return;
            }
            List<string> keys = new List<string>();
            foreach (string k in reqlist.Keys)
                keys.Add(k);
            DateTime dt = DateTime.Now.AddMinutes(-1);
            foreach (string k in keys)
            {
                if (reqlist[k].dtreq < dt)
                    reqlist.Remove(k);
            }
            string devid = basefun.valtag(tag, "设备ID");
            if (string.IsNullOrEmpty(reqid) || string.IsNullOrEmpty(devid) || string.IsNullOrEmpty(cmd))
                return;
            reqParam param = new reqParam();
            param.reqid = reqid;
            param.reqdev = devid;
            reqlist.Add(reqid, param);
            //对设备启动或停止监控, patrol持续巡检
            CommiManager mgr = CommiManager.GlobalManager;
            CommiTarget target = getService();
            NameValueCollection info = new NameValueCollection();

            string tagdev = basefun.setvaltag("", "reqID", reqid);
            tagdev = basefun.setvaltag(tagdev, "指令", cmd);
            string[] devids = devid.Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < devids.Length; i++)
            {
                tagdev = basefun.setvaltag(tagdev, "设备ID", devids[i]);
                //暂停巡检
                info["device"] = devids[i];
                if (null != target)
                {
                    CmdFileTrans cmdtrans = new CmdFileTrans(false);
                    cmdtrans.ExtService(CmdSrvType.HaltDevice, info);
                    mgr.SendCommand(target, cmdtrans, true);
                }
                ThreadManager.QueueUserWorkItem(delegate(object obj) { syncommi(obj); }, tagdev);
            }
        }
Esempio n. 3
0
 /// <summary>
 /// 下载设备参数
 /// </summary>
 /// <param name="tagdev">设备下载参数指令,tag格式</param>
 private static void syncommi(object objtag)
 {
     string tagdev = Convert.ToString(objtag);
     string reqid = basefun.valtag(tagdev, "reqID");
     SynDeviceParam syn = new SynDeviceParam();
     Debug.WriteLine(DateTime.Now.ToString("HH:mm.ss.fff") + " 启动通讯:" + reqid);
     bool success = syn.CommiDevice(tagdev);
     Debug.WriteLine(DateTime.Now.ToString("HH:mm.ss.fff") + " 完成通讯:" + reqid + "   " + (success ? "成功" : "失败"));
     if (!reqlist.ContainsKey(reqid))
         return;
     reqParam param = reqlist[reqid];
     string devid = basefun.valtag(tagdev, "设备ID");
     tagdev = basefun.setvaltag("", "设备ID", devid);
     tagdev = basefun.setvaltag(tagdev, "成功", success ? "true" : "false");
     tagdev = basefun.setvaltag(tagdev, "完成时间", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
     param.taglist.Add(tagdev);
 }