Example #1
0
        //初始化获得的多命令信息
        public bool CreateCmdBySequence(Sequence sequence)
        {
            //进行多命令信息的初始化

            List <Step> CmdStepList = new List <Step> ();

            CmdStepList = sequence.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

                    /*
                     * = CmdStepList[i].Source.ResID; //资源ID
                     * = CmdStepList[i].PreTime; //预使用时间
                     * = CmdStepList[i].ChangeTime; //改变时间
                     */

                    SequenceCmdItem.ChangeTime = CmdStepList[i].ChangeTime;                         //变换时间
                    SequenceCmdItem.HoldTime   = CmdStepList[i].HodeTime;                           //持续时间
                    SequenceCmdItem.DestValue  = Convert.ToInt32(CmdStepList[i].TargetValue * 100); //目标值
                    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;

                    SequenceCmdList.Add(SequenceCmdItem);
                }
            }
            m_autorunfalg = 1;
            LogHelper.Log("************" + System.DateTime.Now.ToString(HyConst.DATETIME_yMdHmsf_STRING) + "程序运行开始" + "***********");
            return(true);
        }
Example #2
0
        //执行端发送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);
        }