|
|
使用hid.touchDown/Move/Up实现按住并拖动
- /**
- * AIWROK HID 按住拖动功能演示
- * 使用hid.touchDown/Move/Up实现按住并拖动
- *
- * @author AIWROK开发团队
- * @version 5.0.0
- * @copyright Copyright (c) 2026 AIWROK. All rights reserved.
- * @qq_group AIWROK官方交流群: 711841924
- */
- // ==================== 基础配置 ====================
- var START_X = 168;
- var START_Y = 253;
- var END_X = 903;
- var END_Y = 1804;
- var HOLD_TIME = 2000; // 按住时长(毫秒) - 2秒
- var DRAG_TIME = 5000; // 拖动时长(毫秒) - 5秒
- // ==================== HID 检查 ====================
- function checkHID() {
- try {
- if (typeof hid === 'undefined') {
- console.log("err HID模块未定义");
- return false;
- }
-
- console.log("检查HID状态...");
- var hidOn = false;
- try {
- hidOn = hid.isOn();
- console.log("HID状态: " + (hidOn ? "已开启" : "未开启"));
- } catch(e) {
- hidOn = false;
- console.log("err 检查HID状态失败: " + e);
- }
-
- if (!hidOn) {
- console.log("err HID未开启,请在AIWROK设置中开启HID功能");
- return false;
- }
-
- console.log("HID设备: " + hid.getName() + " | " + hid.getDeviceID());
- return true;
- } catch (e) {
- console.log("err HID检查失败: " + e);
- return false;
- }
- }
- // ==================== HID touchDown/Move/Up 按住拖动 ====================
- function hidTouchDrag(sx, sy, ex, ey, holdTime, dragTime) {
- try {
- console.log("\n>>> HID touchDown按住 + touchMove拖动");
- console.log(" 起点: (" + sx + "," + sy + ")");
- console.log(" 终点: (" + ex + "," + ey + ")");
- console.log(" 按住: " + holdTime + "ms | 拖动: " + dragTime + "ms");
-
- // 按下起点
- console.log(" 执行: hid.touchDown(0, " + sx + "," + sy + ")");
- hid.touchDown(0, sx, sy);
-
- // 按住不动
- console.log(" 保持按住 " + holdTime + "ms...");
- sleep.millisecond(holdTime);
-
- // 拖动到终点
- var steps = 100;
- var stepTime = dragTime / steps;
- for (var i = 1; i <= steps; i++) {
- var p = i / steps;
- var cx = Math.round(sx + (ex - sx) * p);
- var cy = Math.round(sy + (ey - sy) * p);
- hid.touchMove(0, cx, cy);
- sleep.millisecond(stepTime);
- if (i % 25 === 0) {
- console.log(" 进度: " + Math.round(p * 100) + "% (" + cx + "," + cy + ")");
- }
- }
-
- // 抬起
- hid.touchUp(0);
- sleep.millisecond(200);
-
- console.log("ok 拖动完成");
- return true;
- } catch (e) {
- console.log("err 拖动失败: " + e);
- return false;
- }
- }
- // ==================== 主函数 ====================
- function main() {
- console.log("=====================================");
- console.log("AIWROK HID 按住拖动演示");
- console.log("坐标(" + START_X + "," + START_Y + ") <-> (" + END_X + "," + END_Y + ")");
- console.log("按住" + (HOLD_TIME/1000) + "秒 + 拖动" + (DRAG_TIME/1000) + "秒");
- console.log("=====================================");
- console.log("\n请确保:");
- console.log("1. HID功能已在AIWROK设置中开启");
- console.log("2. HID设备已正确连接");
- console.log("3. 屏幕坐标范围: X(0-1080) Y(0-2400)");
- console.log("=====================================");
-
- // 检查HID
- if (!checkHID()) {
- console.log("err HID检查失败,终止运行");
- return;
- }
-
- // 正向拖动
- console.log("\n\n========== 正向拖动 ==========");
- hidTouchDrag(START_X, START_Y, END_X, END_Y, HOLD_TIME, DRAG_TIME);
- sleep.second(2);
-
- // 复位拖动
- console.log("\n\n========== 复位拖动 ==========");
- hidTouchDrag(END_X, END_Y, START_X, START_Y, HOLD_TIME, DRAG_TIME);
- sleep.second(2);
-
- console.log("\n\n=====================================");
- console.log("✅ 演示完成!");
- console.log("=====================================");
- }
- main();
复制代码
|
|