最近在帮助我们芯片组开发一个新的工具,最重要的是USB控制接口和python脚本解释器的嵌入,USB接口按照之前的做法是使用如下函数:
BOOL WINAPI DeviceIoControl(
_In_ HANDLE hDevice,
_In_ DWORD dwIoControlCode,
_In_opt_ LPVOID lpInBuffer,
_In_ DWORD nInBufferSize,
_Out_opt_ LPVOID lpOutBuffer,
_In_ DWORD nOutBufferSize,
_Out_opt_ LPDWORD lpBytesReturned,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);
当时能够使用这个接口满足我们的需求是因为如下对应关系:
lpInBuffer[0] ->bmRequest
lpInBuffer[1] ->windex
lpInBuffer[2] ->。。。(记不清楚了 ^_^)
由于芯片版本的更新导致之前做法不能实现,从而考虑使用其它方法,当前考虑两种做法:
做法1:使用libusb生成dll,再通过python 的ctypes导入调用
做法2:直接使用python 自己的库pyUSB,通过pip安装后导入调用
这两种做法初期都很顺利,一旦涉及到open device或者usb.core.find都会报错,libusb会报权限错误,而pyUSB会报<