public FT_STATUS SetRTS(bool Enable)
{
// Initialise ftStatus to something other than FT_OK
FT_STATUS ftStatus = FT_STATUS.FT_OTHER_ERROR;
// If the DLL hasn't been loaded, just return here
if (hFTD2XXDLL == IntPtr.Zero)
return ftStatus;
// Check for our required function pointers being set up
if ((pFT_SetRts != IntPtr.Zero) & (pFT_ClrRts != IntPtr.Zero))
{
tFT_SetRts FT_SetRts = (tFT_SetRts)Marshal.GetDelegateForFunctionPointer(pFT_SetRts, typeof(tFT_SetRts));
tFT_ClrRts FT_ClrRts = (tFT_ClrRts)Marshal.GetDelegateForFunctionPointer(pFT_ClrRts, typeof(tFT_ClrRts));
if (ftHandle != IntPtr.Zero)
{
if (Enable)
{
// Call FT_SetRts
ftStatus = FT_SetRts(ftHandle);
}
else
{
// Call FT_ClrRts
ftStatus = FT_ClrRts(ftHandle);
}
}
}
else
{
if (pFT_SetRts == IntPtr.Zero)
{
LogB.Debug("FTD2XX: Failed to load function FT_SetRts.");
}
if (pFT_ClrRts == IntPtr.Zero)
{
LogB.Debug("FTD2XX: Failed to load function FT_ClrRts.");
}
}
return ftStatus;
}