1、通讯报文相关
①Bit位:计算机中最小存储单元,每一位可表示0或1。
②字节(Byte):1Byte=8Bit。相当于1个字节需要八位二进制表示。
通常在使用过程中一个字节用两位十六进制表示。比如:0xEF = 1110 1111。
③有符号整型和无符号整型。
无符号整型:十进制 3 用十六进制表示 0x03
有符号整型:十进制-3用十六进制表示0xFD
负数换算过程:
1.取负数的绝对值: 3
2.换算成二进制: 0000 0011
3.取反码: 1111 1100
4.反码结果最低位补1: 1111 1101
5.转成十六进制 0xFD
注:上述过程逆转,即把十六进制转成负数。同时0xFD转成无符号整型为253。所以在数据定义时分为有符号整型和无符号整型。
④位操作运算符。
有时候在存储时会取对应字节的一部分,这时候要用到位运算。
比如在Qt中,定义无符号整型:quint a = 500,换算成十六进制:0x01F4,对应二进制为:0000 0001 1111 0100
如果要获取数据的低八位:0xFF&a = 0xF4 = 1111 0100;
取高八位:0xFF(a >> 8) = 0x01
操作符 & 表示做与运算,0xFF&a 表示只取a的低八位,即 0xF4。
操作符>>8 表示整体右移8位。即0x01F4 >> 0x0001
⑤小数转十六进制
举例1234.567转化为十六进制过程:
先处理整数部分:1234 = 4D2
小数部分处理(小数部分*16取整数):
0.567*16 = 9.072 取 9
0.072*16=1.152 取 1
0.152*16=2.432 取 2
0.432*16=6.912 取 6
........
依次取小数位(小数部分可能无限延长,这里只取后四位),最后结果为4D2.9126
2、Linux下的Qt开发和运行
①在Qt Creator开发环境下配置可用的设备类型
点击Qt Creator中的工具->选项->设备。添加可用的设备类型,如下图所示
配置完成之后,把自己的工程切换到项目模式,如下图所示,点击arm,激活生成arm程序版本。
然后在构建程序版本的时候选择对应的需要的程序。
②将可执行程序发布到工控机或者对应的硬件控制单元
将生成对应的arm程序拷贝到对应的Linux系统工控机中,进入对应的程序目录。
输入:./your app & ---使程序以后台方式运行。
输入:ps -----查看进程列表是否有启动的程序。
注:arm程序没有编译成功,确定是否安装了对应的构建套件(Kit)。
针对后台运行程序,一定要做打印日志等操作,方便发现问题所在和调试程序。
3、硬件设备和工作主机的连接
注:本标题下内容只针对作者工作中的一些问题处理,不具有参考性。
①设备通过串口和主机连接,主机要安装好串口驱动,方便主机初始化时用串口进行设置。
②设备和主机进行网线连接之后,要设置主机的网络适配器中IP和设备中IP保持在同一个网段,保证主机可以和设备可以互相ping通。
③主机每次重启要设置VMnet1和WMnet8的IP地址,并重启虚拟机。否则虚拟机无法和主机进行通讯。