LabVIEWwilliam hill官网
直播中

attendez

10年用户 67经验值
擅长:光电显示 存储技术 接口/总线/驱动 控制/MCU
私信 关注
[问答]

labview串口通信协议中数据类型转换问题

本帖最后由 attendez 于 2014-12-2 10:00 编辑

协议如下,
  
55
  
AA
01
03
11
02
3E
F0
帧头
地址
数长
命令字
数据……
校验
帧尾
数据为data[8],8个字节,为2个float类型的输入的数据,我需要如何处理才能把这2个float类型的数据转换,再连接字符串?其他为16进制的字符串。
按照网上有些说的,我进行了强制转换 捕获.PNG 但是去调试的时候下位机那边的人员说不行,他们使用labwindows编的,然后我们比较了一个数据的转换,我这儿 捕1213.PNG 但是他们那边是1.234---0018fec4
求问问题出在那儿,望大家多多指教,谢谢。希望我把问题说清楚了的,在线等。



attendez 发表于 4 分钟前

附对面提供的协议说明,他们好像直接发的下面这个结构体,不太明白。
typedef struct {
        UCHAR hearder[2];
        UCHAR addr;
        UCHAR len;
        UCHAR cmd[2];                     A1 08
        UCHAR data[8];        
        UCHAR xor;
        UCHAR end;
}SRemoteMsg;         
data[0-3]俯仰角度,float,4个字节;
data[4-7]方位角度,float,4个字节;

另外逐字节的异或校验怎么处理。

已退回8积分

回帖(22)

attendez

2014-12-2 09:55:46
附对面提供的协议说明,他们好像直接发的下面这个结构体,不太明白。
typedef struct {
        UCHAR hearder[2];
        UCHAR addr;
        UCHAR len;
        UCHAR cmd[2];                     A1 08
        UCHAR data[8];       
        UCHAR xor;
        UCHAR end;
}SRemoteMsg;        
data[0-3]俯仰角度,float,4个字节;
data[4-7]方位角度,float,4个字节;

另外逐字节的异或校验怎么处理。
举报

landse

2014-12-2 13:28:32
如果是想要输入16进制数的话,只要在输入和显示都右键,选择“十六进制显示”就可以了
举报

h1654155743.3565

2014-12-2 17:08:01
给你个VI有关数据进制转换的,自己写的。
举报

asdasdaw

2014-12-2 19:36:00
我觉得是别人转换错了1.234转成十六进制是3F9D F3B6 是没错的
举报

更多回帖

发帖
×
20
完善资料,
赚取积分