Ejemplo n.º 1
0
        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);
     }
 }