使用hid.touchDown/Move/Up实现按住并拖动

351

主题

193

回帖

2252

积分

管理员

积分
2252
使用hid.touchDown/Move/Up实现按住并拖动

5.png


6.png


QQ截图20260519161626.png


  1. /**
  2. * AIWROK HID 按住拖动功能演示
  3. * 使用hid.touchDown/Move/Up实现按住并拖动
  4. *
  5. * @author AIWROK开发团队
  6. * @version 5.0.0
  7. * @copyright Copyright (c) 2026 AIWROK. All rights reserved.
  8. * @qq_group AIWROK官方交流群: 711841924
  9. */

  10. // ==================== 基础配置 ====================
  11. var START_X = 168;
  12. var START_Y = 253;
  13. var END_X = 903;
  14. var END_Y = 1804;
  15. var HOLD_TIME = 2000; // 按住时长(毫秒) - 2秒
  16. var DRAG_TIME = 5000; // 拖动时长(毫秒) - 5秒

  17. // ==================== HID 检查 ====================

  18. function checkHID() {
  19.     try {
  20.         if (typeof hid === 'undefined') {
  21.             console.log("err HID模块未定义");
  22.             return false;
  23.         }
  24.         
  25.         console.log("检查HID状态...");
  26.         var hidOn = false;
  27.         try {
  28.             hidOn = hid.isOn();
  29.             console.log("HID状态: " + (hidOn ? "已开启" : "未开启"));
  30.         } catch(e) {
  31.             hidOn = false;
  32.             console.log("err 检查HID状态失败: " + e);
  33.         }
  34.         
  35.         if (!hidOn) {
  36.             console.log("err HID未开启,请在AIWROK设置中开启HID功能");
  37.             return false;
  38.         }
  39.         
  40.         console.log("HID设备: " + hid.getName() + " | " + hid.getDeviceID());
  41.         return true;
  42.     } catch (e) {
  43.         console.log("err HID检查失败: " + e);
  44.         return false;
  45.     }
  46. }

  47. // ==================== HID touchDown/Move/Up 按住拖动 ====================

  48. function hidTouchDrag(sx, sy, ex, ey, holdTime, dragTime) {
  49.     try {
  50.         console.log("\n>>> HID touchDown按住 + touchMove拖动");
  51.         console.log("  起点: (" + sx + "," + sy + ")");
  52.         console.log("  终点: (" + ex + "," + ey + ")");
  53.         console.log("  按住: " + holdTime + "ms | 拖动: " + dragTime + "ms");
  54.         
  55.         // 按下起点
  56.         console.log("  执行: hid.touchDown(0, " + sx + "," + sy + ")");
  57.         hid.touchDown(0, sx, sy);
  58.         
  59.         // 按住不动
  60.         console.log("  保持按住 " + holdTime + "ms...");
  61.         sleep.millisecond(holdTime);
  62.         
  63.         // 拖动到终点
  64.         var steps = 100;
  65.         var stepTime = dragTime / steps;
  66.         for (var i = 1; i <= steps; i++) {
  67.             var p = i / steps;
  68.             var cx = Math.round(sx + (ex - sx) * p);
  69.             var cy = Math.round(sy + (ey - sy) * p);
  70.             hid.touchMove(0, cx, cy);
  71.             sleep.millisecond(stepTime);
  72.             if (i % 25 === 0) {
  73.                 console.log("  进度: " + Math.round(p * 100) + "% (" + cx + "," + cy + ")");
  74.             }
  75.         }
  76.         
  77.         // 抬起
  78.         hid.touchUp(0);
  79.         sleep.millisecond(200);
  80.         
  81.         console.log("ok 拖动完成");
  82.         return true;
  83.     } catch (e) {
  84.         console.log("err 拖动失败: " + e);
  85.         return false;
  86.     }
  87. }

  88. // ==================== 主函数 ====================

  89. function main() {
  90.     console.log("=====================================");
  91.     console.log("AIWROK HID 按住拖动演示");
  92.     console.log("坐标(" + START_X + "," + START_Y + ") <-> (" + END_X + "," + END_Y + ")");
  93.     console.log("按住" + (HOLD_TIME/1000) + "秒 + 拖动" + (DRAG_TIME/1000) + "秒");
  94.     console.log("=====================================");
  95.     console.log("\n请确保:");
  96.     console.log("1. HID功能已在AIWROK设置中开启");
  97.     console.log("2. HID设备已正确连接");
  98.     console.log("3. 屏幕坐标范围: X(0-1080) Y(0-2400)");
  99.     console.log("=====================================");
  100.    
  101.     // 检查HID
  102.     if (!checkHID()) {
  103.         console.log("err HID检查失败,终止运行");
  104.         return;
  105.     }
  106.    
  107.     // 正向拖动
  108.     console.log("\n\n========== 正向拖动 ==========");
  109.     hidTouchDrag(START_X, START_Y, END_X, END_Y, HOLD_TIME, DRAG_TIME);
  110.     sleep.second(2);
  111.    
  112.     // 复位拖动
  113.     console.log("\n\n========== 复位拖动 ==========");
  114.     hidTouchDrag(END_X, END_Y, START_X, START_Y, HOLD_TIME, DRAG_TIME);
  115.     sleep.second(2);
  116.    
  117.     console.log("\n\n=====================================");
  118.     console.log("✅ 演示完成!");
  119.     console.log("=====================================");
  120. }

  121. main();
复制代码


举报 回复