Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="bs"></param>
        /// <returns></returns>
        static internal LYR001StatusData Parse(byte[] bs)
        {
            if (bs == null)
            {
                throw new ArgumentNullException("bs");
            }

            if (bs.Length < 3)
            {
                throw new ArgumentException("bs.Length must >= 3");
            }

            BitArray list = new BitArray(bs);

            PumpStatus cm1 = GetPumpStatus(list, 0, 3);
            PumpStatus cm2 = GetPumpStatus(list, 1, 4);
            PumpStatus cm3 = GetPumpStatus(list, 2, 5);

            PumpStatus rm1 = GetPumpStatus(list, 6, 8);
            PumpStatus rm2 = GetPumpStatus(list, 7, 9);

            ManualAutomatic ma        = GetManualAutomatic(list, 10);
            List <string>   alarmList = GetAlarmList(list, 12);
            //BitArray list

            LYR001StatusData r = new LYR001StatusData(cm1, cm2, cm3, rm1, rm2, ma, alarmList);

            return(r);
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="task"></param>
        /// <param name="pr"></param>
        private void ProcessReadStatus(ITask task, IParseResult pr)
        {
            byte[]           bs         = (byte[])pr.Results["Status"];
            LYR001StatusData statusData = LYR001StatusDataParser.Parse(bs);


            LYR001Device    d     = (LYR001Device)task.Device;
            LYR001DataCache cache = d.DataCacheManager.GetDataCache();

            cache.StatusData = statusData;

            ProcessDataCache(d, cache);
        }