// 线程名/流程名/设备ID, 忽略返回值 protected int do_New(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vflowName) { _faim3 = v_faim3; _dao_comm = v_dao_comm; // 无流程名, 则取类名 _flowName = (string.IsNullOrEmpty(vflowName)) ? this.GetType().Name : vflowName; #region // dict_Threads 线程池 if (_faim3.dict_Threads.ContainsKey(_flowName)) // 存在key { FACC.F_Log.Debug_1("do_New()", string.Format("--->>>> {0}流程/设备存在", _flowName)); return(-1); // } clsThread _en = new clsThread(); // 线程消息 _en.Info = new clsThreadInfo(); _en.Name = _flowName; _en.Info.flowName = _flowName; // 专用线程代理 dict_Threads.Add _en.Del = new System.Threading.ThreadStart(do_Sub_While); // 实例化代理 _faim3.dict_Threads.Add(_flowName, _en); #endregion F_Log.Debug_1("do_New()", string.Format("初始化 流程:{0}", _flowName)); return(0); }
// 事件 //public event FaimDelegate.delOnMessage OnMessage; // 变量 //clsMethodWhile_BLL bo_MethodWhile = null; // 构造 public F_ThManager(clsFaim3 v_faim3, DAL_CommData v_dao_comm) { _faim3 = v_faim3; _dao_comm = v_dao_comm; //bo_MethodWhile = new clsMethodWhile_BLL(_faim3); //bo_MethodWhile.OnMessage += new FaimDelegate.delOnMessage(evt_OnMessage_MethodWhile); }
// MOVR 204C 011/3 -- 命令 设备 轴号/行号 public static void _204C(clsFaim3 _faim3, DAL_CommData _dao_comm, int idx) { clsDevTestBits _line = _faim3.lst_DevTestBits[idx]; clsDevFunction _df = _faim3.dict_DevFunction[_line.vName];// _204C(_faim3, _dao_comm, _line.IfType, _line.HL, _df.devNo); }
protected int do_BaseNew(clsFaim3 v_faim3, DAL_CommData v_dao_comm) { _faim3 = v_faim3; _dao_comm = v_dao_comm; _ret = do_InitData(); return(_ret); }
public clsWhile204(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vDevNo) { _CMD = ""; int _bit = 1; // 常数 int _use_Axis = Convert.ToInt32(v_faim3.dict_KV["use_Axis"]); for (int i = 0; i < 8; i++) { if ((_use_Axis & _bit) == _bit) { _lstAxisId.Add(i); } _bit = _bit << 1; } // 参数 _devNo = Convert.ToInt32(vDevNo); _flowName = string.Format("{0}_{1}", v_faim3.dict_DevCards[_devNo].Name, _devNo); // [2] // 初始化 基类 base.do_New(v_faim3, v_dao_comm, _flowName); _protocol = new clsProtocol(_faim3, _dao_comm); // 协议 if (!_dao_comm.dict_DevIo.ContainsKey(_devNo.ToString())) // 注册设备号 对应 设备对象 { _device = new cls204C(_faim3, _dao_comm, _devNo); // 设备 _dao_comm.dict_DevIo.Add(_devNo.ToString(), (IFaimIO)_device); } _dao_comm.OnEchoIO += new F_Delegate.delEcho(evt_comm_OnEchoIO); // 加消息 _dict_cmd.Add(_CMD01_Read_status, ""); // 第1命令 _dict_cmd.Add(_CMD02_Read_input, ""); // 第2命令 }
public frmFreeCode_09(clsFaim3 v_faim3, DAL_CommData v_dao_comm) { _faim3 = v_faim3; _dao_comm = v_dao_comm; CheckForIllegalCrossThreadCalls = false; InitializeComponent(); }
public frmCaseStep_06(clsFaim3 v_faim3, DAL_CommData v_dao_comm, F_ThManager v_bo_ThreadMana) { _faim3 = v_faim3; _dao_comm = v_dao_comm; _dao_comm.OnEchoIO += new F_Delegate.delEcho(_dao_comm_OnEchoIO); _bo_ThreadMana = v_bo_ThreadMana; CheckForIllegalCrossThreadCalls = false; InitializeComponent(); }
public clsFlowWhile(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vflowName) { base.do_New(v_faim3, v_dao_comm, vflowName); if (!_faim3.dict_Flow.ContainsKey(vflowName)) { FACC.F_Log.Debug_1(this.GetType().Name, "--->>>> 无 流程 " + vflowName); return; } _flow = _faim3.dict_Flow[vflowName]; }
public static void doCreateInstance(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vflowName) { string _fn = F_Const.path_flowDLL + vflowName + ".dll"; string _ns = "F_CaseWhile"; object _obj = null; if (vflowName == "clsWhile485" || vflowName == "clsWhile74x" || vflowName == "clsWhileTcp") { // 命名空间 / 类名 / faim3 / dao / new(形参:用户类名) _obj = doCreateInstance_byName_Para <object>( _ns, vflowName, v_faim3, v_dao_comm, vflowName // ); } else { #region // flow . do while // 命名空间 / 类名 / faim3 / dao / new(形参:用户类名) _obj = doCreateInstance_byName_Para <object>( _ns, "clsFlowWhile", v_faim3, v_dao_comm, vflowName // xxx ); if (_obj == null) { FACC.F_Log.Debug_1("clsTool_ASM", string.Format("!!01 未创建对象 :{0}", vflowName)); return; } FACC.F_Log.Debug_1("clsTool_ASM", string.Format("加入流程:{0}", vflowName)); // PartA IDAL_Temp_Part _Idal = null; _obj = doCreateInstance_byFile <object>( _fn, vflowName, "PartA" ); _Idal = _obj as IDAL_Temp_Part; _Idal.do_New(v_faim3, v_dao_comm); // PartB FACC.F_Log.Debug_1("clsTool_ASM", string.Format("加入步骤: {0}_PartA", vflowName)); _obj = doCreateInstance_byFile <object>( _fn, vflowName, "PartB" ); _Idal = _obj as IDAL_Temp_Part; _Idal.do_New(v_faim3, v_dao_comm); #endregion } } FACC.F_Log.Debug_1("clsTool_ASM", string.Format("按钮: 加入步骤: {0}_PartB", vflowName)); }
bool doPartA(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vflowName) { string _cls_Name = "DAL_PartA"; clsLogs _logs = new clsLogs(); clsFlow _flow = v_faim3.dict_Flow[vflowName]; string _currCase = _flow.nextCase; F_Log.Debug_1(_cls_Name, String.Format("流程:{0}: 步骤:{1}", vflowName, _currCase)); _flow.alartCase = _currCase; if (!v_faim3.dict_CaseState.ContainsKey(_currCase)) { //'A: 步骤.txt 文件中没有注册该步骤参数 _logs.No = v_faim3.dict_CaseState[_currCase].No; _logs.Name = (_currCase + "_没注册 步骤"); _flow.RunLog.Add(_logs); F_Log.Debug_1(_cls_Name, string.Format("--->>>> 没注册 流程:{0}: 步骤:{1}", vflowName, _currCase)); return(true); } clsCaseState _en_State = v_faim3.dict_CaseState[_currCase]; if ((_en_State.Times > 0)) // 逻辑模型: 执行次数至少有一次, 如 <1, 则不执行AR(), 只执行判断, 以实现流程在等待联动消息的逻辑 { F_Delegate.delCasePartA_R _doPartA = _dao_comm.dict_Methods.doPartA_R[_currCase]; // 通过代理, 从步骤集中取出一个步骤, 执行其方法() // _logs.No = v_faim3.dict_CaseState[_currCase].No; _logs.Name = _currCase; _flow.RunLog.Add(_logs); _doPartA(v_faim3, v_dao_comm); // AR // Delay if ((_en_State.Delay > -1))// { Thread.Sleep(_en_State.Delay); } // } if (string.IsNullOrEmpty(_en_State.No))//逻辑模型: 无BT报警号 检测的步骤, 只执行 AR(), 不执行AR(), 实现两个 AR() 串联(直通)的逻辑 { doGet_NextCase(_faim3, ref _flow, _currCase); } else { // 逻辑模型: 无BT报警号 无报警延时, 只执行 AR(), 不执行AR(), 实现两个 AR() 串联(直通)的逻辑 string _testCase = (_currCase + F_Const.fix_CaseT); if (_flow.nextCase == _flow.currCase) { _flow.alartCase = _currCase; _flow.nextCase = _testCase; // ==> Test 当前流程名 + _T F_Log.Debug_1(_cls_Name, String.Format("取到 测试步骤名:{0}", _flow.nextCase)); } } return(true); }
public clsWhileTcp(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vDevNo) { _CMD = ""; MaxAxisNum = Convert.ToInt32(v_faim3.dict_KV["cnt_Axis"]); _devNo = Convert.ToInt32(vDevNo); _flowName = string.Format("{0}_{1}", v_faim3.dict_DevCards[_devNo].Name, vDevNo); base.do_New(v_faim3, v_dao_comm, _flowName); _device = new clsTCP(_faim3, _dao_comm, _devNo); if (!_dao_comm.dict_DevIo.ContainsKey(_devNo.ToString())) { _dao_comm.dict_DevIo.Add(_devNo.ToString(), (IFaimIO)_device); } }
// 设备号的来源可能为多个因素 public static void _204C(clsFaim3 _faim3, DAL_CommData _dao_comm, string IfType, string HL, int _devNo) { int _ref_1i = _devNo * _faim3.sect_iDev; // 偏移 int _ref_1s = _devNo * _faim3.sect_sDev + _faim3.sect_sDev_start; // 偏移 // 行号为消息 _faim3._sss[_ref_1s + _faim3.snd_sAsc] = IfType; // 命令 int _val_2 = F_TransCalc._Get_Value_2(_faim3, HL); // 文档的值: 数值 _faim3._sss[_ref_1s + _faim3.snd_sLen] = _val_2.ToString(); // 轴号表/行号 _faim3.Comm_Data.bt_out[0][_ref_1i] = -99; _dao_comm.set_bt_out(_ref_1i, _devNo); // 设备 消息 }
public bool Part_2(clsFaim3 v_faim3, DAL_CommData v_dao_comm) { Part_BT(v_faim3, v_dao_comm); #region // xls do_TEST2(v_faim3, v_dao_comm, _flowName, _caseName, ref _bl); if (_bl) { do_PART_C(v_faim3, v_dao_comm, _flowName, _caseName); } else { NG(v_faim3, v_dao_comm, _flowName, _caseName); } #endregion return(_bl); }
protected int do_New(clsFaim3 v_faim3, DAL_CommData v_dao_comm) { _ret = do_BaseNew(v_faim3, v_dao_comm); if (_dao_comm.dict_Methods.doCase.ContainsKey(_caseName)) { FACC.F_Log.Debug_1(_clsName, String.Format("--->>>> 初始化失败-3: {0} 步骤名 已存在", _caseName)); _ret = -3; } if (_ret < 0) { return(_ret); } _dao_comm.dict_Methods.doCase.Add(_caseName, new F_Delegate.delCase(PartA)); //'通用代理1 _dao_comm.dict_Methods.doPartA_R.Add(_caseName, new F_Delegate.delCasePartA_R(Part_1)); //'通用代理2 FACC.F_Log.Debug_1(_clsName, String.Format("初始化 步骤:{0}", _caseName)); return(0); }
public clsWhile74x(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vDevNo) { _devNo = Convert.ToInt32(vDevNo); _flowName = string.Format("{0}_{1}", v_faim3.dict_DevCards[_devNo].Name, vDevNo); //[2] base.do_New(v_faim3, v_dao_comm, _flowName); if (_flowName.Contains("7432")) { _device = new cls7432(_faim3, _dao_comm, _devNo); } if (_flowName.Contains("7230")) { _device = new cls7230(_faim3, _dao_comm, _devNo); } if (!_dao_comm.dict_DevIo.ContainsKey(_devNo.ToString())) { _dao_comm.dict_DevIo.Add(_devNo.ToString(), (IFaimIO)_device); } }
static void _dao_comm_set_arr_str800(clsFaim3 _faim3, DAL_CommData _dao_comm, string _flowName, int caseLineIdx) { int _loc = 0; string _msg = ""; clsFlow _flow = _faim3.dict_Flow[_flowName]; if (!_flow.isStepLine) { return; // 是“行步进”调试 } clsCaseState _caseState = _faim3.dict_CaseState[_flow.alartCase]; _msg = _dao_comm_set_msg(_faim3, _flowName, caseLineIdx, ref _loc); if (!string.IsNullOrEmpty(_msg)) { _dao_comm.set_arr_str(_loc + 800, _msg); } }
public clsWhile485(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vDevNo) { _CMD = ""; _cnt_Axis15 = Convert.ToInt32(v_faim3.dict_KV["cnt_Axis"]); _devNo = Convert.ToInt32(vDevNo); _flowName = string.Format("{0}_{1}", v_faim3.dict_DevCards[_devNo].Name, _devNo); base.do_New(v_faim3, v_dao_comm, _flowName); _device = new cls485(_faim3, _dao_comm, _devNo); _bo_protocol = new clsProt485(_faim3); if (!_dao_comm.dict_DevIo.ContainsKey(_devNo.ToString())) // 加功能接口 { _dao_comm.dict_DevIo.Add(_devNo.ToString(), (IFaimIO)_device); } _dao_comm.OnEchoIO += new F_Delegate.delEcho(evt_comm_OnEchoIO); // 加消息 _dict_cmd.Add(_CMD_Read01, ""); _dict_cmd.Add(_CMD_Read08, ""); }
// from : file 命名空间.类名 / faim3 / dao / new(形参:用户类名) static T do_CreateInstance_byName_Para <T>(string vName, clsFaim3 v_faim3, DAL_CommData v_dao_comm, string userClassName) { object obj = null; Type vT = Type.GetType(vName); obj = Activator.CreateInstance( vT, new object[] { v_faim3, v_dao_comm, userClassName }); T _en = (T)obj;// if (_en == null) { F_Log.Debug_1("clsTool_ASM", string.Format("--->>>> 04 未创建对象_{0} {1}", vName, userClassName)); } else { F_Log.Debug_1("clsTool_ASM", string.Format("成功创建对象_{0}", _en.GetType().Name)); } return(_en); }
//1 PartB --> doPartB --> Part_2 -- Part_BT protected int do_New(clsFaim3 v_faim3, DAL_CommData v_dao_comm) { _ret = do_BaseNew(v_faim3, v_dao_comm); _testName = (_flowName + (_caseFix + F_Const.fix_CaseT));//测试步骤方法名 if (_dao_comm.dict_Methods.doCase.ContainsKey(_testName)) { FACC.F_Log.Debug_1(_clsName, string.Format("", _testName)); _ret = -30; } if (_ret < 0) { return(_ret); } _dao_comm.dict_Methods.doCase.Add(_testName, new F_Delegate.delCase(PartB)); //'通用代理1 _dao_comm.dict_Methods.doPartB_T.Add(_caseName, new F_Delegate.delCasePartB_T(Part_2)); //'通用代理2 _dao_comm.dict_Methods.doPartB_R.Add(_caseName, new F_Delegate.delCasePartB_R(Part_BR)); //'通用代理3 FACC.F_Log.Debug_1(_clsName, string.Format("初始化 步骤:{0}", _testName)); return(0); }
static void _do_WaitLine(clsFaim3 _faim3, DAL_CommData _dao_comm, string _flowName, eWF_State vStopState, int vCaseLineIdx) { #region // 是“行步进”调试 clsFlow _flow = _faim3.dict_Flow[_flowName]; if (!_flow.isStepLine) { return; // 是“行步进”调试 } clsDevTestBits _line = _faim3.lst_DevTestBits[vCaseLineIdx]; if (_line.isDebug == 1) /*#*/ // cfgDev_testBits # { if (_faim3.dict_KV["isDebug"] != "1") // 非 debug 状态下,不运行 debug 行 cfgDev_Cards.xls { return; } } _flow.caseLineIdx = vCaseLineIdx; while (_flow.caseLineIdx == vCaseLineIdx)// { if (_faim3.isEmergency > 0) { break; // 急停 } if (_flow.eState == eWF_State.End || _flow.eState == eWF_State.Wait) { break; } if (_flow.eState != vStopState) { _flow.eState = vStopState; // _dao_comm_set_arr_str800(_faim3, _dao_comm, _flowName, vCaseLineIdx); // “行步进”消息 arr_str[0][800 + _flowIdx] } System.Threading.Thread.Sleep(100); } _flow.eState = eWF_State.Running; // #endregion }
//F_ThManager _bo_ThreadMana = null; public clsFrm50_BLL(clsFaim3 v_faim3, DAL_CommData v_dao_comm)//, F_ThManager v_bo_ThreadMana) { _faim3 = v_faim3; _dao_comm = v_dao_comm; //_bo_ThreadMana = v_bo_ThreadMana; }
static void __NG(clsFaim3 _faim3, DAL_CommData _dao_comm, string _flowName, string _caseName) { if (_flowName == "DAL_Buttons") { return; } clsFlow _flow = _faim3.dict_Flow[_flowName]; string _alartCase = _flow.alartCase; //if (!_faim3.dict_CaseState.ContainsKey(_alartCase)) return; // clsCaseState _caseState = _faim3.dict_CaseState[_alartCase]; Dictionary <string, clsCaseChildInfo> _dictCaseChildInfo = _caseState.dict_CaseChildInfo; if (!_dictCaseChildInfo.ContainsKey(_NG_D)) { return; // 指定步骤无此部份指令 } int _lineStart = _dictCaseChildInfo[_NG_D].lineStart; if (_lineStart < 0) { return; // 条件:没有指定的结构块起始行号 } _do_WaitLine(_faim3, _dao_comm, _flowName, eWF_State.JMP, _lineStart); if (_faim3.isEmergency > 0) { return; } #region // 开始执行 clsDevTestBits _line = _faim3.lst_DevTestBits[_lineStart]; if (_line.isDebug == 1) /*#*/ { if (_faim3.dict_KV["isDebug"] != "1") // 非 debug 状态下,不运行 debug 行 cfgDev_Cards.xls { return; } } //string _line_vName = _line.vName; if (_flow.dictCases.ContainsKey(_line.vName) || _line.vName.ToUpper().Trim() == "NEXT" || _line.vName.ToUpper().Trim() == "NEXTCASE") // 5. 转向目标正确 { _flow.Tag = "GOTO_NG"; // 设NG跳转标志 if (_flow.NGtimes == 0) // 首次,初始设次数 { _flow.NGtimes = Convert.ToInt32(string.IsNullOrEmpty(_line.HL) ? "1" : _line.HL); } if (_flow.NGtimes < 2) // 到NG次数, 则转向 { _flow.NGtimes = 0; _caseState.endMode = eCaseFlag.NG; if (_line.vName.ToUpper().Trim() == "NEXT" || _line.vName.ToUpper().Trim() == "NEXTCASE") // 转向下一步骤 NestCase 的第一行号 { _flow.nextCase = _flow.dictCases[_alartCase].nextCase; // 设跳转步骤名 } else { _flow.nextCase = _line.vName; } } else { _flow.NGtimes--; } } else// '流程结束 { F_Log.Debug_1("NG", String.Format("--->>>> {0} NG指定之步骤名不存在", _line.vName)); _caseState.endMode = eCaseFlag.Exist; _flow.nextCase = "Free"; } #endregion _line.times++; // 此行使用的次数 }
// 13 OUT_T //protected virtual void OUT_T(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vflowName, string vCaseName) //{ // F_CaseSub._OUT_T(v_faim3, v_dao_comm, vflowName, vCaseName); //} // 14 DIM_TOK // 15 OUT_TOK // 16 NG protected virtual void NG(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vflowName, string vCaseName) { F_CaseSub._NG(v_faim3, v_dao_comm, vflowName, vCaseName); }
// 04 "DIM_AOK" // 05 // 11 "DIM_T" // 12 测试 TEST protected virtual void do_TEST2(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vflowName, string vCaseName, ref bool vbl) { F_CaseSub._TEST2(v_faim3, v_dao_comm, vflowName, vCaseName, ref vbl); }
protected virtual void do_PART_C(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vflowName, string vCaseName) { F_CaseSub.do_PARTC(v_faim3, v_dao_comm, vflowName, vCaseName); }
void doPartB(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vflowName) { string _cls_Name = "DAL_PartB"; clsFlow _flow = v_faim3.dict_Flow[vflowName]; string _alartCase = _flow.alartCase;//取流程名, 无后缀 clsCaseState _caseState = _faim3.dict_CaseState[_alartCase]; clsCaseAlarm _enAlarm = v_faim3.dict_CaseAlarm[_alartCase]; _enAlarm.OnAlarm += new FaimDelegate.delAlarm(_enAlarm_OnAlarm); // if ((_enAlarm.maxDelay1 == -1))//逻辑模型 maxDelay1 = -1 不进行测试 { doGet_NextCase(_faim3, ref _flow, _alartCase); FACC.F_Log.Debug_1(_clsName, string.Format("逻辑模型 maxDelay1 = -1 不进行测试:{0}", _alartCase)); return; } // 带后缀的 方法 名, 只在 dict_Methods.doCase 中 F_Delegate.delCasePartB_T _doPartB_T = _dao_comm.dict_Methods.doPartB_T[_alartCase]; bool _bl_BT = true; _bl_BT = (_bl_BT & _doPartB_T(v_faim3, v_dao_comm)); // 测试 TEST if ((_flow.Tag == "GOTO_ABS" || _flow.Tag == "GOTO_NG")) // { _flow.Tag = ""; _flow.stepCase = _flow.currCase; return; } else if ((_flow.Tag == "GOTO_OTHER"))// { _flow.Tag = ""; List <string> _otherCase = _flow.dictCases[_alartCase].otherCase; if (_otherCase.Contains(_alartCase))// 若 自定义列表包括了当前步骤名, 如何处理??? { return; } } else if ((_flow.Tag == "ALAR_ON_NG")) { _flow.Tag = ""; _enAlarm.AlarmDrv = eSwitch.On; _enAlarm.AlarmIs = true; // OnAlarm(this); // return; } else if ((_flow.Tag == "ALAR_OFF_NG"))// { _flow.Tag = ""; _enAlarm.AlarmDrv = eSwitch.Off; // _enAlarm.AlarmIs = false; // OnAlarm(this); return; } // if ((_bl_BT && !_enAlarm.AlarmIs))// { // _caseState.Result = ""; _enAlarm.DelayT1 = 0; _enAlarm.DelayT2 = 0; _flow.NGtimes = 0; doGet_NextCase(_faim3, ref _flow, _alartCase); F_Log.Debug_1(_cls_Name, (_alartCase + " BT(1)")); } else { // if (!_enAlarm.AlarmIs)// 没报警 { // _enAlarm.DelayT1++; if (_enAlarm.DelayT1 > _enAlarm.maxDelay1)// 第一圈 { _enAlarm.DelayT1 = 0; _enAlarm.DelayT2++; if (_enAlarm.DelayT2 > _enAlarm.maxDelay2)// 第二圈 时间到 { _enAlarm.DelayT2 = 0; if (_enAlarm.maxDelay2 == 0)// { if (_flow.dictCases.ContainsKey(_alartCase)) { _caseState.endMode = eCaseFlag.NG; _flow.nextCase = v_faim3.dict_CaseAlarm[_alartCase].excpCase; } else { F_Log.Debug_1(_cls_Name, string.Format("--->>>> {0} 没有指定下一个方法名", _alartCase)); _caseState.endMode = eCaseFlag.Exist; _flow.nextCase = "Free";//流程结束 } return; } else if (_enAlarm.maxDelay2 > 0) { _enAlarm.AlarmIs = true; _enAlarm.AlarmDrv = eSwitch.On;// 报警灯亮 // } } } } else if (_enAlarm.AlarmIs)// { // if (!string.IsNullOrEmpty(_enAlarm.dlgMessage))// { string _title = (_enAlarm.RemarkA + ",请确认忽略异常!"); if ((_enAlarm.dlgMessage.Length > 6)) { _title = _enAlarm.dlgMessage; } // DialogResult _dlg = MessageBox.Show(_enAlarm.dlgMessage, "温馨提示", MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification); if ((_dlg == DialogResult.OK))//逻辑模型: 人工出口, 有报警 忽略异常 { // F_Delegate.delCasePartB_R _doPart_BR = v_dao_comm.dict_Methods.doPartB_R[_alartCase]; // 测试 RUN _doPart_BR(v_faim3, v_dao_comm); // System.Threading.Thread.Sleep(_enAlarm.DelayB); if (_flow.dictCases.ContainsKey(_alartCase)) { _caseState.endMode = eCaseFlag.NG; _flow.nextCase = v_faim3.dict_CaseAlarm[_alartCase].excpCase; } else { F_Log.Debug_1(_cls_Name, string.Format("--->>>> {0} 没有指定下一个方法名", _alartCase)); _caseState.endMode = eCaseFlag.Exist; _flow.nextCase = "Free";//流程结束 } _enAlarm.AlarmIs = false; _enAlarm.AlarmDrv = eSwitch.Off;//报警灯灭 } } else if (_bl_BT)//逻辑模型: 成功出口, 有报警 { _caseState.Result = ""; _enAlarm.DelayT1 = 0; _enAlarm.DelayT2 = 0; _flow.NGtimes = 0; _enAlarm.AlarmIs = false; _enAlarm.AlarmDrv = eSwitch.Off;//报警灯灭 doGet_NextCase(_faim3, ref _flow, _alartCase); F_Log.Debug_1(_cls_Name, (_alartCase + " BT(2)")); } } } return; }
// 16 _NG internal static void _NG(clsFaim3 _faim3, DAL_CommData _dao_comm, string _flowName, string _CaseName) { __NG(_faim3, _dao_comm, _flowName, _CaseName); // }
// 12 测试 internal static void _TEST2(clsFaim3 _faim3, DAL_CommData _dao_comm, string _flowName, string _CaseName, ref bool _bl) { _TEST_2(_faim3, _dao_comm, _flowName, _CaseName, ref _bl); }
internal static void do_PARTC(clsFaim3 _faim3, DAL_CommData _dao_comm, string _flowName, string _CaseName) { //_TEST_2_Reset(_faim3, _dao_comm, _flowName, _CaseName); _PART_CMD(_faim3, _dao_comm, _flowName, _CaseName, _CMD_C); // }
internal static void do_PARTA(clsFaim3 _faim3, DAL_CommData _dao_comm, string _flowName, string _CaseName) { _PART_CMD(_faim3, _dao_comm, _flowName, _CaseName, _CMD_A); // //_TEST_2_Pre(_faim3, _dao_comm, _flowName, _CaseName); }