/// <summary> /// 通过“消息ID”和“参数结构体对象列表”执行操作。 /// </summary> /// <param name="messageId"> /// 消息ID。 /// <para><see cref="MessageId"/>类型,长度为2个字节。</para> /// </param> /// <param name="parameterList">参数结构体对象列表。</param> /// <exception cref="CsaException">表示发生错误时引发的 CSA018 异常。</exception> /// <returns></returns> private byte[] GetOperateCommand(MessageId messageId, List <Parameter> parameterList) { // 获取消息体对象。 MessageBody mb = new MessageBody( messageId, GatewayId, LuminaireId, parameterList, DESKey); // 获取消息体字节数组。 byte[] msgBody = mb.GetBody(); // 获取消息头对象。 MessageHead mh = new MessageHead( MessageType, (ushort)(msgBody.Length), Crc32.GetCrc32(msgBody)); // 返回消息报文字节数组。 return(new Datagram(mh, mb).GetDatagram()); }
/// <summary> /// 获取命令执行结果数据报文字节数组。 /// <para>用于获取“命令执行结果”字节数组。</para> /// </summary> /// <param name="seqNumber"> /// 消息序号。 /// <para>uint类型,长度为4个字节。</para> /// </param> /// <param name="messageId"> /// 消息ID。 /// <para><see cref="MessageId"/>类型,长度为2个字节。</para> /// </param> /// <param name="errorCode"> /// 错误代码。 /// <para><see cref="ErrorCode"/>类型,长度为4个字节。</para> /// <para>可选字段,对“命令结果”类型的消息有效。</para> /// </param> /// <param name="errorInfo"> /// 错误信息。 /// <para>string类型,长度可变。</para> /// <para>可选字段,对“命令结果”类型的消息有效。</para> /// </param> /// <returns></returns> public byte[] GetResultCommand(uint seqNumber, MessageId messageId, ErrorCode errorCode, string errorInfo = null) { // 获取消息体对象。 MessageBody mb = new MessageBody( messageId, GatewayId, LuminaireId, errorCode, errorInfo, DESKey); // 获取消息体字节数组。 byte[] msgBody = mb.GetBody(); // 获取消息头对象。 MessageHead mh = new MessageHead( MessageType, seqNumber, (ushort)(msgBody.Length), Crc32.GetCrc32(msgBody)); // 返回消息报文字节数组。 return(new Datagram(mh, mb).GetDatagram()); }