//参数配置 static public byte[] SendJoint_ParameterConfig(Frame_ParameterConfig ParameterConfig) { try { List <byte> msgTemp = new List <byte>(); //头 msgTemp.Add(0x7A); msgTemp.Add(0x7A); //协议版本号 msgTemp.Add(0x01); msgTemp.Add(0x00); msgTemp.Add(0x02); //命令字 msgTemp.Add(0x04); //数据长度 msgTemp.Add(0x00); msgTemp.Add(0x00); //校验和 byte[] byteTemp = new byte[msgTemp.Count]; msgTemp.CopyTo(byteTemp); byte[] crc16 = BitConverter.GetBytes(ConvertData.CRC16(byteTemp, 8, byteTemp.Length - 8)); msgTemp.Add(crc16[0]); msgTemp.Add(crc16[1]); //结束符 msgTemp.Add(0x7B); msgTemp.Add(0x7B); byteTemp = new byte[msgTemp.Count]; msgTemp.CopyTo(byteTemp); return(byteTemp); } catch (Exception ex) { ToolAPI.XMLOperation.WriteLogXmlNoTail("GprsResolveDataV100.SendJoint_ParameterConfig:error", ex.Message + "|" + ex.StackTrace.ToString()); return(null); } }
//参数配置 //7A 7A 01 00 02 04 32 00 31 32 33 34 35 36 37 38 17 10 31 17 34 00 17 10 31 01 00 01 01 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 0a 00 0b 00 0c 00 0d 00 31 32 33 D4 18 7b 7b //7a 7a 01 00 02 04 00 00 00 00 7b 7b static public void ReceiveDispose_ParameterConfig(byte[] data, TcpSocketClient client) { try { Frame_ParameterConfig dataFrame = new Frame_ParameterConfig(); //设备编号 byte[] sn = new byte[8]; //设备编号 for (int i = 0; i < 8; i++) { sn[i] = data[i]; } dataFrame.DeviceNo = Encoding.ASCII.GetString(sn); //获取设备编号ASCII //参数修改时间 string tStr = ConvertData.ToHexString(data, 8, 6); try { dataFrame.ParameterUpdateTime = DateTime.ParseExact(tStr, "yyMMddHHmmss", System.Globalization.CultureInfo.InvariantCulture); } catch (Exception) { dataFrame.ParameterUpdateTime = DateTime.Now; } //安装时间 tStr = ConvertData.ToHexString(data, 14, 3); try { dataFrame.InstallDate = DateTime.ParseExact(tStr, "yyMMdd", System.Globalization.CultureInfo.InvariantCulture); } catch (Exception) { dataFrame.InstallDate = DateTime.Now; } //额定载荷 UShortValue us = new UShortValue(); us.bValue1 = data[17]; us.bValue2 = data[18]; dataFrame.LoadRating = us.sValue; //预警系数 dataFrame.EarlyAlarmCoefficient = data[19]; //报警系数 dataFrame.AlarmCoefficient = data[20]; //空载AD1 ShortValue s = new ShortValue(); s.bValue1 = data[21]; s.bValue2 = data[22]; dataFrame.EmptyAD1 = s.sValue; //空载AD2 s.bValue1 = data[23]; s.bValue2 = data[24]; dataFrame.EmptyAD2 = s.sValue; //空载AD3 s.bValue1 = data[25]; s.bValue2 = data[26]; dataFrame.EmptyAD3 = s.sValue; //空载AD4 s.bValue1 = data[27]; s.bValue2 = data[28]; dataFrame.EmptyAD4 = s.sValue; //空载AD s.bValue1 = data[29]; s.bValue2 = data[30]; dataFrame.EmptyAD = s.sValue; //标准重物AD1 s.bValue1 = data[31]; s.bValue2 = data[32]; dataFrame.StandardLoadAD1 = s.sValue; //标准重物AD2 s.bValue1 = data[33]; s.bValue2 = data[34]; dataFrame.StandardLoadAD2 = s.sValue; //标准重物AD3 s.bValue1 = data[35]; s.bValue2 = data[36]; dataFrame.StandardLoadAD3 = s.sValue; //标准重物AD4 s.bValue1 = data[37]; s.bValue2 = data[38]; dataFrame.StandardLoadAD1 = s.sValue; //标准重物AD s.bValue1 = data[39]; s.bValue2 = data[40]; dataFrame.StandardLoadAD = s.sValue; //标准重物 s.bValue1 = data[41]; s.bValue2 = data[42]; dataFrame.StandardLoad = s.sValue; //倾角预警值 s.bValue1 = data[43]; s.bValue2 = data[44]; dataFrame.AngleEarlyAlarm = s.sValue; //倾角报警值 s.bValue1 = data[45]; s.bValue2 = data[46]; dataFrame.AngleAlarm = s.sValue; //软件版本号 ASCII byte[] SoftVersion = new byte[data.Length - 47]; for (int i = 47, j = 0; i < data.Length; i++, j++) { SoftVersion[j] = data[i]; } dataFrame.SoftVersion = Encoding.ASCII.GetString(SoftVersion); //拼接应答 byte[] result = SendJoint_ParameterConfig(dataFrame); if (result != null) { client.SendBuffer(result); } } catch (Exception) { } }