CH573数据传输问题请教

?

java script数据给USB,方式如下 :


/**

 * 发送数据给usb设备

 * @param{*}data 字节数组的数据

 * @param{*}dataLength 字节数组的长度

 * @param{*}timeout 超时时间

 * @returns

 */

UsbModel.prototype.WriteData = function (data, dataLength, timeout) {

    var var5 = 0;

    var length = dataLength;

    //判断usb的零点(endpoint 0)是否为空,为空则无法进行数据写入

    if (this.usbEndpoint == null) {

        //抛出异常

        return -1;

    }

    while (var5 < dataLength) {

        var var15 = Math.min(length, 32);

        var var8 = util.java.array('byte', var15);

        if (var5 == 0) {

            java.lang.System.arraycopy(data, 0, var8, 0, var15);

        } else {

            java.lang.System.arraycopy(data, var5, var8, 0, var15);

        }


        //通过给定的endpoint来进行大量的数据传输,传输的方向取决于该节点的方向,buffer是要发送或接收的字节数组,

        //length是该字节数组的长度。传输成功则返回所传输的字节数组的长度,失败则返回负数。

        if ((var15 = this.usbDeviceConnection.bulkTransfer(this.usbEndpoint, var8, var15, timeout)) < 0) {

            return false;

        }

        var5 += var15;

        length -= var15;

    }


    if (var5 > 0) {

        return true

    }

    return false;


}

请问,使用COM例子如何该数据并发送给蓝牙HID

您好,COM代码中模拟CH9340,是走端点1的OUT方向获取批量传输数据的,在中断服务函数的对应case中可以缓存数据

走蓝牙发出,看您要交互的数据内容:

COM下传给MCU的数据,无论什么格式,走BLE透传发送给上位机,调用Notify接口就可以;

如果COM下传给MCU的数据都是符合HID报表格式的,那么可以走BLE-HID发给上位机,比如说符合键盘报表格式的数据,可以走模拟键盘的BLE-HID上传给上位机来模拟打字;

如果COM下传给MCU的数据不符合HID报表格式,那么无法走BLE-HID上传给上位机,即使能上传成功,也会被上位机判断为包异常而拦截丢弃。


只有登录才能回复,可以选择微信账号登录