libusb0和USB做的设备通讯

易语言 2020-03-08 20:43:12

libusb0和USB做的设备通讯

USB初始化 () ' 初始化
查找USB总线 () ' 寻找系统上的usb总线
查找USB设备 () ' 寻找usb总线上的usb设备
总线链表句柄 = 取USB总线链表 () ' 获得系统总线链表的句柄
usb设备数 = 0
dev = 指针到整数 (总线链表句柄 + 520)
.判断循环首 (dev > 0)
编辑框1.加入文本 (“设备:” + 到文本 (指针到字节集 (dev + 8, 40)) + #换行符)
VID = 到文本 (指针到字节集 (dev + 28, 4))
PID = 到文本 (指针到字节集 (dev + 35, 4))
.如果真 (VID = “4255” 且 PID = “0001”)
dev句柄 = 打开USB设备 (dev)
.如果真 (dev句柄 > 0)
编辑框1.加入文本 (“打开USB设备成功” + #换行符)
认领接口 (dev句柄, 0)
' 写数据
' ' 6=转U盘 56=数字8,密码是6个8
写入数据 = { 6, 0, 0, 0, 0, 0, 56, 56, 56, 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
.如果真 (写USB (dev句柄, #写USB数据, 85, 170, 0, 写入数据, 32, 500) > 0)
编辑框1.加入文本 (“写数据成功” + #换行符)
.如果真结束
' 读数据
读取长度 = 32
读取数据 = 取空白字节集 (读取长度)
.如果真 (读USB (dev句柄, #读USB数据, 85, 170, 0, 读取数据, 读取长度, 500) = 读取长度)
调试输出 (读取数据)
编辑框1.加入文本 (“读数据成功:” + 字节集到字符文本 (读取数据) + #换行符)
.如果真结束
释放接口 (dev句柄, 0)
.如果真 (关闭USB设备 (dev句柄) = 0)
编辑框1.加入文本 (“关闭USB设备成功” + #换行符)
.如果真结束

.如果真结束

.如果真结束
dev = 指针到整数 (dev)
usb设备数 = usb设备数 + 1
.判断循环尾 ()
编辑框1.加入文本 (“USB设备数:” + 到文本 (usb设备数) + #换行符)