Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492

FTDI: функция библиотеки D2XX FT_ListDevices(,,FT_LIST_ALL|FT_OPEN_BY_­LOCATION)

21.09.2017, 17:44. Показов 3850. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Запакованные функции 1 и 2 вариант работают, 3-й нет
1.ftStatus=FT_ListDevices((PVOID)devInde x,Buffer,FT_LIST_BY_INDEX|FT_OPEN_BY_SER IAL_NUMBER);
2.ftStatus = FT_ListDevices(BufPtrs, &numDevs, FT_LIST_ALL|FT_OPEN_BY_DESCRIPTION);

не пойму что надо для функции с флагом FT_LIST_ALL|FT_OPEN_BY_LOCATION

3.ftStatus = FT_ListDevices(locIdBuf,&numDevs,FT_LIST _ALL|FT_OPEN_BY_LOCATION);
не хочет компилироваться выдает: Undefined symbol 'FT_OPEN_BY_LOCATION'
Код использую со справочника
C++
1
2
3
4
5
6
7
8
FT_STATUS ftStatus;
DWORD numDevs;
 
long locIdBuf[16];
 
ftStatus = FT_ListDevices(locIdBuf, &numDevs, FT_LIST_ALL|FT_OPEN_BY_LOCATION);
if (ftStatus == FT_OK)
{
Добавлено через 19 часов 39 минут
На Винде 7 и ХП попробовал безрезультатно, FT_OPEN_BY_LOCATION
Хотя пишут
Поддерживаемые ОС: Linux, Mac OS X (10.4 и более свежие), Windows (2000 и более свежие), Windows CE (4.2 и более свежие).

Получает информацию об устройствах, подключенных к системе в настоящий момент. Функция может вернуть такую информацию, как количество подключенных устройств, серийный номер устройства и строки описания устройства, и идентификаторы location ID для подключенных устройств.

FT_STATUS FT_ListDevices (PVOID pvArg1, PVOID pvArg2, DWORD dwFlags);
Параметры:

pvArg1 значение зависит от dwFlags.
pvArg2 значение зависит от dwFlags.
dwFlags определяет формат возвращенной информации.

Возвращаемое значение: FT_OK если все прошло удачно, иначе будет возвращен код ошибки FT.

Эта функция может использоваться разными способами для получения информации различного типа. Более продвинутый способ, чем эта функция - использовать FT_CreateDeviceInfoList, FT_GetDeviceInfoList и FT_GetDeviceInfoDetail, потому что они возвращают больше информации об устройствах.

В этой упрощенной форме функция может быть использована для получения количества подключенных в настоящее время устройств. Если в dwFlags установлен бит FT_LIST_NUMBER_ONLY, то параметр pvArg1 интерпретируется как указатель на переменную DWORD для сохранения количества подключенных в настоящее время устройств.

Функция может быть использована для возврата информации об устройстве: если в dwFlags установлен флаг FT_OPEN_BY_SERIAL_NUMBER, то будет возвращена строка серийного номера; если в dwFlags установлен бит FT_OPEN_BY_DESCRIPTION, то будет возвращена строка описания продукта; если в dwFlags установлен бит FT_OPEN_BY_LOCATION, то будет возвращен Location ID; если не установлен ни один из этих битов, то по умолчанию будет возвращена строка серийного номера.

Функция может использоваться для возврата строки описания одного устройства. Если в dwFlags установлены биты FT_LIST_BY_INDEX и FT_OPEN_BY_SERIAL_NUMBER или FT_OPEN_BY_DESCRIPTION, то параметр pvArg1 интерпретируется как индекс устройства, и параметр pvArg2 интерпретируется как указатель на буфер, который должен принять соответствующую строку. Используются индексы по базе 0, и для недопустимого индекса будет возвращен код ошибки FT_DEVICE_NOT_FOUND.

Функция может использоваться для возврата строки описания всех подключенных устройств. Если в dwFlags установлены биты FT_LIST_ALL и FT_OPEN_BY_SERIAL_NUMBER или FT_OPEN_BY_DESCRIPTION, то параметр pvArg1 интерпретируется как указатель на массив указателей на буферы, куда должны быть помещены соответствующие строки, и параметр pvArg2 интерпретируется как указатель на DWORD, куда будет сохранено количество подключенных в настоящее время устройств. Имейте в виду для pvArg1, что последняя запись в массиве указателей на буферы должна содержать NULL-указатель, так что в массиве может быть больше записей, чем количество подключенных устройств.

Будет возвращен location ID устройства, если в dwFlags установлены биты FT_LIST_BY_INDEX и FT_OPEN_BY_LOCATION. В этом случае параметр pvArg1 интерпретируется как индекс устройства, и параметр pvArg2 интерпретируется как указатель на переменную типа long, куда должно быть помещено значение location ID. Используются индексы по базе 0, и для недопустимого индекса будет возвращен код ошибки FT_DEVICE_NOT_FOUND. Имейте в виду, что Windows CE и Linux не поддерживают идентификаторы location ID.

Идентификаторы location ID всех подключенных устройств могут быть возвращены, если в dwFlags установлены биты FT_LIST_ALL и FT_OPEN_BY_LOCATION. В этом случае pvArg1 интерпретируется как указатель на массив переменных типа long, куда должны быть сохранены идентификаторы location ID, и параметр pvArg2 интерпретируется как указатель на DWORD, куда будет сохранено количество подключенных в настоящее время устройств.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.09.2017, 17:44
Ответы с готовыми решениями:

d2xx кто нибудь использовал?
подскажите возможно ли сделать так что как только в буфер пришли все данные произошло считывание? т.к сейчас мне приходится выставлять слип...

Стартовая функция WinMain это функция из библиотеки WinAPI?
Это стандартная WinAPI функция, как например, функции CreateWindow? Если нет, тогда к какой библиотеке она относится? /*Оконное...

Функция Sort библиотеки Algorithm
Какой тип сортировки используется функцией Sort библиотеки Algorithm? Если можно дайте ссылку на ресурс для более подробного изучения...

3
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
25.10.2017, 18:37  [ТС]
ТЕМА ОСТАЕТСЯ В СИЛЕ
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
28.10.2017, 19:57  [ТС]
Пошел путем сравнения, если эта классическая функция D2XX работает
ftStatus=FT_ListDevices((PVOID)devIndex, Buffer,FT_LIST_BY_INDEX|FT_OPEN_BY_SERIA L_NUMBER);
сделал ее просмотр и выдало
FT_LIST_BY_INDEX - FTD2XX.h(89)
FT_LIST_BY_INDEX = 0x40000000

FT_OPEN_BY_SERIAL_NUMBER - FTD2XX.h(81)
FT_OPEN_BY_SERIAL_NUMBER = 1
//*************************************
тогда что не так с этой функцией ftStatus = FT_ListDevices(locIdBuf, &numDevs, FT_LIST_ALL|FT_OPEN_BY_LOCATION);
сделал ее просмотр и выдало
FT_LIST_ALL - FTD2XX.h(90)
FT_LIST_ALL = 0x20000000

FT_OPEN_BY_LOCATION - ПУСТО
FT_OPEN_BY_LOCATION = ПУСТО
//******************************
Заглянул в FTD2XX.h
строка
89 #define FT_LIST_BY_INDEX 0x40000000
81 #define FT_OPEN_BY_SERIAL_NUMBER 1
90 #define FT_LIST_ALL 0x20000000
А #define FT_OPEN_BY_LOCATION ОТСУТСТВУЕТ
//Вопрос по форуму? нужен FTD2XX.h с #define FT_OPEN_BY_LOCATION ))))))))))))))))))))))))))))))))
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
29.10.2017, 23:52  [ТС]
Подкинул другой FTD2XX.h с #define FT_OPEN_BY_LOCATION
Теперь компилируется. В Memo1 показывает количество устройств, а в ComboBox1 нули вместо всех подключенных устройств.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ftStatus = FT_ListDevices((PVOID)locIdBuf, &numDevs, FT_LIST_ALL|FT_OPEN_BY_LOCATION);
  if (ftStatus == FT_OK)
   {
do{
ComboBox1->Items->Add(locIdBuf[devIndex]);
devIndex++;}
    while (devIndex<numDevs);
   }
   else{
    Form1->StatusBar1->Panels->Items[0]->Text = "xxx";
    Form1->StatusBar1->Panels->Items[1]->Text = "Not device";
    }
Memo1->Lines->Add(numDevs);
ComboBox1->ItemIndex=0;
В чем подвох?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.10.2017, 23:52
Помогаю со студенческими работами здесь

Не работает функция из dll библиотеки
Здравствуйте. Помогите, пожалуйста, найти неполадки. В приложении нужно ввести в один Edit число, а в другой вывести, что оно делится на 2...

Функция generate() библиотеки algorithm
generate(v8bit.begin(),v8bit.end(),1); C:\Program Files...

Функция floor() стандартной библиотеки
В описании функции стандартной библиотеки double floor(double num); сказано: Вопрос: почему возвращается тип double, а не int ?

Не работает функция из библиотеки FMOD
Как ни странно, но функция не моя, а из библиотеки FMOD Программа компилируется, но зависает... Работаю в Visual Studio class...

Функция LAPACKE_dgetrs библиотеки lapack
Здравствуйте. Пользовался кто-нибудь? Может есть пример? А то у меня все время вылетают ошибки доступа. Функция же LAPACKE_dgesv в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru