MicroDiP 1 24 января, 2016 Опубликовано 24 января, 2016 · Жалоба Добрый день. Приложение пишется в CodeGear 2007 (Windows10). Последовательность действий следующая: 1. FT_CreateDeviceInfoList() - запрашивает количество подключенных к системе девайсов 2. FT_GetDeviceInfoList() - читаем информацию об устройстве, в частности его серийный номер 3. FT_OpenEx() - открываем устройство по серийному номеру, полученному в п.2 4. Конфигурация устройства, состоящая из следующих команд: FT_ResetDevice(Handle); FT_SetBaudRate() FT_SetDataCharacteristics() FT_SetFlowControl() FT_SetChars() FT_SetUSBParameters() FT_SetEventNotification() FT_SetTimeouts() FT_Purge() и далее идёт работа с устройством. Вопрос: на Windows10 функция FT_SetUSBParameters() отказывается работать (установка InTransferSize в 64 байта, хотя и другие значения также не работают): возвращает ошибку 4 (FT_IO_ERROR). На предыдущих версиях Windows проблем не было (хп, семёрка, восьмёрка). На десятке же не работает. Комментирую эту строку - программа открывается и далее работает. Но с параметрами порта по умолчанию. Пробовал на разных компах с Вин10 - результат тот же. Что это может быть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MicroDiP 1 3 февраля, 2016 Опубликовано 3 февраля, 2016 · Жалоба Из мануала: Функция определена как FT_STATUS FT_SetUSBParameters (FT_HANDLE ftHandle, DWORD dwInTransferSize, DWORD dwOutTransferSize) там же написано: Note that, at present, only dwInTransferSize is supported. Только вот не сказано, поддерживается кем: драйвером или ОС... И ниже приведён пример, где кроме всего прочего написано: ftStatus = FT_SetUSBParameters(ftHandle, InTransferSize, 0); Так везде и писал (с нулём вместо OutTransferSize). И предыдущие Винды это понимали. А десятка - нет. Нужно явно указывать значение: ftStatus = FT_SetUSBParameters(ftHandle, 64, 64); И всё работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться