Пример #1
0
        public void associate()
        {
            string            def_task_name = "defaule task name";
            CycleTaskStrategy aStrate       = new CycleTaskStrategy(new TimeSpan(TimeSpan.TicksPerSecond));
            CycleTaskStrategy aStrate2      = new CycleTaskStrategy(new TimeSpan(TimeSpan.TicksPerSecond));

            Task task = new Task(def_task_name, T.cmd_coll_realdata, aStrate);

            Assert.AreEqual(task.TaskStrategy, aStrate);

            Task task2 = new Task(def_task_name, T.cmd_coll_realdata, aStrate2);

            Assert.AreEqual(task2.TaskStrategy, aStrate2);
        }
Пример #2
0
        private bool SaveCollSettings()
        {
            int newGrCollCycle;

            try
            {
                newGrCollCycle = int.Parse(this.txtGRCollCycle.Text.Trim());
            }
            catch
            {
                MsgBox.Show("采集周期必须输入数字");
                return(false);
            }

            if (newGrCollCycle < MIN_COLL_CYCLE)
            {
                MsgBox.Show("采集周期不能小于" + MIN_COLL_CYCLE + "分钟");
                return(false);
            }
            if (newGrCollCycle > MAX_COLL_CYCLE)
            {
                MsgBox.Show("采集周期不能大于" + MIN_COLL_CYCLE + "分钟");
                return(false);
            }

            XGConfig.Default.GrRealDataCollCycle = newGrCollCycle;

            // refresh task coll cycle
            //
            TasksCollection tasks = Singles.S.TaskScheduler.Tasks;

            foreach (Task t in tasks)
            {
                TaskStrategy s   = t.TaskStrategy;
                CommCmdBase  cmd = t.CommCmd;


                if (s is CycleTaskStrategy && cmd is GRCtrl.GRRealDataCommand)
                {
                    CycleTaskStrategy cyc = s as CycleTaskStrategy;
                    cyc.Cycle = GetCycle(newGrCollCycle);
                }
            }

            // TODO: update app.config file
            //


            return(true);
        }
Пример #3
0
        private void SetCollCycle()
        {
            TasksCollection tasks = Singles.S.TaskScheduler.Tasks;

            foreach (Task t in tasks)
            {
                TaskStrategy s = t.TaskStrategy;
                if (s is CycleTaskStrategy)
                {
                    CycleTaskStrategy cyc = s as CycleTaskStrategy;
                    cyc.Cycle = GetCycle();
                }
            }
        }
Пример #4
0
        public void change_stategy_to_other()
        {
            string            def_task_name = "defaule task name";
            CycleTaskStrategy aStrate       = new CycleTaskStrategy(new TimeSpan(TimeSpan.TicksPerSecond));
            CycleTaskStrategy aStrate2      = new CycleTaskStrategy(new TimeSpan(TimeSpan.TicksPerSecond));

            Task task = new Task(def_task_name, T.cmd_coll_realdata, aStrate);

            Assert.AreEqual(task.TaskStrategy, aStrate);

            task.TaskStrategy = aStrate2;

            Assert.AreEqual(null, aStrate.Owning);
            Assert.AreEqual(aStrate2, task.TaskStrategy);
            Assert.AreEqual(task, aStrate2.Owning);
        }
Пример #5
0
        /// <summary>
        /// 解析采集供热实时数据命令,
        /// parse xgdata read
        /// </summary>
        /// <returns></returns>
        private static TasksCollection  ResolveGRRealDataTaskFromDB()
        {
            string FailMsg = "Fail list:\r\n";
            //TODO: ResolveGRRealDataTaskFromDB
            //
            // 2007.03.10 Modify not use client flag, use serverIP diff local or remote gprs module,
            //
            //            string sql = string.Format(
            //                "select * from v_gprs_gr_xg where client = {0}",
            //                XGConfig.Default.ClientAorB  );
            string sql = "select * from v_gprs_gr_xg";

            DataSet         ds    = XGDB.DbClient.Execute(sql);
            DataTable       tbl   = ds.Tables[0];
            TasksCollection tasks = new TasksCollection();

            foreach (DataRow r in tbl.Rows)
            {
                string name   = r["name"].ToString();
                int    grAddr = int.Parse(r["gr_address"].ToString());
                int    xgAddr = int.Parse(r["xg_address"].ToString());

                string ip       = r["ip"].ToString();
                string serverIP = r["serverIP"].ToString();
                string team     = r["team"].ToString().Trim();

                //GRStation grst = new GRStation(name, grAddr, ip);
                GRStation grst = CreateGrStation(name, grAddr, ip, team);
                grst.ServerIP = serverIP;

                if (grst != null)
                {
                    // 2007.03.07 Added grstation to singles.grstationsCollection
                    //
                    Singles.S.GRStsCollection.Add(grst);

                    // 2007.03.01 Added gtstation last grRealdata
                    //
                    if (Singles.S.GRStRds == null)
                    {
                        Singles.S.GRStRds = new GRStationLastRealDatasCollection();
                    }

                    // create and add a new grstation last read data object to Singles.GRStRds
                    //
                    GRStationLastRealData grstLastRd = new GRStationLastRealData(grst);

                    Singles.S.GRStRds.Add(grstLastRd);

                    // 2007.03.10 Added check grstation(gprsstation).serverIP is the localhost ip
                    //
                    if (serverIP == XGConfig.Default.ServerIP)
                    {
                        // create a new grrealdata task for grStation
                        //
                        GRRealDataCommand cmd      = new GRRealDataCommand(grst);
                        TimeSpan          timeSp   = new TimeSpan(0, 0, XGConfig.Default.GrRealDataCollCycle, 0, 0);
                        CycleTaskStrategy strategy = new CycleTaskStrategy(timeSp);
                        Task t = new Task(cmd, strategy);
                        tasks.Add(t);
                    }
                }
                else
                {
                    FailMsg += name + Environment.NewLine;
                }

                // 2007.03.12 Added xg data task
                //
                XGStation xgst = CreateXgStation(name, xgAddr, ip);
                //TODO: ? xgst.serverIP = serverip
                //
                xgst.ServerIP = serverIP;

                if (xgst != null)
                {
                    Singles.S.XGStsCollection.Add(xgst);
                    if (serverIP == XGConfig.Default.ServerIP)
                    {
                        ReadTotalCountCommand xgCountCmd = new ReadTotalCountCommand(xgst);
                        TimeSpan          ts             = new TimeSpan(0, 0, XGConfig.Default.XgReadCountCycle, 0, 0);
                        CycleTaskStrategy strategy       = new CycleTaskStrategy(ts);
                        Task t = new Task(xgCountCmd, strategy);
                        tasks.Add(t);
                        //                        t.AfterProcessReceived +=new EventHandler(t_AfterProcessReceived);
                    }
                }
                else
                {
                }
            }

            if (FailMsg.Length >= 13)
            {
                MsgBox.Show(FailMsg);
            }
            return(tasks);
        }