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

相关推荐
Gofarlic_oms14 小时前
利用API实现ANSYS许可证管理自动化集成
运维·服务器·开发语言·matlab·自动化·负载均衡
观北海7 小时前
AiScan-N:AI全自动化渗透测试工具的深度技术解析
运维·自动化
qq_452396239 小时前
第十篇:《自动化处理验证码:OCR、接口绕过与第三方服务》
android·自动化·ocr
Agent产品评测局10 小时前
制造业生产调度自动化落地,完整步骤与避坑指南:2026企业级智能体选型与实战全景
运维·人工智能·ai·chatgpt·自动化
志栋智能10 小时前
超自动化巡检:让合规与审计变得轻松简单
运维·网络·人工智能·自动化
好度10 小时前
自动化教程-封装浏览器驱动
运维·自动化
ZZH_AI项目交付11 小时前
扫脸功能交给 SDK 后,主工程里的旧代码怎么删除
ios·app·apple
ZZH_AI项目交付12 小时前
扫脸功能做成 SDK,为什么我没有把结果页和历史记录一起搬进去
ios·app
茶底世界之下12 小时前
诡异!String 参数在闭包里变成了 <uninitialized>,我排查了整整两天
ios·xcode·swift
大强同学14 小时前
Obsidian链接收藏自动化
运维·自动化