Example #1
0
        public void handler(ref BACNET_ADDRESS src, ref byte[] pdu, UInt16 pdu_len)
        {
            int              apdu_offset = 0;//网络层数据的长度
            BACNET_ADDRESS   dest        = new BACNET_ADDRESS();
            BACNET_NPDU_DATA npdu_data   = new BACNET_NPDU_DATA();
            BvlcProcessor    b_pro       = new BvlcProcessor();
            NpduProcessor    p_pro       = new NpduProcessor();
            ApduProcessor    a_pro       = new ApduProcessor();

            b_pro.Decode(ref src, ref pdu);
            if (pdu[0] == 1)                                                           //1是版本号
            {
                apdu_offset = p_pro.Decode(ref pdu, ref dest, ref src, ref npdu_data); //获得npdu的数据        //获得npdu的数据
            }
            if (npdu_data.network_layer_message)
            {
                //尚未定义
            }

            else
            {
                if ((dest.net == 0))
                {
                    a_pro.Decode(ref src, ref pdu, (UInt16)(pdu_len - apdu_offset), apdu_offset);
                }
            }
        }