//执行端发送Command控制命令节点 public bool CreateCmdByCommandTable(CommandTable ct) { //进行多命令信息的初始化 List <Step> CmdStepList = new List <Step>(); CmdStepList = ct.GetStepList(); int StepCount = CmdStepList.Count; m_CmdIndex = 0; //重新开始执行 int devIndex = 0; SequenceCmdList.Clear(); //清空原来执行的内容 if (StepCount > 0) //说明具有多缓冲命令信息 { //进行命令消息的存储 for (int i = 0; i < StepCount; i++) { devIndex = GetDevIndexByAddress(CmdStepList[i].Source.Address); deviceconfig_autocmditem SequenceCmdItem = new deviceconfig_autocmditem(); SequenceCmdItem.secs = CmdStepList[i].Time; //执行时间S SequenceCmdItem.ChangeTime = CmdStepList[i].ChangeTime; //变换时间 SequenceCmdItem.HoldTime = CmdStepList[i].HodeTime; //持续时间 SequenceCmdItem.DestValue = CmdStepList[i].TargetValue; //目标值 SequenceCmdItem.ExeFlag = false; //执行标志为false SequenceCmdItem.devAddress = CmdStepList[i].Source.Address; SequenceCmdItem.devIndex = GetDevIndexByAddress(CmdStepList[i].Source.Address); SequenceCmdItem.ObjID = CmdStepList[i].Source.ObjID; SequenceCmdItem.ObjCmd = CmdStepList[i].Source.ObjCmd; SequenceCmdItem.ObjIdent = devd[SequenceCmdItem.devIndex].devName; SequenceCmdItem.RemoteSendPort = devd[SequenceCmdItem.devIndex].Sendport; SequenceCmdList.Add(SequenceCmdItem); } } m_process_tick = 0; //设定计时的ticket; m_CmdIndex = 0; //当前cmdIndex的序号 m_autorunfalg = 1; //定义当前自动运行的状态标识 m_StopPeriod_tick = 0; //当前停止的时间 m_lastStopTicket = 0; //记录上次停止的ticket LogHelper.Log("************" + System.DateTime.Now.ToString(HyConst.DATETIME_yMdHmsf_STRING) + "程序运行开始" + "***********"); return(true); }