作者:侯宇轩 北京理工大学智能车俱乐部 BITSCC
Qt Classic Bluetooth 只能在UWP,Android,Linux,macOS 平台使用,Windows 10 version 1507 以上系统可用
详见Qt Bluetooth
点击下面的开始按钮波形开始显示,停止按钮波形停止
左键拖动移动,右键画矩形框选择区域放大,滚轮缩放
- 接收发送数据为普通的串口功能
- 查看图像可以查看单片机发送的未解压图像(二值化图像,1像素占1位), 或解压后图像(灰度图像,1像素占8位),使用键盘P键暂停, 点击保存图像按钮将图像保存在./output目录下
- 附加功能的数据传输格式如下
传送的格式统一为字符串,上位机向下位机发送以奇数开始,下位机向上位机发送以偶数开始;以'\0'结束
-
参数模式
- 下位机向上位机发送以0xa0开始,格式为
"\xa0[参数名]:[参数值]\n[参数位置]:[参数值(整数)]\n...\0"
//send example putchar(0xa0); printf("speed0-2:%d %d %d",speed[0],speed[1],speed[2]); putchar(0x00);
- 下位机向上位机发送以0xa0开始,格式为
-
波形模式
- 下位机向上位机发送以0xa8开始,格式为
"\xa8[参数名]:[参数值(浮点数)]\n[参数位置]:[参数值(整数)]\n...\0"
//send example putchar(0xa8); printf("speed0:%d\nspeed1:%d\nspeed2:%d\n",speed[0],speed[1],speed[2]); putchar(0x00);
- 下位机向上位机发送以0xa8开始,格式为
-
改参数模式
- 上位机向下位机发送以0xb1开始,格式为
"\xb0[参数位置]:[参数值(整数)]"
成功后下位机向上位机发送
0xb0[参数值(整数)] - 读取所有参数上位机向下位机发送0xb3,成功后下位机向上位机发送
0xb2[参数名]:[参数位置(地址)],[参数值(整数)]\n[参数名]:[参数位置(整数)],[参数值(整数)]\n...\0
- 上位机向下位机发送以0xb1开始,格式为
-
按键控制模式
当按键按下时发送控制指令,当按键松开时发送停止指令,当关闭手动控制时发送切回找灯指令
速度最大值为10000- 上位机向下位机发送以0xc1开始,格式为
"\xc1[控制码] [速度]\x00"
//receive example //This program send "\xc12 5000\0" char buffer[32]; char* p = buffer; int control_code,speed; while(getchar()!=0xc1); while(1){ *p = getchar(); if(*p == 0x00){ break; } ++p; } sscanf(buffer,"%d %d",&control_code,&speed);
- 控制码对应:0停车,2后退,4左行,6右行,8前行,7顺时针转,9逆时针转,1切回找灯模式
- 上位机向下位机发送以0xc1开始,格式为
-
摇杆控制模式
速度最大值为10000- 上位机向下位机发送以0xc3开始,格式为
"\xc3[x方向向量(-1.0f~+1.0f)] [y方向向量(-1.0f~+1.0f)] [速度]\x00"
//receive example //This program send "\xc30.8 -0.2 4000\0" char buffer[32]; char* p = buffer; int speed; float x,y; while(getchar()!=0xc3); while(1){ *p = getchar(); if(*p == 0x00){ break; } ++p; } sscanf(buffer,"%f %f %d",&x,&y,&speed);
- 上位机向下位机发送以0xc3开始,格式为
单片机发送图像前必须先发送0x01 0xfe,表示图像的开始
- Qt 5.12.4
- QCustomPlot 2.0.1