I want to add to ftdi_mid.c:
FTDI_API FT_STATUS FT_WriteGPIOL(FT_HANDLE handle, uint8 dir, uint8 value)
{
FT_STATUS status;
uint8 buffer[3];
DWORD bytesWritten = 0;
uint32 bufIdx = 0;
FN_ENTER;
buffer[bufIdx++] = MPSSE_CMD_SET_DATA_BITS_LOWBYTE;
buffer[bufIdx++] = value;
buffer[bufIdx++] = dir;
status = varFunctionPtrLst.p_FT_Write(handle,buffer,bufIdx,&bytesWritten);
FN_EXIT;
return status;
}
FTDI_API FT_STATUS FT_ReadGPIO(FT_HANDLE handle,uint8 *value)
{
FT_STATUS status;
uint8 buffer[2];
DWORD bytesTransfered = 0;
DWORD bytesToTransfer = 0;
UCHAR readBuffer[10];
FN_ENTER;
buffer[bytesToTransfer++] = MPSSE_CMD_GET_DATA_BITS_LOWBYTE;
buffer[bytesToTransfer++] = MPSSE_CMD_SEND_IMMEDIATE;
status = varFunctionPtrLst.p_FT_Write(handle,buffer,bytesToTransfer,\
&bytesTransfered);
CHECK_STATUS(status);
DBG(MSG_DEBUG,"bytesToTransfer=0x%x bytesTransfered=0x%x\n",\
(unsigned)bytesToTransfer,(unsigned)bytesTransfered);
bytesToTransfer = 1;
bytesTransfered = 0;
status = varFunctionPtrLst.p_FT_Read(handle,readBuffer,bytesToTransfer,\
&bytesTransfered);
CHECK_STATUS(status);
DBG(MSG_DEBUG,"bytesToTransfer=0x%x bytesTransfered=0x%x\n",\
(unsigned)bytesToTransfer,(unsigned)bytesTransfered);
if(bytesToTransfer != bytesTransfered)
status = FT_IO_ERROR;
*value = readBuffer[0];
FN_EXIT;
return status;
}
and compile a new dll.