private void userButton10_Click(object sender, EventArgs e) { HslCommunication.OperateResult <byte[]> read = busTcpClient.ReadRegister(0, 10); if (read.IsSuccess) { // 共返回20个字节,每个数据2个字节,高位在前,低位在后 // 在数据解析前需要知道里面到底存了什么类型的数据,所以需要进行一些假设: // 前两个字节是short数据类型 byte[] buffer = new byte[2]; buffer[0] = read.Content[1]; buffer[1] = read.Content[0]; short value1 = BitConverter.ToInt16(buffer, 0); // 接下来的2个字节是ushort类型 buffer = new byte[2]; buffer[0] = read.Content[3]; buffer[1] = read.Content[2]; ushort value2 = BitConverter.ToUInt16(buffer, 0); // 接下来的4个字节是int类型 buffer = new byte[4]; buffer[0] = read.Content[7]; buffer[1] = read.Content[6]; buffer[2] = read.Content[5]; buffer[3] = read.Content[4]; int value3 = BitConverter.ToInt32(buffer, 0); // 接下来的4个字节是float类型 buffer = new byte[4]; buffer[0] = read.Content[11]; buffer[1] = read.Content[10]; buffer[2] = read.Content[9]; buffer[3] = read.Content[8]; float value4 = BitConverter.ToSingle(buffer, 0); // 接下来的全部字节,共8个字节是规格信息 string speci = Encoding.ASCII.GetString(read.Content, 12, 8); // 已经提取完所有的数据 } else { MessageBox.Show(read.ToMessageShowString()); } }
private void button25_Click(object sender, EventArgs e) { try { OperateResult <byte[]> read = busTcpClient.ReadRegister(ushort.Parse(textBox8.Text), ushort.Parse(textBox9.Text)); if (read.IsSuccess) { textBox10.Text = "结果:" + HslCommunication.BasicFramework.SoftBasic.ByteToHexString(read.Content); } else { MessageBox.Show("读取失败:" + read.ToMessageShowString( )); } } catch (Exception ex) { MessageBox.Show("读取失败:" + ex.Message); } }