/// <summary> /// 通过默认构造方法初始化解析消息命令类实例。 /// </summary> /// <param name="dataArray">消息报文字节数组。</param> /// <param name="isTcpOrUdp">报文承载方式是否是TCP或UDP,默认为false。</param> /// <param name="isCheckCrc">是否校验CRC。</param> /// <exception cref="CsaException">表示发生错误时引发的 CSA018 异常。</exception> public ParseCommand(byte[] dataArray, bool isTcpOrUdp = false, bool isCheckCrc = true) { datagramEventArgs = new DatagramEventArgs( dataArray, isTcpOrUdp: IsTcpOrUdp, isCheckCrc: IsCheckCrc); DatagramList = datagramEventArgs.DatagramList; IsTcpOrUdp = isTcpOrUdp; IsCheckCrc = isCheckCrc; }
/// <summary> /// 通过默认构造方法初始化解析消息命令类实例。 /// </summary> /// <param name="dataArray">消息报文字节数组。</param> /// <param name="desKey"> /// DES 密钥。 /// <para>该密钥运算模式采用 ECB 模式。</para> /// </param> /// <param name="isTcpOrUdp">报文承载方式是否是TCP或UDP,默认为false。</param> /// <param name="isCheckCrc">是否校验CRC。</param> /// <exception cref="CsaException">表示发生错误时引发的 CSA018 异常。</exception> /// <exception cref="ArgumentNullException">当将空引用(在 Visual Basic 中为 Nothing)传递给不接受它作为有效参数的方法时引发的异常。</exception> /// <exception cref="ArgumentException">当参数错误时引发的异常。</exception> public ParseCommand(byte[] dataArray, byte[] desKey, bool isTcpOrUdp = false, bool isCheckCrc = true) { if (desKey == null) { throw new ArgumentNullException(nameof(desKey), $"{typeof(DES)} 密钥不能为空。"); } if (desKey.Length != 8) { throw new ArgumentException(nameof(desKey), $"{typeof(DES)} 密钥长度不正确。"); } datagramEventArgs = new DatagramEventArgs(dataArray, desKey, IsTcpOrUdp, IsCheckCrc); DatagramList = datagramEventArgs.DatagramList; IsTcpOrUdp = isTcpOrUdp; IsCheckCrc = isCheckCrc; }