例子:冰狐脚本调用UsbClient和USB HID硬件通信 function main() { var b = usb.connect(); console.log('connect:', b); if (b) { usbInit(rsScreenWidth, rsScreenHeight) // usbRecentApps() // usbSwipe(400, 2000, 600, 1000, 1000) // usbBack(usb) usbHome() // usbClick(800, 650) } console.log('end') } function usbInit(screenWidth, screenHeight) { usb.send([0xe].concat(int2bytes(screenWidth, 2), int2bytes(screenHeight, 2))) sleep(3000) } function usbClick(x, y, duration) { if (null == duration) { duration = 200 } usbMouseMove(usb, x, y); sleep(duration); usbMouseUp(usb, x, y); } function usbMouseMove(x, y) { usb.send([0x9].concat(int2bytes(x, 2), int2bytes(y, 2))) } function usbMouseUp(x, y) { usb.send([0xa].concat(int2bytes(x, 2), int2bytes(y, 2))) } function usbSwipe(x1, y1, x2, y2, duration) { if (null == duration) { duration = 300 } var moveCount = randInt(6, 20) var dTime = parseInt(duration / moveCount); var startX = 0, startY = 0, endX = 0, endY = 0, useCurve = false; if (x1 != x2 && y1 != y2) { if (x1 < x2 && y1 > y2) { startX = x1; startY = y1; endX = x2; endY = y2; useCurve = true; } else if (x1 > x2 && y1 < y2) { startX = x2; startY = y2; endX = x1; endY = y1; useCurve = true; } } if (useCurve) { var x = endX - startX; var y = startY - endY; var a = (endX - startX) / ((endY - startY) * (endY - startY)); var yb = y1; var ya = (y2 - yb) / (moveCount * moveCount); for (var i = 1; i < moveCount; ++i) { var fY = (ya * i * i + yb); var y = parseInt(fY); var x = parseInt(a * (y - startY) * (y - startY) + startX); if (i > 1 && i < moveCount - 1) { x += randInt(0, 5) - 2; y += randInt(0, 5) - 2; } usbMouseMove(usb, x, y) sleep(dTime); } } else { usbMouseMove(usb, x1, y1) var a = (x1 - x2) / (y1 - y2); var b = x1 - a * y1; var yb = y1; var ya = (y2 - yb) / (moveCount * moveCount); for (var i = 1; i < moveCount; ++i) { var fY = (ya * i * i + yb); var y = parseInt(fY); var x = parseInt((a * y + b)); if (i > 1 && i < moveCount - 1) { x += randInt(0, 5) - 2; y += randInt(0, 5) - 2; } usbMouseMove(usb, x, y) sleep(dTime); } } usbMouseMove(usb, x2, y2) sleep(10); usbMouseUp(usb, x2, y2) } function usbHome() { usb.send([0x20]) } function usbBack() { usb.send([0xd]) } function usbRecentApps() { usb.send([0x8, 0x4, 0x2b]) } function usbCopy() { usb.send([0x08, 0x01, 0x06]) } function usbPaste() { usb.send([0x08, 0x01, 0x19]) } function usbCut() { usb.send([0x08, 0x01, 0x1B]) } function usbSelectAll() { usb.send([0x08, 0x01, 0x04]) }
参数名 | 类型 | 必填 | 说明 |
---|
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
data | string/byte array | 必填 | 待发送的数据,支持字符串和整数,注意:如果为数组时必须是整数数组(每个整数实际为一个byte)。 |
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
timeout | integer | 选填 | 超时时间,单位毫秒,默认值10000 |