【QT开发(18)】QT for android,安卓手机蓝牙遥控器,用来控制遥控车

发布于:2024-04-18 ⋅ 阅读:(74) ⋅ 点赞:(0)

平台

查看之前配置的开发平台:QT 5.14.2实现Android开发

初衷

因为云端配置了QT for android,没有其他开发安卓的IDE,本着简单事情简单办的原则,在QT 上开发,还可以跨平台部署,很好啊。

基本原理

  • 首先开发好界面UI,设置好按钮,配置好输出接口的逻辑
  • 基于 QT 的蓝牙控制的库,利用socket 进行通信,这其实和CAN socket 通信应该差不多。

开始搞

界面

界面划分为三个 QWidget,伸展因子 (Stretch Factor)比例分别是3:2:6.
在这里插入图片描述

输出接口

  • 蓝牙打开、搜索和连接

  • 接受其他蓝牙发送过来的串口信息

  • 发送前进、后退、暂停等串口指令分别发送1,2,5等串口信息,在Output Value显示信息

  • 发送左右两个标度盘的数值(范围:10-99),在Lfet Dial ValueRight Dial Value显示标度盘的值。例如左边的标度盘是15,右边刻度盘是50,串口发送z15y50

建立 蓝牙对象

    localDevice = new QBluetoothLocalDevice();

扫描蓝牙设备

discoveryAgent = new QBluetoothDeviceDiscoveryAgent();
discoveryAgent->start();//开始扫描蓝牙设备

建立socket 进行通信

    //给socket分配内存,限定套接字协议
    socket = new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol);

蓝牙连接

socket->connectToService(address, QBluetoothUuid(serviceUuid) ,QIODevice::ReadWrite);

蓝牙通信

// 发送 const QString &message
QByteArray data = message.toUtf8();    
socket->write(data.constData(), data.size());}

// 接受
QByteArray line = socket->readAll();

代码

https://gitee.com/hiyanyx/android-app-bluetooth-remote-control-car-v1-qt-c

编译后输出的 app

https://gitee.com/hiyanyx/android-app-bluetooth-remote-control-car-v1-qt-c/tree/master/%E8%BE%93%E5%87%BA%E8%BD%AF%E4%BB%B6

参考

1、[QT_042]Qt学习之控件尺寸调整策略(QSizePolicy)
2、蓝牙QT for android
3、公众号:果果小师弟出品,蓝牙小车