コード例 #1
0
        public static AleUserData Parse(AleFrameType frameType, byte[] bytes, int startIndex, int endIndex)
        {
            AleUserData result = null;

            if (frameType == AleFrameType.ConnectionRequest)
            {
                result = new AleConnectionRequest();
            }
            else if (frameType == AleFrameType.ConnectionConfirm)
            {
                result = new AleConnectionConfirm();
            }
            else if (frameType == AleFrameType.DataTransmission)
            {
                result = new AleDataTransmission();
            }
            else if (frameType == AleFrameType.Disconnect)
            {
                result = new AleDisconnect();
            }
            else if (frameType == AleFrameType.SwitchN2R)
            {
                result = new AleSwitchN2R();
            }
            else if (frameType == AleFrameType.SwitchR2N)
            {
                result = new AleSwitchR2N();
            }
            else if (frameType == AleFrameType.KANA)
            {
                result = new AleKeepAliveOnNonActiveLink();
            }
            else if (frameType == AleFrameType.KAA)
            {
                result = new AleKeepAliveOnActiveLink();
            }
            else
            {
                throw new AleFrameParsingException(string.Format("无法将指定的字节流解析为ALE层的用户数据,类型 = {0}。", frameType));
            }

            result.ParseBytes(bytes, startIndex, endIndex);

            return(result);
        }
コード例 #2
0
 public AleUserData(AleFrameType frameType)
 {
     this.FrameType = frameType;
 }