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

相关推荐
传奇开心果编程5 小时前
【Flutter踩坑排雷】第19课:路由硬编码坑|字符串路由书写错误,页面跳转失败排查
android·flutter·ios·移动开发·跨平台·ui框架·声明式ui
茶底世界之下8 小时前
雨后街口的斑马线:用 Awaking 把颜色让给光与步伐
ios·app·产品
lisw058 小时前
基于神经网络的机器人导航系统的设计与执行!
神经网络·机器人·自动化
严肃小白兔8 小时前
Cloudflare 更新 API Token 管理:从最小权限到自动化凭据安全
网络·安全·自动化
2601_968793149 小时前
Python Requests 轻量自动化:无需浏览器,实现真人级账号浏览模拟
开发语言·python·自动化
无忧_wy9 小时前
MoneyPrinterTurbo 自动化视频生成实战指南
运维·人工智能·自动化·音视频
喵喵匠1 天前
一份 Markdown 发十个平台:cspub 一稿多投
自动化·markdown·效率工具·仓颉·cli工具
小杨爱科普1 天前
制造业上自动化改造,改造部分的专利到底归谁
运维·经验分享·自动化
茶底世界之下1 天前
晨雾河岸的旧书摊:用 Awaking 给木色一点暖光
ios·app·产品
yurenshi16681 天前
多平台内容发布的工程化实践:模板、校验与排期自动化(2026)
自动化·矩阵运营·内容发布