学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
轻松建立自己的群组,招兵买马   
发新话题
打印

c#如何解决这个问题?

本主题由 静夜思 于 2008-6-22 16:30 拒绝承认原创

c#如何解决这个问题?

我现在从串口接收到一组返回值存放在数组中:
Byte[] mbyte = new Byte[23];
serialPort.Read(mbyte, 0, 23);
mbyte中的内容是(16进制表示):
AA F1 89 1 0 0 0 0 0 0 0 0 0 0 0 0 3F 31 EB 85 13 A0 FF

现在定义一个结构:
struct retu
        {
            public byte a;//数据头1
            public byte b;//下位机地址
            public byte c;//命令
            public byte d;//状态1
            public float e;//力4
            public float f;//电压
            public float g;//电流
            public float h;//运动时间
            public byte i;//数据长度
            public byte Verify;//校验
            public byte j;//数据尾
        }
就够大小也为23个字节(byte占1字节,float占4字节)。

数组与结构的对应关系是:
public byte a;//数据头1 AA
public byte b;//下位机地址 F1
public byte c;//命令  89
public byte d;//状态  1
public float e;//力  0 0 0 0
public float f;//电压  0 0 0 0
public float g;//电流  0 0 0 0
public float h;//运动时间 3F 31 EB 85
public byte i;//数据长度 13
public byte Verify;//校验 A0
public byte j;//数据尾 FF

请问使用什么方法可以使mbyte和retu对应起来,在程序中直接使用retu.e得出力,retu.f得出电压及其他数据。
用指针可以 么?怎么实现?

TOP

发新话题