Пример #1
0
        //		public Gate_Rlt(DateTime _dt):this(comAdr,beforeLevel,behindLevel,height,flux,reWater,tuWater,power,lock_OC)
        //		{
        //			dt = _dt;
        //		}

        #region Gate_Rlt
        /// <summary>
        ///
        /// </summary>
        /// <param name="row"></param>
        /// <returns></returns>
        static public Gate_Rlt Parse(DataRow r)
        {
            if (r == null)
            {
                return(null);
            }
            try
            {
                Gate_Rlt gr = new Gate_Rlt();
                gr.dt          = Convert.ToDateTime(r["DT"]);
                gr.beforeLevel = Convert.ToInt32(r["BeforeLevel"]);
                gr.behindLevel = Convert.ToInt32(r["BehindLevel"]);
                //	gr.comAdr = Convert.ToInt32(r["adress"]);
                gr.height  = Convert.ToInt32(r["Height"]);
                gr.flux    = Convert.ToInt32(r["Flux"]);
                gr.reWater = Convert.ToInt32(r["RemainWater"]);
                gr.tuWater = Convert.ToInt32(r["TotalWater"]);

                return(gr);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                return(null);
            }
        }
Пример #2
0
        /// <summary>
        /// 读取实时数据部分
        /// </summary>
        /// <param name="data"></param>
        /// <param name="refValue"></param>
        private void Read_Rlt(byte[] Data, ref object oPars)
        {
            //实际闸高
            height = Data[7] * 256 + Data[8];
            //闸前水位
            beforeLevel = Data[9] * 256 + Data[10];
            //闸后水位
            behindLevel = Data[11] * 256 + Data[12];
            //瞬时流量
            if (Data[13] == 0xFF && Data[14] == 0xFF)
            {
                flux = 9999;//错误瞬时流量
            }
            else
            {
                flux = (Data[13] * 256 + Data[14]) / 100f;//正确瞬时流量
            }
            //剩余水量
            string strReWater = "";

            for (int i = 15; i < 19; i++)//15,16,17,18
            {
                strReWater += Data[i].ToString("x2");
            }
            reWater = Convert.ToInt32(strReWater, 16);
            //总用水量
            string strTuWater = "";

            for (int i = 19; i < 23; i++)//19,20,21,22
            {
                strTuWater += Data[i].ToString("x2");
            }
            tuWater = Convert.ToInt32(strTuWater, 16);
            //供电状态
            if (Data[23] == 0x00)
            {
                power = "市电状态";
            }
            if (Data[23] == 0xFF)
            {
                power = "电池状态";
            }
            //开关锁状态
            switch (Data[24])
            {
            case 0x00:
                lock_OC = "强关状态";
                break;

            case 0x01:
                lock_OC = "强开状态";
                break;

            case 0x02:
                lock_OC = "正常状态";
                break;

            default:
                lock_OC = "未知状态";
                break;
            }
            oPars = new Gate_Rlt(comAdr, beforeLevel, behindLevel, height, flux, reWater, tuWater, power, lock_OC);
        }
Пример #3
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="row"></param>
        /// <returns></returns>
        public static Gate_Rlt Parse(DataRow r)
        {
            if (r == null)
                return null;
            try
            {
                Gate_Rlt gr = new Gate_Rlt();
                gr.dt = Convert.ToDateTime(r["DT"]);
                gr.beforeLevel = Convert.ToInt32(r["BeforeLevel"]);
                gr.behindLevel = Convert.ToInt32(r["BehindLevel"]);
                //	gr.comAdr = Convert.ToInt32(r["adress"]);
                gr.height = Convert.ToInt32(r["Height"]);
                gr.flux = Convert.ToInt32(r["Flux"]);
                gr.reWater = Convert.ToInt32(r["RemainWater"]);
                gr.tuWater = Convert.ToInt32(r["TotalWater"]);

                return gr;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                return null;
            }
        }
Пример #4
0
        /// <summary>
        /// ��ȡʵʱ���ݲ���
        /// </summary>
        /// <param name="data"></param>
        /// <param name="refValue"></param>
        private void Read_Rlt(byte[] Data, ref object oPars)
        {
            //ʵ��բ��
            height = Data[7] * 256 + Data[8];
            //բǰˮλ
            beforeLevel = Data[9] * 256 + Data[10];
            //բ��ˮλ
            behindLevel = Data[11] * 256 + Data[12];
            //˲ʱ����
            if (Data[13] == 0xFF && Data[14] == 0xFF)
            {
                flux = 9999;//����˲ʱ����
            }
            else
            {
                flux = (Data[13] * 256 + Data[14]) / 100f;//��ȷ˲ʱ����
            }
            //ʣ��ˮ��
            string strReWater = "";
            for (int i = 15; i < 19; i++)//15,16,17,18
            {
                strReWater += Data[i].ToString("x2");
            }
            reWater = Convert.ToInt32(strReWater, 16);
            //����ˮ��
            string strTuWater = "";
            for (int i = 19; i < 23; i++)//19,20,21,22
            {
                strTuWater += Data[i].ToString("x2");
            }
            tuWater = Convert.ToInt32(strTuWater, 16);
            //����״̬
            if (Data[23] == 0x00) { power = "�е�״̬"; }
            if (Data[23] == 0xFF) { power = "���״̬"; }
            //������״̬
            switch (Data[24])
            {
                case 0x00:
                    lock_OC = "ǿ��״̬";
                    break;

                case 0x01:
                    lock_OC = "ǿ��״̬";
                    break;

                case 0x02:
                    lock_OC = "����״̬";
                    break;

                default:
                    lock_OC = "δ֪״̬";
                    break;

            }
            oPars = new Gate_Rlt(comAdr, beforeLevel, behindLevel, height, flux, reWater, tuWater, power, lock_OC);
        }