int MTUSB_BLSDriverOpenDevice( int DeviceIndex ) { if(totalUSBDevices == 0) return -1; else if(DeviceIndex > totalUSBDevices-1) return -1; else { if(HidOpenDevice(DeviceIndex) == 0) return -1; else { deviceOpened[DeviceIndex] = TRUE; // now the device is Opened, contact the device to get the device info here. GetDeviceODRules(DeviceIndex); return DeviceIndex; } } }
int ModuleWrite( int devHandle, void *buffer, int size, BOOL flushFlag, int &error ) { BYTE sendBuffer[USB_FEATURE_SIZE+1]; BYTE recvBuffer[USB_FEATURE_SIZE+1]; PBYTE bPtr; int strLength; int i, returnValr; // Send Content to Module. error = 0; strLength = size; bPtr = (PBYTE)buffer; while(strLength > 0) { if(strLength > (USB_FEATURE_SIZE-2)) { sendBuffer[0] = 0; // ReportID sendBuffer[1] = 1; // ASCII_TYPE sendBuffer[2] = USB_FEATURE_SIZE - 2; for(i = 3; i <= USB_FEATURE_SIZE; i++) { sendBuffer[i] = *bPtr; bPtr++; strLength--; } } else { sendBuffer[0] = 0; // ReportID sendBuffer[1] = 1; // ASCII_TYPE sendBuffer[2] = (BYTE) strLength; for(i = 0; i < sendBuffer[2]; i++) { sendBuffer[3+i] = *bPtr; bPtr++; strLength--; } } returnValr = HidSetFeature(devHandle, sendBuffer, sizeof(sendBuffer)); if(returnValr != 1) { HidCloseDevice(devHandle); HidOpenDevice(devHandle); if(HidSetFeature(devHandle, sendBuffer, sizeof(sendBuffer)) != 1) error = 1; } } if(putInShowBuffer) { showBufferIndex = 0; Sleep(10); } if(flushFlag) { recvBuffer[0] = 0; // ReportID should be 0 returnValr = HidGetFeature(devHandle, recvBuffer, sizeof(recvBuffer)); if(returnValr != 1) error = 1; else { strLength = recvBuffer[2]; while(strLength != 0) { for(i = 0; i < strLength; i++) if(putInShowBuffer) { showBuffer[showBufferIndex] = char(recvBuffer[3+i]); showBufferIndex++; } Sleep(20); recvBuffer[0] = 0; // ReportID should be 0 HidGetFeature(devHandle, recvBuffer, sizeof(recvBuffer)); strLength = recvBuffer[2]; } } } return size; }