EasyClick iOS USB版本蓝牙点击坐标代码

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硬件点击指定坐标的功能。

相关推荐
jingli91 小时前
多平台多店铺客服怎么统一接待?千牛/拼多多/抖音/京东/闲鱼/微信/快手切窗口太累,一个后台集中接管的七步落地方案(2026 实操版)
人工智能·自动化·用户运营
坚定信念,勇往无前2 小时前
Playwright 的本质
自动化·网络爬虫
2501_916008892 小时前
如何实现iOS App代码混淆:SwiftShield使用指南
android·ios·小程序·https·uni-app·iphone·webview
2501_915909062 小时前
移动端开发工具链怎么组合比较好,iOS、Android、跨端三套配置方案
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
2501_916008894 小时前
怎么用 Godot 导出 iOS 应用并上架 App Store?签名字段该填什么?
android·ios·小程序·https·uni-app·iphone·webview
2501_9159184115 小时前
iOS编程用什么软件好?主流工具Xcode、AppCode、CodeRunner与新兴快蝎对比
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
乐橙开放平台19 小时前
从「多套客户端」到一套开放能力:乐橙视频监控能力复盘
笔记·物联网·自动化·音视频·智能家居
志栋智能1 天前
集成是关键:让巡检超自动化融入现有工具链
运维·服务器·数据库·架构·自动化
AI智能从业者1 天前
数码家电客服机器人怎么选?客户问参数问题机器人能不能接住
运维·人工智能·自动化