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

相关推荐
麦客奥德彪4 小时前
客户端 Trace Benchmark 体系设计
ios·数据分析
ZC跨境爬虫6 小时前
Python异步IO详解:原理、应用场景与实战指南(高并发爬虫首选)
爬虫·python·算法·自动化
守城小轩8 小时前
Chromium 145 编译指南 Windows篇:获取源代码(五)
自动化·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发
北京耐用通信8 小时前
工业自动化领域耐中达讯自动化CC-Link IE转EtherCAT技术解决方案
人工智能·物联网·网络协议·自动化·信息与通信
星马梦缘9 小时前
运动控制系统(三)-转速闭环直流调速系统
自动化·电机·自动控制·闭环系统
wzl2026121310 小时前
企微私域工具免费版vs付费版:数据统计API差异与自动化报表脚本实现
大数据·自动化·企业微信
taxunjishu10 小时前
智能仓储无人化管控 Profinet转MODBUS TCP全流程互联
网络·网络协议·自动化
Agent产品评测局10 小时前
企业预算管理自动化落地,编制管控全流程实现方案 —— 2026企业级智能体选型与架构深度解析
运维·人工智能·ai·架构·自动化
北京耐用通信11 小时前
1个网关=100+设备兼容:耐达讯自动化CC-Link IE 转 EtherCAT重新定义工业协议转换价值
人工智能·科技·网络协议·自动化·信息与通信
AscendKing12 小时前
一款开源、本地部署的 SSL 证书自动化管理工具Certimate介绍 部署教程
开源·自动化·ssl