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

相关推荐
pt10432 小时前
网络自动化Python课程:Netconf与Restconf及Cisco自动化配置实验
网络·python·自动化
Patrick_Wilson3 小时前
iOS Safari 按钮点击无响应问题修复指南
前端·ios·safari
qq_426003964 小时前
UI自动化元素定位不到解决方案
前端·pycharm·自动化
随遇丿而安4 小时前
第 3 周:UIButton 点了没反应,因为它默认就没有按压态
ios
其实防守也摸鱼4 小时前
智能体推荐:精选 AI Agent 工具与实战指南
运维·开发语言·人工智能·学习·web安全·自动化
楠楠子呀5 小时前
号码状态核验:从数据清洗到合规处理的实现思路
运维·自动化
小周学学学5 小时前
GLPI 项目解读:开源 IT 资产管理与 ITSM 服务台平台
运维·开源·自动化·资产管理
Sayai5 小时前
Elasticsearch 快照备份到 NAS(NFS)实战:SLM 自动化 + 365 天保留策略
elasticsearch·自动化·jenkins
DeepVisionary14 小时前
谷歌 Gemini Omni 1.1 Flash 正式发布:4K 视频、40 秒场景延伸,视频生成进入按 token 计费时代
python·自动化
众壹新能源科技15 小时前
功率预测误差考核怎么降?从气象源到上报口径的排查清单
运维·人工智能·自动化