/// <summary> /// 发送供水应急消息 /// </summary> /// <param name="msg"></param> /// <param name="netType"></param> public void SendGSYJMsg(ICar car, string msg, string userName, byte netType = 0) { /// (car == null || msg == null) return; if (car == null || msg == null) { return; } string head = "S01" + "01" + "01" + "!"; string content = head + userName + '&' + msg + "###"; int length = GbUnicode.GetGB2312Array(content).Length; if (length > 896) { length = 896; } SendMessage(CommandID.DOWN_MSG_GSYJ, car, new object[] { car.MAC.ToSendString(16), (ushort)length, content.ToSendString(length) }); //string head = netType + "01" + "01" + "01" + "!"; //string content = head + userName + '&' + msg + "###"; //int len = -1; //byte[] bs = NetTools.HostToNetworkOrderToBytes(content, -1); //len = bs.Length; //SendMessage(CommandID.DOWN_MSG_GSYJ, car, new object[] { car.MAC.ToSendString(16), (short)len, bs }); }
/// <summary> /// 转换为网络字节序 /// </summary> /// <returns></returns> public static byte[] HostToNetworkOrderToBytes(string _string, int length) { if (length < -1) { throw new ArgumentOutOfRangeException(nameof(length), "长度不正确"); } byte[] strBytes = new byte[length > -1 ? length : 0]; if (string.IsNullOrEmpty(_string)) { return(strBytes); } byte[] array = GbUnicode.GetGB2312Array(_string); if (length > -1) { int tmplength = array.Length > length ? length : array.Length; for (var i = 0; i < tmplength; i++) { strBytes[i] = array[i]; } return(strBytes); } else { return(array); } }