/// <summary> /// 设备暂停/恢复 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btPause_Click(object sender, EventArgs e) { IJFMainStation ms = JFHubCenter.Instance.StationMgr.MainStation; if (!_isStationWorking(ms.WorkStatus)) { JFTipsDelayClose.Show("无效操作:设备未运行", 2); return; } if (ms.WorkStatus == JFWorkStatus.Pausing) { JFTipsDelayClose.Show("无效操作:设备已暂停运行", 2); return; } string errorInfo = null; bool isOK = ms.Pause(out errorInfo); if (!isOK) { JFTipsDelayClose.Show("暂停操作失败:" + errorInfo, 2); return; } else { JFTipsDelayClose.Show("设备已暂停", 2); } }
/// <summary> /// 关闭工站/设备,释放各种资源 /// </summary> public void Close() { string errInfo = ""; ///关闭工站 IJFMainStation mainStation = StationMgr.MainStation; if (null != mainStation) { mainStation.Stop(out errInfo); } string[] stationNames = StationMgr.AllStationNames(); if (null != stationNames && stationNames.Length > 0) { foreach (string stationName in stationNames) { IJFStation station = StationMgr.GetStation(stationName); station.Stop(); } } ///关闭所有设备 string[] deviceIDs = InitorManager.GetIDs(typeof(IJFDevice)); if (null != deviceIDs && deviceIDs.Length > 0) { foreach (string devID in deviceIDs) { IJFDevice dev = InitorManager.GetInitor(devID) as IJFDevice; dev.CloseDevice(); } } ///释放其他对象 ///添加代码 ... }
/// <summary> /// 设备运行 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btStart_Click(object sender, EventArgs e) { IJFMainStation ms = JFHubCenter.Instance.StationMgr.MainStation; if (ms.WorkStatus == JFWorkStatus.Running) { JFTipsDelayClose.Show("无效操作:正在运行中", 2); return; } string errorInfo; if (!_isStationWorking(ms.WorkStatus)) { ///先将所有使能工站切换为自动模式 JFStationManager mgr = JFHubCenter.Instance.StationMgr; string[] allEnableStationNames = mgr.AllEnabledStationNames(); if (null != allEnableStationNames) { foreach (string sn in allEnableStationNames) { IJFStation station = mgr.GetStation(sn); if (!station.SetRunMode(JFStationRunMode.Auto)) { MessageBox.Show("启动运行失败,未能将工站:" + sn + "切换为自动运行模式"); return; } } } //// 添加消息回调 //string[] allEnableStationNames = JFHubCenter.Instance.StationMgr.AllEnabledStationNames(); bool isOK = ms.Start(out errorInfo); if (!isOK) { MessageBox.Show("启动失败:" + errorInfo); return; } else { JFTipsDelayClose.Show("设备开始运行", 1); } } if (ms.WorkStatus == JFWorkStatus.Pausing) //当前处于暂停状态 { bool isOK = ms.Resume(out errorInfo); if (!isOK) { MessageBox.Show("恢复运行失败:" + errorInfo); return; } else { JFTipsDelayClose.Show("设备开始运行", 1); } } }
IJFMainStation _mainStation = null; //主工站 /// <summary> /// 为应用程序注册一个主工站,在Application.Run()运行之前调用 /// </summary> /// <param name=""></param> public void DeclearMainStation(IJFMainStation mainStation) { if (_mainStation != null) { throw new Exception("Main Station is already Registed!"); } if (null == mainStation) { throw new ArgumentNullException("Main Station is null object"); } _mainStation = mainStation; }
/// <summary> /// 清除报警信息 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btAlarm_Click(object sender, EventArgs e) { IJFMainStation ms = JFHubCenter.Instance.StationMgr.MainStation; string errInfo = ""; bool isOK = ms.ClearAlarming(out errInfo); if (!isOK) { JFTipsDelayClose.Show("清除报警失败:" + errInfo, 20); return; } JFTipsDelayClose.Show("报警已清除:", 2); }
/// <summary> /// 复位按钮被点击 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btReset_Click(object sender, EventArgs e) { IJFMainStation ms = JFHubCenter.Instance.StationMgr.MainStation; string errInfo = ""; if (!ms.Reset(out errInfo)) { JFTipsDelayClose.Show("归零操作失败:" + errInfo, 5); } else { JFTipsDelayClose.Show("归零指令OK:", 2); } }
/// <summary> /// 设备停止 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btStop_Click(object sender, EventArgs e) { IJFMainStation ms = JFHubCenter.Instance.StationMgr.MainStation; string errInfo = ""; if (!ms.Stop(out errInfo)) { JFTipsDelayClose.Show("停止操作失败:" + errInfo, 5); return; } //else // JFTipsDelayClose.Show("停止操作OK" + errInfo, 2); return; }
private void FormAuto_Load(object sender, EventArgs e) { IJFMainStation mainStation = JFHubCenter.Instance.StationMgr.MainStation; if (null == mainStation) { MessageBox.Show("MainStation is not Regist,App will Exit"); Application.Exit(); } Control mainStationPanel = mainStation.UIPanel; mainStationPanel.Dock = DockStyle.Fill; //mainStationPanel.Parent = splitContainer1.Panel2; splitContainer1.Panel2.Controls.Add(mainStationPanel); mainStationPanel.Show(); AdjustView(); }
private void timerFlush_Tick(object sender, EventArgs e) //主界面刷新 { IJFMainStation ms = JFHubCenter.Instance.StationMgr.MainStation; if (ms.IsAlarming != _isLastAlarming) { _isLastAlarming = !_isLastAlarming; if (_isLastAlarming) { btAlarm.Enabled = true; btAlarm.ImageKey = "Alarm_On.png"; statusLabelDevStatus.Text = "已报警:" + ms.GetAlarmInfo(); BackColor = Color.Red; } else //报警状态转为正常 { btAlarm.ImageKey = "Alarm_Off.png"; statusLabelDevStatus.Text = "未报警"; btAlarm.Enabled = false; _lastStatus = ms.WorkStatus; //添加代码 ... switch (_lastStatus) { case JFWorkStatus.UnStart: // = 0, //线程未开始运行 BackColor = Color.White; statusLabelDevStatus.Text = "未运行/已停止"; break; case JFWorkStatus.Running: //, //线程正在运行,未退出 BackColor = Color.Green; statusLabelDevStatus.Text = "运行中..."; break; case JFWorkStatus.Pausing: //, //线程暂停中 BackColor = Color.Yellow; statusLabelDevStatus.Text = "暂停中..."; break; case JFWorkStatus.Interactiving: //, //人机交互 , 等待人工干预指令 BackColor = Color.OrangeRed; statusLabelDevStatus.Text = "等待人工确认中..."; break; case JFWorkStatus.NormalEnd: //, //线程正常完成后退出 BackColor = Color.White; statusLabelDevStatus.Text = "已停止/正常结束"; break; case JFWorkStatus.CommandExit: //, //收到退出指令 BackColor = Color.White; statusLabelDevStatus.Text = "已停止/指令结束"; break; case JFWorkStatus.ErrorExit: //, //发生错误退出,(重启或人工消除错误后可恢复) BackColor = Color.DarkRed; statusLabelDevStatus.Text = "已停止/发生错误"; break; case JFWorkStatus.ExceptionExit: //, //发生异常退出 , (不可恢复的错误) BackColor = Color.DarkRed; statusLabelDevStatus.Text = "已停止/发生异常"; break; case JFWorkStatus.AbortExit: //, //由调用者强制退出 BackColor = Color.DarkRed; statusLabelDevStatus.Text = "已停止/指令强制"; break; default: //statusLabelDevStatus.Text = "状态未知:" + ws.ToString(); break; } } } if (_isLastAlarming) { return; } JFWorkStatus currWs = ms.WorkStatus; if (currWs == _lastStatus) { return; } _lastStatus = currWs; switch (_lastStatus) { case JFWorkStatus.UnStart: // = 0, //线程未开始运行 BackColor = Color.White; statusLabelDevStatus.Text = "未运行/已停止"; break; case JFWorkStatus.Running: //, //线程正在运行,未退出 BackColor = Color.Green; statusLabelDevStatus.Text = "运行中..."; break; case JFWorkStatus.Pausing: //, //线程暂停中 BackColor = Color.Yellow; statusLabelDevStatus.Text = "暂停中..."; break; case JFWorkStatus.Interactiving: //, //人机交互 , 等待人工干预指令 BackColor = Color.OrangeRed; statusLabelDevStatus.Text = "等待人工确认中..."; break; case JFWorkStatus.NormalEnd: //, //线程正常完成后退出 BackColor = Color.White; statusLabelDevStatus.Text = "已停止/正常结束"; break; case JFWorkStatus.CommandExit: //, //收到退出指令 BackColor = Color.White; statusLabelDevStatus.Text = "已停止/指令结束"; break; case JFWorkStatus.ErrorExit: //, //发生错误退出,(重启或人工消除错误后可恢复) BackColor = Color.DarkRed; statusLabelDevStatus.Text = "已停止/发生错误"; break; case JFWorkStatus.ExceptionExit: //, //发生异常退出 , (不可恢复的错误) BackColor = Color.DarkRed; statusLabelDevStatus.Text = "已停止/发生异常"; break; case JFWorkStatus.AbortExit: //, //由调用者强制退出 BackColor = Color.DarkRed; statusLabelDevStatus.Text = "已停止/指令强制"; break; default: //statusLabelDevStatus.Text = "状态未知:" + ws.ToString(); break; } }
public void SetMainStation(IJFMainStation ms) { _mainStation = ms; }