bash
function main() {
// 2. 初始化鼠标设置
initMouse();
// 3. 打开串口通信(超时15秒)
if (!openConnect(1, 15000)) {
logw("开启通信失败,无法进行下一步,请检查蓝牙设备是否正常");
return;
}
logd("通信正常,开始执行中");
// 4. 恢复鼠标原始坐标(归零校准)
let r = bleEvent.resetZero();
if (_bleResultOk(r)) {
logd("恢复鼠标原始坐标成功");
} else {
logd("恢复鼠标原始坐标失败 {}", r);
return;
}
let scaleResult = bleEvent.setScale(1.97, 1.97);
if (!_bleResultOk(scaleResult)) {
logw("设置缩放比例失败: {}", scaleResult);
}
// 7. 点击坐标点
let targetX = 195;
let targetY = 422;
logd("开始点击坐标 ({}, {})", targetX, targetY);
let clickResult = bleEvent.clickPoint(targetX, targetY);
if (_bleResultOk(clickResult)) {
logd("点击坐标成功");
} else {
logw("点击坐标失败: {}", clickResult);
}
// 8. 可选:长按示例
// let pressResult = bleEvent.press(300, 500, 2000); // 长按2秒
// if (_bleResultOk(pressResult)) {
// logd("长按成功");
// }
// 9. 可选:双击示例
// let doubleClickResult = bleEvent.doubleClickPoint(300, 500);
// if (_bleResultOk(doubleClickResult)) {
// logd("双击成功");
// }
// 10. 关闭串口通信
let closeResult = bleEvent.closeSerial();
if (_bleResultOk(closeResult)) {
logd("关闭通信成功");
}
}
// 初始化鼠标设置函数
function initMouse() {
let msg = device.getDeviceMsg();
let productType = "";
let bleWifiIp = "";
if (msg != null && msg != "") {
let bb = JSON.parse(msg);
productType = bb["productType"];
bleWifiIp = bb["bleWifiIp"];
}
// 自动获取手机缩放比例
let scale = bleEvent.getIPhoneScale();
logd("当前手机类型: {}, 缩放比例: {}, 蓝牙开发板IP: {}", productType, scale, bleWifiIp);
// 设置缩放比例,防止鼠标移动距离和手机像素对不上
if (scale > 0) {
let scaleResult = bleEvent.setScale(scale, scale);
if (!_bleResultOk(scaleResult)) {
logw("自动设置缩放比例失败: {}", scaleResult);
}
}
}
// 打开连接函数
function openConnect(type, timeout) {
let result = bleEvent.openSerial(timeout);
return _bleResultOk(result);
}
// 检查BLE操作结果
function _bleResultOk(r) {
return r == null || r == "";
}
// 执行主函数
main();
代码说明:
- 设备检查:首先检查设备授权状态
- 初始化:调用initMouse()设置鼠标参数,自动获取手机类型和缩放比例
- 建立连接:通过bleEvent.openSerial()打开蓝牙串口通信
- 坐标校准:使用bleEvent.resetZero()将鼠标归零,确保坐标准确性
- 屏幕设置:设置屏幕尺寸防止鼠标移出屏幕边界
- 点击操作:核心函数bleEvent.clickPoint(x, y)执行点击
- 结果判断:通过_bleResultOk()函数判断操作是否成功
- 清理资源:最后关闭串口通信
使用前准备:
- 确保ESP32C3开发板已刷入正确的iOS蓝牙固件
- 手机已连接蓝牙开发板
- 手机辅助功能设置已完成(辅助触控、鼠标键等)
- 在中控中已完成蓝牙设备绑定
扩展功能:
-
带压力点击:如果需要模拟压力触控,可以使用clickPointPressure()函数
-
多点触控:使用bleEvent.multiTouch()实现复杂手势
-
键盘快捷键:配合bleEvent.keyPressChar()实现键盘操作
-
这段代码可以直接在EasyClick IDE中运行,实现通过蓝牙BLE硬件点击指定坐标的功能。