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

2019-07-17 07:59发布

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

协议如下,  55  AA01031102 3EF0帧头地址数长命令字数据……校验帧尾数据为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个字节;

另外逐字节的异或校验怎么处理。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
attendez
1楼-- · 2019-07-17 10:44
 精彩回答 2  元偷偷看……
landse
2楼-- · 2019-07-17 15:24
如果是想要输入16进制数的话,只要在输入和显示都右键,选择“十六进制显示”就可以了
victor400
3楼-- · 2019-07-17 16:23
给你个VI有关数据进制转换的,自己写的。

数据进制转换.vi 下载积分: 积分 -1 分

12.64 KB, 下载次数: 289, 下载积分: 积分 -1 分

ShuiMoLise
4楼-- · 2019-07-17 21:20
我觉得是别人转换错了1.234转成十六进制是3F9D F3B6 是没错的
attendez
5楼-- · 2019-07-18 02:05
妈的终于找到问题了,一个是大端一个是小端,根本不需要强制转换了,平化到字符串全部搞定
attendez
6楼-- · 2019-07-18 06:38
 精彩回答 2  元偷偷看……

一周热门 更多>