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