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); }
public AleUserData(AleFrameType frameType) { this.FrameType = frameType; }