Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pr"></param>
        /// <param name="xd2300"></param>
        private static void ProcessReadRecordIndex(XD2300Device xd2300, ParseResult pr)
        {
            // process read record index
            //
            UInt16 index = Convert.ToUInt16(pr.NameObjects.GetObject("RecordIndex"));

            // create new read record task
            //
            if (xd2300.IsLastRecordIndexValid())
            {
                int readedIndex = xd2300.LastRecordIndex;
                for (int i = readedIndex + 1; i <= index; i++)
                {
                    Opera readRecordOpera = xd2300.DeviceDefine.CreateOpera(XD2300OperaNames.ReadRecord);
                    readRecordOpera.SendPart["RecordIndex"] = i;
                    Task t = new Task(xd2300, readRecordOpera, new ImmediateStrategy());
                    YeHeCommuniServerApp.Default.CommuniSoft.TaskManager.Tasks.Add(t);
                }
            }
            else
            {
                // down
                //
                AddDownTask(xd2300);
            }

            // set new record index
            //
            xd2300.LastRecordIndex = index;
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="task"></param>
        /// <param name="wl1"></param>
        /// <param name="wl2"></param>
        /// <param name="voltage"></param>
        private static void SetAndSaveDitchData(XD2300Device xd2300, DateTime dt, int wl1, int wl2, int voltage)
        {
            float instantFlux = CalcInstantFlux(xd2300.ID, dt, wl1, wl2);
            uint  usedAmount  = 0;

            //DitchDevice ditchDevice = task.Device as DitchDevice;
            xd2300.DitchData = new DitchData(dt, wl1, wl2, instantFlux, usedAmount, voltage);
            DB.DitchDataDBI.Insert(xd2300, dt, instantFlux, wl1, wl2, usedAmount, voltage);
        }
Exemple #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="task"></param>
        private static void AddDownTask(XD2300Device xd2300)
        {
            log.Debug("add xd2300 down task");

            // add down command
            //
            Opera downOP   = xd2300.DeviceDefine.CreateOpera(XD2300OperaNames.Down);
            Task  downTask = new Task(xd2300, downOP, new ImmediateStrategy());

            YeHeCommuniServerApp.Default.CommuniSoft.TaskManager.Tasks.Add(downTask);
        }
Exemple #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="task"></param>
        private void ProcessFail(Task task)
        {
            XD2300Device xd2300 = task.Device as XD2300Device;

            if (StringHelper.Equal(task.Opera.Name, XD2300OperaNames.ReadRecord))
            {
                int recordIndex = Convert.ToInt32(task.Opera.SendPart["RecordIndex"]);
                if (recordIndex >= xd2300.LastRecordIndex)
                {
                    AddDownTask(xd2300);
                }
            }
        }
Exemple #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="task"></param>
        /// <param name="pr"></param>
        private static void ProcessSucess(Task task, ParseResult pr)
        {
            XD2300Device xd2300 = task.Device as XD2300Device;

            if (StringHelper.Equal(task.Opera.Name, OperaNames.ReadReal))
            {
                ProcessReadReal(xd2300, pr);
            }
            else if (StringHelper.Equal(task.Opera.Name, XD2300OperaNames.ReadRecordIndex))
            {
                ProcessReadRecordIndex(xd2300, pr);
            }
            else if (StringHelper.Equal(task.Opera.Name, XD2300OperaNames.ReadRecord))
            {
                ProcessReadRecord(pr, xd2300);
            }
        }
Exemple #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="task"></param>
        /// <param name="pr"></param>
        private static void ProcessReadReal(XD2300Device xd2300, ParseResult pr)
        {
            int wl1 = (Int16)pr.NameObjects.GetObject("WD1");
            int wl2 = (Int16)pr.NameObjects.GetObject("WD2");

            wl1 = wl1 / 10;
            wl2 = wl2 / 10;

            object objTemp = pr.NameObjects.GetObject("voltage");
            int    voltage = Convert.ToInt32(objTemp);

            voltage = voltage / 100;

            DateTime dt = DateTime.Now;

            SetAndSaveDitchData(xd2300, dt, wl1, wl2, voltage);

            //AddDownTask(xd2300);
        }
Exemple #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pr"></param>
        /// <param name="xd2300"></param>
        private static void ProcessReadRecord(ParseResult pr, XD2300Device xd2300)
        {
            int      recordIndex = Convert.ToInt32(pr.NameObjects.GetObject("RecordIndex"));
            DateTime dt          = Convert.ToDateTime(pr.NameObjects.GetObject("DT"));

            // 11 -> 2011
            //
            dt = FixDateTime(dt);

            int wl1 = Convert.ToInt32(pr.NameObjects.GetObject("WL1"));
            int wl2 = Convert.ToInt32(pr.NameObjects.GetObject("WL2"));

            wl1 = wl1 / 10;
            wl2 = wl2 / 10;
            //DitchData d = new DitchData(wl1, wl2, instantFlux, 0, 0);
            SetAndSaveDitchData(xd2300, dt, wl1, wl2, 0);
            //XD2300Device xd2300 = task.Device as XD2300Device ;
            if (recordIndex >= xd2300.LastRecordIndex)
            {
                AddDownTask(xd2300);
            }
        }
Exemple #8
0
        static public XD2300Device Create(DeviceDefine dd, string name, int address)
        {
            XD2300Device d = new XD2300Device(dd, name, address);

            return(d);
        }