/// <summary> /// 通过“消息ID”和“参数结构体对象”执行操作 /// </summary> /// <param name="msgId">消息ID的枚举值</param> /// <param name="parameter">参数结构体对象</param> /// <returns></returns> public Byte[] OperateCommand(MessageId msgId, Parameter parameter) { return GetDatagram(msgId, new List<Parameter> { parameter } ); }
/// <summary> /// 获取参数对象列表 /// </summary> /// <param name="byteArray">消息报文字节数组</param> /// <param name="index">数组索引</param> /// <param name="pmtList">参数对象列表</param> private static void GetParameterList(Byte[] byteArray, int index, ref List<Parameter> pmtList) { if (byteArray.Length > index + 2) { Parameter parameter = new Parameter(); ; List<Byte> byteList = new List<Byte>(); parameter.Type = (ParameterType)((byteArray[index] << 8) + byteArray[index + 1]); parameter.Length = byteArray[index + 2]; for (int j = index + 3; j < index + parameter.Length + 3; j++) { byteList.Add(byteArray[j]); } parameter.Value = byteList; pmtList.Add(parameter); GetParameterList(byteArray, index + parameter.Length + 3, ref pmtList); } }
/// <summary> /// 通过“消息ID”和“参数结构体对象”获取消息报文字节数组 /// </summary> /// <param name="msgId"> /// 消息ID /// <para>UInt16类型,长度为2个字节</para> /// </param> /// <param name="parameter">参数结构体对象</param> /// <returns></returns> protected Byte[] GetDatagram(MessageId msgId, Parameter parameter) { List<Parameter> pmtList = new List<Parameter>(); pmtList.Add(parameter); return GetDatagram(msgId, pmtList); }