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) { } }
/// <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(); } }
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()); } }
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); }
/// <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(); } }
/// <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 { } }
/// <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"; } } }
/// <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; } }
/// <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); } }
/// <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); } }
/// <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; } }
/// <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); } }
/// <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; } }
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; } }
/// <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 { } }
/// <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)"; } } } }
/// <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 { } }
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; } }
/// <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)); } }
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; } }
/// <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); } }
/// <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(); } }
/// <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()); } }
/// <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(); } }
/// <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); } }
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); } }
/// <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(); }
/// <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 { } }
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; } }
/// <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)); } }