int MTUSB_BLSDriverCloseDevice( int DevHandle ) { if ((DevHandle < 0) || ( DevHandle >(totalUSBDevices-1) ) || (deviceOpened[DevHandle] == FALSE)) return -1; else { HidCloseDevice(DevHandle); deviceOpened[DevHandle] = FALSE; return 1; } }
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; }