Exemple #1
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                int addr = System.Convert.ToInt16(txtAddr.Text);

                string er = string.Empty;

                List <double> volts = null;

                string name = string.Empty;

                if (!comMon.ReadVolt(addr, out volts, out er, chkSync.Checked, _voltMode))
                {
                    showInfo(CLanguage.Lan("读取电压地址") + "[" + addr.ToString("D2") + "]" + CLanguage.Lan("错误") + ":" + er + "-->" + (Count++).ToString(), true);
                    return;
                }

                for (int i = 0; i < volts.Count; i++)
                {
                    labVolts[i].Text      = volts[i].ToString();
                    labVolts[i].ForeColor = Color.Black;
                }

                showInfo(CLanguage.Lan("读取电压地址") + "[" + addr.ToString("D2") + "]OK->" + (Count++).ToString());
            }
            catch (Exception)
            {
            }
        }
Exemple #2
0
        /// <summary>
        /// 良率预警按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnUIPassRateClick(object sender, udcPassRate.COnBtnClickArgs e)
        {
            if (MainWork == null)
            {
                return;
            }

            if (e.lPara == 0)
            {
                if (MessageBox.Show(CLanguage.Lan("确定要归零良率统计数据?"), "Tip",
                                    MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
                {
                    return;
                }

                MainWork.ClearPassRate();
            }
            else if (e.lPara == 1)
            {
                if (MessageBox.Show(CLanguage.Lan("确定要解除良率报警?"), "Tip",
                                    MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
                {
                    return;
                }

                MainWork.ClearPassRateAlarm();
            }
        }
Exemple #3
0
        private void RefreshView()
        {
            try
            {
                treeFiles.Nodes.Clear();
                treeFiles.ImageList = imageList1;
                treeFiles.Nodes.Add(CLanguage.Lan("测试数据查询"));
                treeFiles.Nodes[0].ImageIndex         = 5;
                treeFiles.Nodes[0].SelectedImageIndex = 5;
                TreeNode foldNode = treeFiles.Nodes[0];

                if (!Directory.Exists(dataFolder))
                {
                    return;
                }
                foldNode.Nodes.Add(dataFolder);
                foldNode.Nodes[0].ImageIndex         = 1;
                foldNode.Nodes[0].SelectedImageIndex = 1;

                AddNode(foldNode.Nodes[0], dataFolder);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Exemple #4
0
        private void FrmYield_Load(object sender, EventArgs e)
        {
            List <string> keyName = new List <string>();

            List <string> keyValue = new List <string>();

            CIniFile.GetIniKeySection("PLCAlarm", out keyName, out keyValue, Application.StartupPath + "\\iniFile.ini");

            cmbStatName.Items.Clear();

            cmbStatName.Items.Add(CLanguage.Lan("所有工位"));

            for (int i = 0; i < keyValue.Count; i++)
            {
                cmbStatName.Items.Add(keyValue[i]);
            }
            cmbStatName.SelectedIndex = 0;

            cmbbAlarm.Items.Clear();
            cmbbAlarm.Items.Add(CLanguage.Lan("全部"));
            cmbbAlarm.Items.Add(CLanguage.Lan("解除"));
            cmbbAlarm.Items.Add(CLanguage.Lan("报警"));
            cmbbAlarm.SelectedIndex = 0;

            cmbFixNumSlotNo.SelectedIndex = 0;

            check_web_status_handler check_web = new check_web_status_handler(check_web_status);

            check_web.BeginInvoke(null, null);
        }
Exemple #5
0
        /// <summary>
        /// 消息响应
        /// </summary>
        /// <param name="para"></param>
        public void OnMessage(string name, int lPara, int wPara)
        {
            if (name == "F6")
            {
                FrmClient.CreateInstance().Show();
            }
            else if (name == "F7")
            {
                if (CKunXApp.DogLock == CKunXApp.DogRelease) //不检查加密狗
                {
                    return;
                }

                CSentinel dog = new CSentinel();

                string er = string.Empty;

                int leftDay = 0;

                string serialNo = string.Empty;

                if (!dog.check_safe_dog(CKunXApp.DogID, out leftDay, out serialNo, out er))
                {
                    MessageBox.Show(CLanguage.Lan("未找不到软件加密狗,请确认已插上加密狗?") + "\r\n" +
                                    CLanguage.Lan("错误信息") + ":" + er, CLanguage.Lan("软件加密狗"),
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                FrmDogLock.CreateInstance(serialNo).Show();
            }
        }
Exemple #6
0
        /// <summary>
        /// 设置IO控制信号
        /// </summary>
        /// <param name="addr"></param>
        /// <param name="ioType"></param>
        /// <param name="io"></param>
        /// <param name="er"></param>
        /// <returns></returns>
        public bool SetIO(int addr, EFMB_wIO ioType, int ioVal, out string er)
        {
            er = string.Empty;

            try
            {
                if (!_Mon.ContainsKey(addr))
                {
                    er = CLanguage.Lan("快充板地址") + "[" + addr.ToString("D2") + "]" + CLanguage.Lan("不存在");
                    return(false);
                }

                if (!_Mon[addr].Para.wIO.ContainsKey(ioType))
                {
                    er = CLanguage.Lan("快充板IO信号") + "[" + ioType.ToString() + "]" + CLanguage.Lan("不存在");
                    return(false);
                }

                _Mon[addr].Para.wIO[ioType].ioVal = ioVal;

                _Mon[addr].Para.wIO[ioType].op = EOP.写入;

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
            finally
            {
            }
        }
Exemple #7
0
 /// <summary>
 /// 显示机种信息
 /// </summary>
 /// <param name="modelPara"></param>
 public void ShowModel(CModelPara modelPara)
 {
     if (this.InvokeRequired)
     {
         this.Invoke(new Action <CModelPara>(ShowModel), modelPara);
     }
     else
     {
         labModel.Text   = modelPara.Base.Model;
         labCustom.Text  = modelPara.Base.Custom;
         labVersion.Text = modelPara.Base.Version;
         labACSpec.Text  = modelPara.OutPut.ACVolt + "V";
         labVSpec.Text   = "[" + modelPara.OutPut.Vname + "]:" + modelPara.OutPut.Vmin.ToString() +
                           "V~" + modelPara.OutPut.Vmax.ToString() + "V";
         if (modelPara.OutPut.LoadMode == 0)
         {
             labISpec.Text = "[CC" + CLanguage.Lan("模式") + "-" + modelPara.OutPut.LoadSet.ToString() + "A]:" +
                             modelPara.OutPut.LoadMin.ToString() +
                             "A~" + modelPara.OutPut.LoadMax.ToString() + "A";
         }
         else if (modelPara.OutPut.LoadMode == 1)
         {
             labISpec.Text = "[CV" + CLanguage.Lan("模式") + "-" + modelPara.OutPut.LoadSet.ToString() + "V]:" +
                             modelPara.OutPut.LoadMin.ToString() +
                             "A~" + modelPara.OutPut.LoadMax.ToString() + "A";
         }
         else
         {
             labISpec.Text = "[LED" + CLanguage.Lan("模式") + "-" + modelPara.OutPut.LoadSet.ToString() + "V]:" +
                             modelPara.OutPut.LoadMin.ToString() +
                             "A~" + modelPara.OutPut.LoadMax.ToString() + "A";
         }
     }
 }
Exemple #8
0
 /// <summary>
 /// 读取ID错误
 /// </summary>
 public void SetIdAlarm(string idCard = "")
 {
     if (this.InvokeRequired)
     {
         this.Invoke(new Action <string>(SetIdAlarm), idCard);
     }
     else
     {
         if (idCard == "")
         {
             labIdCard.Text = CLanguage.Lan("读取不到治具ID");
             labStatus.Text = CLanguage.Lan("获取治具ID错误");
         }
         else
         {
             labIdCard.Text = idCard;
             labStatus.Text = CLanguage.Lan("获取治具ID信息错误");
         }
         labIdCard.ForeColor = Color.Red;
         labStatus.ForeColor = Color.Red;
         for (int i = 0; i < _uutMax; i++)
         {
             labSn[i].Text      = "";
             labSn[i].ForeColor = Color.Black;
             labResult[i].Text  = "";
         }
         panelUUT.Visible = true;
     }
 }
Exemple #9
0
        /// <summary>
        /// 设置地址
        /// </summary>
        /// <param name="wAddr"></param>
        /// <param name="er"></param>
        /// <returns></returns>
        public bool SetNewAddr(int wAddr, out string er)
        {
            er = string.Empty;

            try
            {
                if (wAddr < 1 || wAddr > 127)
                {
                    er = CLanguage.Lan("设置地址范围") + "[1-127]:" + wAddr.ToString();
                    return(false);
                }
                string CID   = "01";
                string INFO  = wAddr.ToString("X2");
                string wCmd  = CalDataFromERS272Cmd(0, CID, INFO);
                string rData = string.Empty;
                int    rLen  = C_LEN;
                if (!SendCmdToERS272(wCmd, rLen, out rData, out er))
                {
                    return(false);
                }
                return(true);
            }
            catch (Exception ex)
            {
                er = ex.ToString();
                return(false);
            }
        }
Exemple #10
0
        /// <summary>
        /// 设置监控参数
        /// </summary>
        /// <param name="addr"></param>
        /// <param name="powerOff"></param>
        /// <param name="er"></param>
        /// <param name="bContinue"></param>
        /// <returns></returns>
        public bool Request_MonitorPara(int addr, List <CRS485_I2C.EMonitor> monitor, out string er, bool bContinue = true)
        {
            er = string.Empty;

            try
            {
                if (!_Mon.ContainsKey(addr))
                {
                    er = CLanguage.Lan("地址") + "[" + addr.ToString("D2") + "]" + CLanguage.Lan("不存在");
                    return(false);
                }

                _Mon[addr].OP_SetMonitorPara.Monitor = monitor;

                _Mon[addr].OP_SetMonitorPara.bContinue = bContinue;

                _Mon[addr].OP_SetMonitorPara.Op = EOP.写入;

                return(true);
            }
            catch (Exception ex)
            {
                er = ex.ToString();
                return(false);
            }
        }
Exemple #11
0
 /// <summary>
 /// 就绪
 /// </summary>
 public void SetReady(string idCard, List <string> serialNo)
 {
     if (this.InvokeRequired)
     {
         this.Invoke(new Action <string, List <string> >(SetReady), idCard, serialNo);
     }
     else
     {
         labIdCard.Text      = idCard;
         labIdCard.ForeColor = Color.Blue;
         labStatus.Text      = CLanguage.Lan("治具到位就绪,等待测试");
         labStatus.ForeColor = Color.Blue;
         for (int i = 0; i < _uutMax; i++)
         {
             if (serialNo[i] == "")
             {
                 labUUT[i].BackColor = Color.White;
             }
             else
             {
                 labUUT[i].BackColor = Color.DarkTurquoise;
             }
             labSn[i].Text      = serialNo[i];
             labSn[i].ForeColor = Color.Black;
             labResult[i].Text  = "";
         }
         panelUUT.Visible = true;
     }
 }
Exemple #12
0
        /// <summary>
        /// 设置开关机
        /// </summary>
        /// <param name="addr"></param>
        /// <param name="powerOff"></param>
        /// <param name="er"></param>
        /// <param name="bContinue"></param>
        /// <returns></returns>
        public bool Request_SetOnOff(int addr, int wOnOff, out string er, bool bContinue = true)
        {
            er = string.Empty;

            try
            {
                if (!_Mon.ContainsKey(addr))
                {
                    er = CLanguage.Lan("地址") + "[" + addr.ToString("D2") + "]" + CLanguage.Lan("不存在");
                    return(false);
                }

                _Mon[addr].OP_SetOnOff.OnOff = wOnOff;

                _Mon[addr].OP_SetOnOff.bContinue = bContinue;

                _Mon[addr].OP_SetOnOff.Op = EOP.写入;

                return(true);
            }
            catch (Exception ex)
            {
                er = ex.ToString();
                return(false);
            }
        }
Exemple #13
0
 /// <summary>
 /// 设置过站
 /// </summary>
 /// <param name="idCard"></param>
 /// <param name="serialNos"></param>
 /// <param name="results"></param>
 public void SetEnd(string idCard, List <string> serialNos)
 {
     if (this.InvokeRequired)
     {
         this.Invoke(new Action <string, List <string> >(SetEnd), idCard, serialNos);
     }
     else
     {
         txtSnPress.Text     = "";
         txtSnPress.Enabled  = false;
         txtSnPress.ReadOnly = true;
         labIdCard.Text      = idCard;
         labIdCard.ForeColor = Color.Blue;
         for (int i = 0; i < _uutMax; i++)
         {
             labSn[i].Text = serialNos[i];
             if (serialNos[i] != "")
             {
                 labUUT[i].BackColor = Color.Cyan;
                 labSn[i].ForeColor  = Color.Blue;
             }
             else
             {
                 labUUT[i].BackColor = Color.White;
                 labSn[i].ForeColor  = Color.Black;
             }
         }
         labStatus.Text      = CLanguage.Lan("条码绑定OK,准备过站.");
         labStatus.ForeColor = Color.Blue;
         panelUUT.Visible    = true;
     }
 }
Exemple #14
0
        private void btnDD_Click(object sender, EventArgs e)
        {
            try
            {
                btnDD.Enabled = false;

                if (!checkSystem())
                {
                    return;
                }

                for (int i = 0; i < 32; i++)
                {
                    labVolts[i].Text = "";
                }

                int addr = System.Convert.ToInt16(txtAddr.Text);

                string er = string.Empty;

                string value = string.Empty;

                for (int i = 0; i < 32; i++)
                {
                    System.Threading.Thread.Sleep(10);

                    if (!comMon.ReadDGND(addr, i + 1, out value, out er))
                    {
                        System.Threading.Thread.Sleep(50);

                        if (!comMon.ReadDGND(addr, i + 1, out value, out er))
                        {
                            labVolts[i].Text      = CLanguage.Lan("异常");
                            labVolts[i].ForeColor = Color.Red;
                        }
                    }

                    labVolts[i].Text = value;

                    if (value == CLanguage.Lan("正常"))
                    {
                        labVolts[i].ForeColor = Color.Blue;
                    }
                    else
                    {
                        labVolts[i].ForeColor = Color.Red;
                    }

                    Application.DoEvents();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                btnDD.Enabled = true;
            }
        }
Exemple #15
0
        /// <summary>
        /// 读取和设置快充模式
        /// </summary>
        /// <param name="addr"></param>
        /// <param name="qcm"></param>
        /// <returns></returns>
        public bool SetFMBQCM(int addr, CFMB_QCM qcm, out string er)
        {
            er = string.Empty;

            try
            {
                if (!_Mon.ContainsKey(addr))
                {
                    er = CLanguage.Lan("快充板地址") + "[" + addr.ToString("D2") + "]" + CLanguage.Lan("不存在");
                    return(false);
                }

                _Mon[addr].Para.QCM.qcm = qcm.qcm;

                _Mon[addr].Para.QCM.qcv = qcm.qcv;

                _Mon[addr].Para.QCM.qci = qcm.qci;

                _Mon[addr].Para.QCM.op = qcm.op;

                _Mon[addr].Para.QCM.cc2 = qcm.cc2;

                return(true);
            }
            catch (Exception ex)
            {
                er = ex.ToString();
                return(false);
            }
            finally
            {
            }
        }
Exemple #16
0
 /// <summary>
 /// 设置调式按钮状态
 /// </summary>
 /// <param name="idNo"></param>
 /// <param name="run"></param>
 public void SetDebugBtn(int idNo, int run)
 {
     if (this.InvokeRequired)
     {
         this.Invoke(new Action <int, int>(SetDebugBtn), idNo, run);
     }
     else
     {
         if (idNo == 0)
         {
             if (run == 1)
             {
                 btnLft.Text = CLanguage.Lan("停止") + "(&L)";
             }
             else
             {
                 btnLft.Text = CLanguage.Lan("调试") + "(&L)";
             }
         }
         else
         {
             if (run == 1)
             {
                 btnRgt.Text = CLanguage.Lan("停止") + "(&R)";
             }
             else
             {
                 btnRgt.Text = CLanguage.Lan("调试") + "(&R)";
             }
         }
     }
 }
Exemple #17
0
        /// <summary>
        /// 读取或设置AC ON/OFF
        /// </summary>
        /// <param name="addr"></param>
        /// <param name="acOnOff"></param>
        /// <returns></returns>
        public bool SetACONOFF(int addr, CFMB_ACON acOnOff, out string er)
        {
            er = string.Empty;

            try
            {
                if (!_Mon.ContainsKey(addr))
                {
                    er = CLanguage.Lan("快充板地址") + "[" + addr.ToString("D2") + "]" + CLanguage.Lan("不存在");
                    return(false);
                }

                _Mon[addr].Para.ACON.wOnOff = acOnOff.wOnOff;

                _Mon[addr].Para.ACON.synC = acOnOff.synC;

                _Mon[addr].Para.ACON.op = acOnOff.op;

                _Mon[addr].Para.ACON.B400 = acOnOff.B400;

                return(true);
            }
            catch (Exception ex)
            {
                er = ex.ToString();
                return(false);
            }
            finally
            {
            }
        }
Exemple #18
0
 private void btnSetAddr_Click(object sender, EventArgs e)
 {
     try
     {
         btnSetAddr.Enabled = false;
         if (!checkSystem())
         {
             return;
         }
         int    addr = System.Convert.ToInt16(txtAddr.Text);
         string er   = string.Empty;
         if (comMon.SetNewAddr(addr, out er))
         {
             showInfo(CLanguage.Lan("成功设置当前地址") + "[" + addr.ToString("D2") + "]");
         }
         else
         {
             showInfo(CLanguage.Lan("设置当前地址") + "[" + addr.ToString("D2") + "]" + CLanguage.Lan("错误") + ":" + er, true);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
     finally
     {
         btnSetAddr.Enabled = true;
     }
 }
Exemple #19
0
        /// <summary>
        /// 启动线程
        /// </summary>
        /// <param name="plc"></param>
        public void SpinUp(CFMBCom devFMB, bool autoMode = false)
        {
            this._devFMB = devFMB;

            this.autoMode = autoMode;

            if (_threadFMB == null)
            {
                _dispose = false;

                if (_autoMode)
                {
                    _paused       = false;
                    _threadStatus = EThreadStatus.运行;
                }
                else
                {
                    _paused       = true;
                    _threadStatus = EThreadStatus.暂停;
                }
                _iniOK                  = false;
                _threadFMB              = new Thread(OnStart);
                _threadFMB.Name         = _name;
                _threadFMB.IsBackground = true;
                _threadFMB.Start();
                OnStatusArgs.OnEvented(new CConArgs(CLanguage.Lan("创建监控线程") + _threadFMB.Name));
            }
        }
Exemple #20
0
        private void btnMonitor_Click(object sender, EventArgs e)
        {
            try
            {
                btnMonitor.Enabled = false;

                timer1.Interval = System.Convert.ToInt32(txtMonTime.Text);

                if (btnMonitor.Text == CLanguage.Lan("监控"))
                {
                    if (!checkSystem())
                    {
                        return;
                    }

                    timer1.Enabled = true;

                    btnMonitor.Text = CLanguage.Lan("停止");
                }
                else
                {
                    timer1.Enabled = false;

                    btnMonitor.Text = CLanguage.Lan("监控");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                btnMonitor.Enabled = true;
            }
        }
Exemple #21
0
        /// <summary>
        /// 打开串口
        /// </summary>
        /// <param name="comName"></param>
        /// <param name="er"></param>
        /// <returns></returns>
        public bool Open(string comName, out string er, string setting = "57600,n,8,1")
        {
            er = string.Empty;

            try
            {
                if (_devFCMB == null)
                {
                    er = _devFCMB.ToString() + CLanguage.Lan("未找到程序集,请检查");
                    return(false);
                }
                if (!_devFCMB.Open(comName, out er, setting))
                {
                    return(false);
                }

                _conStatus = true;

                return(true);
            }
            catch (Exception ex)
            {
                er = ex.ToString();
                return(false);
            }
        }
Exemple #22
0
        /// <summary>
        /// 写入快充模式
        /// </summary>
        /// <param name="addr"></param>
        /// <param name="er"></param>
        /// <returns></returns>
        private bool writeQCM(int addr, out string er)
        {
            er = string.Empty;

            try
            {
                _syncLock.AcquireWriterLock(-1);

                Thread.Sleep(_delayMs);

                if (!_devFMB.SetQCM(addr, _Mon[addr].Para.QCM.qcm, _Mon[addr].Para.QCM.qcv, _Mon[addr].Para.QCM.qci, out er, _Mon[addr].Para.QCM.cc2))
                {
                    Thread.Sleep(_delayMs);

                    if (!_devFMB.SetQCM(addr, _Mon[addr].Para.QCM.qcm, _Mon[addr].Para.QCM.qcv, _Mon[addr].Para.QCM.qci, out er, _Mon[addr].Para.QCM.cc2))
                    {
                        er = _Mon[addr].ToString() + CLanguage.Lan("写快充模式") + ";";
                        return(false);
                    }
                }

                _Mon[addr].Para.QCM.op = EOP.写入OK;

                return(true);
            }
            catch (Exception ex)
            {
                er = ex.ToString();
                return(false);
            }
            finally
            {
                _syncLock.ReleaseWriterLock();
            }
        }
Exemple #23
0
        /// <summary>
        /// 老化结束数量
        /// </summary>
        private void refreshEndBIStatus()
        {
            try
            {
                string er = string.Empty;

                CDBCOM db = new CDBCOM(EDBType.Access, "", CGlobalPara.SysDB);

                DataSet ds = null;

                string sqlCmd = string.Empty;

                if (cmbModel.Text == CLanguage.Lan("所有老化机种"))
                {
                    sqlCmd = "select * from RUN_PARA where doRun=" + (int)EDoRun.老化结束 + " order by UUTNO";
                }
                else
                {
                    sqlCmd = "select * from RUN_PARA where doRun=" + (int)EDoRun.老化结束 + " and ModelName='" + cmbModel.Text + "' order by UUTNO";
                }

                if (!db.QuerySQL(sqlCmd, out ds, out er))
                {
                    MessageBox.Show(er);
                    return;
                }

                labOutNum.Text = ds.Tables[0].Rows.Count.ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Exemple #24
0
        /// <summary>
        /// 写入AC ON/OFF
        /// </summary>
        /// <param name="addr"></param>
        /// <param name="er"></param>
        /// <returns></returns>
        private bool writeACON(int addr, out string er)
        {
            er = string.Empty;

            try
            {
                _syncLock.AcquireWriterLock(-1);

                Thread.Sleep(_delayMs);

                if (!_devFMB.SetACON(addr, _Mon[addr].Para.ACON.wOnOff, out er, _Mon[addr].Para.ACON.synC, _Mon[addr].Para.ACON.B400))
                {
                    Thread.Sleep(_delayMs);

                    if (!_devFMB.SetACON(addr, _Mon[addr].Para.ACON.wOnOff, out er, _Mon[addr].Para.ACON.synC, _Mon[addr].Para.ACON.B400))
                    {
                        er = _Mon[addr].ToString() + CLanguage.Lan("写ACON") + ";";
                        return(false);
                    }
                }

                _Mon[addr].Para.ACON.op = EOP.写入OK;

                return(true);
            }
            catch (Exception ex)
            {
                er = ex.ToString();
                return(false);
            }
            finally
            {
                _syncLock.ReleaseWriterLock();
            }
        }
Exemple #25
0
        /// <summary>
        /// 初始化控件
        /// </summary>
        private void InitialControl()
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new Action(InitialControl));
            }
            else
            {
                uiModel = new udcModelInfo();
                uiModel.OnBtnClick.OnEvent += new COnEvent <udcModelInfo.COnBtnClickArgs> .OnEventHandler(OnUIModelBtnArgsClick);

                uiModel.Dock = DockStyle.Fill;

                uiSnBand      = new udcBandFixture(CKunXApp.FixPos);
                uiSnBand.Dock = DockStyle.Fill;
                uiSnBand.OnCheckArgs.OnEvent += new COnEvent <udcBandFixture.CCheckArgs> .OnEventHandler(OnUICheckSnArgs);

                uiSnBand.OnSnKeyPress.OnEvent += new COnEvent <GJ.KunX.LOADUP.Udc.udcBandFixture.CSnKeyArgs> .OnEventHandler(OnUISnKeyRecvArgs);

                uiSnBand.LoadUUT(CKunXApp.SlotMax);

                uiRunTest      = new udcPreTest();
                uiRunTest.Dock = DockStyle.Fill;
                uiRunTest.OnBtnClickArgs.OnEvent += new COnEvent <udcPreTest.CBtnClickArgs> .OnEventHandler(OnUIYieldBtnArgsClick);

                uiRunTest.LoadUUT(CKunXApp.SlotMax);

                uiPreTest      = new udcStatFixture(CKunXApp.FixPos);
                uiPreTest.Dock = DockStyle.Fill;
                uiPreTest.OnBtnClickArgs.OnEvent += new COnEvent <udcStatFixture.CBtnClickArgs> .OnEventHandler(OnUIFailConfirmArgsClick);

                uiPreTest.LoadUUT(CKunXApp.SlotMax);

                uiInBI      = new udcStatFixture(CKunXApp.FixPos);
                uiInBI.Dock = DockStyle.Fill;
                uiInBI.LoadUUT(CKunXApp.SlotMax);

                uiPassRate      = new udcPassRate(0, CLanguage.Lan("通电测试良率预警"));
                uiPassRate.Dock = DockStyle.Fill;
                uiPassRate.OnBtnClick.OnEvent += new COnEvent <udcPassRate.COnBtnClickArgs> .OnEventHandler(OnUIPassRateClick);

                runLog              = new udcRunLog();
                runLog.Dock         = DockStyle.Fill;
                runLog.mTitleEnable = false;

                plcLog              = new udcRunLog();
                plcLog.Dock         = DockStyle.Fill;
                plcLog.mTitleEnable = false;
                plcLog.mTitle       = "PLCLog";

                panel2.Controls.Add(uiSnBand, 0, 1);
                panel2.Controls.Add(uiModel, 0, 2);
                panel3.Controls.Add(uiPreTest, 0, 1);
                panel3.Controls.Add(uiRunTest, 0, 2);
                panel4.Controls.Add(uiInBI, 0, 1);
                tabPage1.Controls.Add(runLog);
                tabPage2.Controls.Add(plcLog);
                tabPage3.Controls.Add(uiPassRate);
            }
        }
Exemple #26
0
        public CFMBThread(int idNo, string name, int startAddr, int endAddr, bool autoMode = false, bool synC = true, EVMODE voltMode = EVMODE.VOLT_40)
        {
            this._idNo = idNo;

            this._name = name;

            this._startAddr = startAddr;

            this._endAddr = endAddr;

            this._autoMode = autoMode;

            this._synC = synC;

            this._voltMode = voltMode;

            for (int i = startAddr; i <= endAddr; i++)
            {
                CFMB fmb = new CFMB();

                fmb.Base.addr = i;

                fmb.Base.name = _name + "-【" + CLanguage.Lan("快充板") + i.ToString("D2") + "】";

                fmb.Base.status = ESTATUS.运行;

                fmb.Base.conStatus = true;

                _Mon.Add(i, fmb);
            }
        }
Exemple #27
0
        /// <summary>
        /// 初始化主线程类
        /// </summary>
        private void InitalMainWork()
        {
            MainWork = new CMainWork(0, "<" + CLanguage.Lan("通电测试工位") + ">", _fatherGuid);
            MainWork.OnUILogArgs.OnEvent += new COnEvent <CUILogArgs> .OnEventHandler(OnLog);

            MainWork.OnPLCLogArgs.OnEvent += new COnEvent <CUILogArgs> .OnEventHandler(OnPLCLog);

            MainWork.OnUIGlobalArgs.OnEvent += new COnEvent <CUIGlobalArgs> .OnEventHandler(OnGlobal);

            MainWork.OnUIInidcatorArgs.OnEvent += new COnEvent <CUIInicatorArgs> .OnEventHandler(OnIndicator);

            MainWork.OnUISystemArgs.OnEvent += new COnEvent <CUIUserArgs <CUISystemArgs> > .OnEventHandler(OnSystem);

            MainWork.OnUIActionArgs.OnEvent += new COnEvent <CUIUserArgs <CUIActionAgrs> > .OnEventHandler(OnActionArgs);

            MainWork.OnUIModelArgs.OnEvent += new COnEvent <CUIUserArgs <CModelPara> > .OnEventHandler(OnModel);

            MainWork.OnUIBandSnArgs.OnEvent += new COnEvent <CUIUserArgs <CStatHub> > .OnEventHandler(OnBandSn);

            MainWork.OnUIScanSnArgs.OnEvent += new COnEvent <CUIUserArgs <CUIScanSnArgs> > .OnEventHandler(OnScanSn);

            MainWork.OnUIStatHubArgs.OnEvent += new COnEvent <CUIUserArgs <CStat> > .OnEventHandler(OnStatHub);

            MainWork.OnUIStatTestArgs.OnEvent += new COnEvent <CUIUserArgs <CStat> > .OnEventHandler(OnStatTest);

            MainWork.OnUIInBIArgs.OnEvent += new COnEvent <CUIUserArgs <CStatHub> > .OnEventHandler(OnInBI);

            MainWork.OnUIStatDataArgs.OnEvent += new COnEvent <CUIUserArgs <CUIStatDataArgs> > .OnEventHandler(OnStatData);

            MainWork.OnUIPassRateArgs.OnEvent += new COnEvent <CUIUserArgs <CWarnRate> > .OnEventHandler(OnPassRate);

            MainWork.InitialUI();
        }
Exemple #28
0
        /// <summary>
        /// 设置控制板状态
        /// </summary>
        /// <param name="addr"></param>
        /// <param name="status"></param>
        /// <param name="er"></param>
        /// <returns></returns>
        public bool SetStatus(int addr, ESTATUS status, out string er)
        {
            er = string.Empty;

            try
            {
                if (!_Mon.ContainsKey(addr))
                {
                    er = CLanguage.Lan("快充板地址") + "[" + addr.ToString("D2") + "]" + CLanguage.Lan("不存在");
                    return(false);
                }

                _Mon[addr].Base.status = status;

                return(true);
            }
            catch (Exception ex)
            {
                er = ex.ToString();
                return(false);
            }
            finally
            {
            }
        }
Exemple #29
0
        private void OnDebugBtnClick(object sender, udcStatFixture.COnBtnClickArgs e)
        {
            try
            {
                if (MainWork == null)
                {
                    return;
                }

                if (e.idNo == 0)  //调试
                {
                    MainWork.OnFrmMainDebug(e.idNo, e.status);
                }
                else             //清除产能
                {
                    if (MessageBox.Show(CLanguage.Lan("确定要归零测试数量统计?"), "Tip",
                                        MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
                    {
                        return;
                    }

                    MainWork.OnFrmMainClearYield();
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #30
0
        /// <summary>
        /// 监控线程
        /// </summary>
        private void WatchConnecting()
        {
            try
            {
                while (true)  // 持续不断的监听客户端的连接请求;
                {
                    // 开始监听客户端连接请求,Accept方法会阻断当前的线程;
                    Socket sokConnection = _socketWatch.Accept(); // 一旦监听到一个客户端的请求,就返回一个与该客户端通信的 套接字;

                    OnCon(new CTcpConArgs(_idNo, _name, CLanguage.Lan("连接客户端") + "[" + sokConnection.RemoteEndPoint.ToString() + "].", false,
                                          sokConnection.RemoteEndPoint.ToString(), 1));

                    // 将与客户端连接的 套接字 对象添加到集合中;
                    socketLock.AcquireWriterLock(-1);
                    _dictSocket.Add(sokConnection.RemoteEndPoint.ToString(), sokConnection);
                    _recvLen.Add(sokConnection.RemoteEndPoint.ToString(), 0);
                    _recvData.Add(sokConnection.RemoteEndPoint.ToString(), "");
                    _recvByte.Add(sokConnection.RemoteEndPoint.ToString(), null);
                    Thread thr = new Thread(RecMsg);
                    thr.IsBackground = true;
                    thr.Start(sokConnection);
                    _dictThread.Add(sokConnection.RemoteEndPoint.ToString(), thr);  //  将新建的线程添加到线程的集合中去。
                    socketLock.ReleaseWriterLock();
                }
            }
            catch (Exception)
            {
                //throw;
            }
            finally
            {
                _conStatus = false;
                OnCon(new CTcpConArgs(_idNo, _name, CLanguage.Lan("服务端断开连接"), true));
            }
        }