Beispiel #1
0
        /// <summary>
        /// 开启采集线程的线程
        /// </summary>
        private void StartConnectThread()
        {
            for (int ii = 0; ii < m_cnclist.Count; ii++)
            {
                CNC            cncref         = m_cnclist[ii];
                CollectHNCData m_hcncdatanade = new CollectHNCData(ref cncref, ref _ncDatas);
                m_gatherHNCLst.Add(m_hcncdatanade);
            }

            for (int ii = 0; ii < m_gatherHNCLst.Count; ii++)
            {
                m_gatherHNCLst[ii].ThreadStart();
            }
            //m_bEventThreadRunning = true;
            m_connectThread.Start();
            threaFucEvent.Set();
        }
Beispiel #2
0
        public void StartCollectBase(Int16 clientNo)
        {
            string macSN = "";
            int    ret   = 0;
            //开启一个线程隔N长事件收集一次
            HNCData result = ncDatas.Find(
                delegate(HNCData temp)
            {
                return(temp.sysData.clientNo == clientNo);
            }
                );

            if (result == null)
            {
                return;
            }

            ret = m_Instance.HNC_SystemGetValue((int)HNCAPI.HncSystem.HNC_SYS_SN_NUM, ref macSN, clientNo);
            if (ret != 0)
            {
                return;
            }
            CollectHNCData colresult = gatherHNCLst.Find(
                delegate(CollectHNCData temp)
            {
                return(String.Equals(temp.hncdata.sysData.macSN, macSN, StringComparison.Ordinal));
            }
                );

            if (colresult == null)//没有重复机床,第一次加入
            {
//                 CollectHNCData gatherHdata = new CollectHNCData(result);
//                 gatherHNCLst.Add(gatherHdata);
//                 gatherHdata.ThreadStart();
            }
            else //以前有过同SN的机床
            {
                if (colresult.collectThread == null)
                {
//                     colresult.bCollect = true;
//                     colresult.ThreadStart();
                }
            }
        }
Beispiel #3
0
        public void StopCollectBase(short clientNo)
        {
            String sLogInfo = String.Empty;

            CollectHNCData result = gatherHNCLst.Find(
                delegate(CollectHNCData temp)
            {
                return(temp.hncdata.sysData.clientNo == clientNo);
            });

            if (result == null)
            {
                return;
            }
            else
            {
//                 sLogInfo = "Client disconnect but no ncdata matched! clientNo = " + clientNo.ToString();
//                 LogApi.WriteLogInfo(MainForm.logHandle, (Byte)ENUM_LOG_LEVEL.LEVEL_WARN, sLogInfo);
            }

            CNC cncItem = m_cnclist.Find(
                delegate(CNC temp)
            {
                return(temp.ip == result.hncdata.sysData.addr.ip &&
                       temp.port == result.hncdata.sysData.addr.port);
            });

            if (cncItem != null)
            {
                //cncItem.HCNCShareData = null;
//                 cncItem.isConnect = false;
            }

            result.bCollect = false;
            result.collectThread.Join();
            result.hncdata.sysData.clientNo = -1;

//             sLogInfo = "Client disconnect! clientNo = " + clientNo.ToString()
//                                + "ip = " + cncItem.ip + "port = " + cncItem.port.ToString();
//             LogApi.WriteLogInfo(MainForm.logHandle, (Byte)ENUM_LOG_LEVEL.LEVEL_WARN, sLogInfo);
        }