普通的RS422数据格式,想要输出角度值,串口通信已经搭建好,textRecieve.text可接收数据

解决方案 »

  1.   


            //编码
            byte[] SetDate(decimal radian)
            {
                int i,j;
                string[] s = radian.ToString().Split('.');
                byte[] rs = new byte[5];
                rs[0] = 0xff;
                if (s.Length == 2)
                {
                    i = int.Parse(s[1]);
                    i = i << 10;
                    i = i | int.Parse(s[0]);
                }
                else
                {
                    i = int.Parse(s[1]);
                }
                for (j = 3; j > 0; j--)
                    rs[j] = (byte)(i >> (8 * (3 - j)));
                rs[4]=0;
                for (j = 0; j < 4; j++)
                    rs[4] = (byte)(rs[4] + rs[j]);
                return rs;
            }
           //解码
            decimal GetData(byte[] dat)
            {
                int i;
                string s;
                //验证 不写了
                i = 0;
                for (i = 1; i < 4; i++)
                {
                    i = i | dat[i];
                    i = i << 8;
                }
                s = (i & 0x3ff).ToString();
                s = s + ".";
                s = s + (i >> 10).ToString();
                return decimal.Parse(s);
            }
      

  2.   


    byte[] SetDate(decimal radian)
            {
                int i,j;
                string[] s = radian.ToString().Split('.');
                byte[] rs = new byte[5];
                rs[0] = 0xff;
                if (s.Length == 2)
                {
                    i = int.Parse(s[1]);
                    i = i << 10;
                    i = i | int.Parse(s[0]);
                }
                else
                {
                    i = int.Parse(s[1]);
                }
                for (j = 3; j > 0; j--)
                    rs[j] = (byte)(i >> (8 * (3 - j)));
                rs[4]=0;
                for (j = 0; j < 4; j++)
                    rs[4] = (byte)(rs[4] + rs[j]);
                return rs;
            }
      

  3.   

    else
                {
                    i = int.Parse(s[0]);
                }