0 / 0 / 0
Регистрация: 09.07.2012
Сообщений: 16

Работа с FT2232. Список устройств и обмен по USB

09.07.2012, 12:25. Показов 7449. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, необходимо получить список устройств, подключенных к usb порту и выбрать одно для работы чтения/записи. С чего начать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.07.2012, 12:25
Ответы с готовыми решениями:

Получить список USB устройств
Нужно получить список устройсст по классу гуида . Добавлено через 37 минут что бы в дальшейшем к устройству обращаться как к файлу

Получить список USB устройств
Собственно нужно получить список USB устройств, подключённых на данный момент. Кто может подсказать?

Получить список USB устройств
Здравствуйте! Есть код программы, который в табличке выдает информацию о подключенных USB устройствах. Но у меня неправильно выводится...

29
0 / 0 / 0
Регистрация: 09.07.2012
Сообщений: 16
13.07.2012, 12:09  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от raxp Посмотреть сообщение
...насчет lib ничего не могу сказать, я всегда просто экспортировал функи из DLL-ки без всяких изысков.
как это сделать?



и еще вопрос, может кто сталкивался с режимом эмуляции шины хоста, там есть целый перечень команд, а я понять не могу что они значат, надо мне это или нет? и можно ли для этого режима использовать обычные FT_read, ft_write?

и еще для записи данных по адресу в цикле и блоками мне нужны потоки? не повиснет у меня все?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
13.07.2012, 12:25
как это сделать?
смотрите сколько вариантов:
http://msdn.microsoft.com/ru-r... xe9k8.aspx

и еще вопрос, может кто сталкивался с режимом эмуляции шины хоста
вам это не нужно ...по крайней мере, при заданных условиях.

и еще для записи данных по адресу в цикле и блоками мне нужны потоки? не повиснет у меня все?
потоки - это не панацея от всех бед, не зацикливайтесь на них. Реализуйте элементарное чтение-запись для начала.
0
0 / 0 / 0
Регистрация: 09.07.2012
Сообщений: 16
13.07.2012, 12:42  [ТС]
Да у меня как бы задание работы с Ft2232H в режиме MCU Host Bus Emulation Modes. Сказали в этом режиме производить чтение/запись, в цикле и по блокам. вот(((( читаю документ по командам это режима и там ни хрена не понятно(
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
13.07.2012, 12:58
...вот скажите: какой глубокий смысл переводить в HOST режим - FT2232, если вы с ней работаете из HOST хаба компьютера? FTDI-ка должна быть в слэйве.
0
0 / 0 / 0
Регистрация: 09.07.2012
Сообщений: 16
13.07.2012, 13:09  [ТС]
Цитата Сообщение от raxp Посмотреть сообщение
...вот скажите: какой глубокий смысл переводить в HOST режим - FT2232, если вы с ней работаете из HOST хаба компьютера? FTDI-ка должна быть в слэйве.
я наверно кажусь очень глупой(наеврно в этой сфере это так), но мне дали документ по ft2232h, сказали что она должна работать в таком режиме, скиннули документ AN_108 с командами для него, а в английском я полный профан, что смогла по переводчику перевела. установила драйвер, Ft_openex, ft_listdevices Работает, а ft_setbitmode не хочет, не находит ее. я уже почитала все возможные случаи, не помогает.

Добавлено через 1 минуту
raxp, надо читать и писать по 2 байта с начального адреса, думаю какими функциями это делать.
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
13.07.2012, 13:54
а ft_setbitmode не хочет, не находит ее
это потому-что она есть в дровах для FTDI под UFS режим - ftcd2xx.sys (FT2232C, FT232BM and FT245BM Extended API Functions).

Cм. расширенное API

Delphi
1
2
3
4
5
6
// FT2232C, FT232BM and FT245BM Extended API Functions
function FT_GetLatencyTimer(ftHandle: Dword; Latency:Pointer):i; stdcall; External FT_DLL_Name name 'FT_GetLatencyTimer';
function FT_SetLatencyTimer(ftHandle:Dword; Latency:Byte):i; stdcall; External FT_DLL_Name name 'FT_SetLatencyTimer';
function FT_GetBitMode(ftHandle:Dword; BitMode:Pointer):i; stdcall; External FT_DLL_Name name 'FT_GetBitMode';
function FT_SetBitMode(ftHandle:Dword; Mask,Enable:Byte):i; stdcall; External FT_DLL_Name name 'FT_SetBitMode';
function FT_SetUSBParameters(ftHandle:Dword; InSize,OutSize:Dword):i; stdcall; External FT_DLL_Name name 'FT_SetUSBParameters';


читать и писать по 2 байта
а в чем тут проблема, пишите по два байта.
0
0 / 0 / 0
Регистрация: 09.07.2012
Сообщений: 16
13.07.2012, 14:03  [ТС]
Цитата Сообщение от raxp Посмотреть сообщение
это потому-что она есть в дровах для FTDI под UFS режим - ftcd2xx.sys (FT2232C, FT232BM and FT245BM Extended API Functions).

[SPOILER="Cм. расширенное API"]
.
вот это вообще не понятно, есть она и есть, что мне тогда с ней делать?

Добавлено через 3 минуты
я читала, что смешивать функции из групп в Ftd2xx нельзя(или нежелательно). Тогда что мне делать
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
13.07.2012, 14:12
...перейти на использование расширенного API. Все прежние функции там имеются:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
//Classic functions
function FT_GetNumDevices(pvArg1:Pointer; pvArg2:Pointer; dwFlags:Dword):i; stdcall; External FT_DLL_Name name 'FT_ListDevices';
function FT_ListDevices(pvArg1:Dword; pvArg2:Pointer; dwFlags:Dword):i; stdcall; External FT_DLL_Name name 'FT_ListDevices';
function FT_Open(Index:Integer; ftHandle:Pointer):i; stdcall; External FT_DLL_Name name 'FT_Open';
function FT_OpenEx(pvArg1:Pointer; dwFlags:Dword; ftHandle:Pointer):i; stdcall; External FT_DLL_Name name 'FT_OpenEx';
function FT_OpenByLocation(pvArg1:DWord; dwFlags:Dword; ftHandle:Pointer):i; stdcall; External FT_DLL_Name name 'FT_OpenEx';
function FT_Close(ftHandle:Dword):i; stdcall; External FT_DLL_Name name 'FT_Close';
function FT_Read(ftHandle:Dword; FTInBuf:Pointer; BufferSize:LongInt; ResultPtr:Pointer):i; stdcall; External FT_DLL_Name name 'FT_Read';
function FT_Write(ftHandle:Dword; FTOutBuf:Pointer; BufferSize:LongInt; ResultPtr:Pointer):i; stdcall; External FT_DLL_Name name 'FT_Write';
function FT_ResetDevice(ftHandle:Dword):i; stdcall; External FT_DLL_Name name 'FT_ResetDevice';
function FT_SetBaudRate(ftHandle:Dword; BaudRate:DWord):i; stdcall; External FT_DLL_Name name 'FT_SetBaudRate';
...
0
0 / 0 / 0
Регистрация: 09.07.2012
Сообщений: 16
13.07.2012, 14:17  [ТС]
у меня еще проблема, есть memo, в котором записаны данные в шестнадцаричном виде, по строкам, 5А,2C и т.д. и адрес в edit, я пытаюсь перевести из одного типа в другой а он мне кучу ошибок выдает, там в функция имеет вид
FT_STATUS FT_Write (FT_HANDLE ftHandle, LPVOID lpBuffer, DWORD dwBytesToWrite,
LPDWORD lpdwBytesWritten)
LPVOID lpBuffer - что надо записать в этот указатель?
с третий параметром примерно понятно (я записываю 2(по идее 2 байта будет записано)).
с четвертым не понятно.
и куда вводить адрес по которому записывать на шину, и куда вводить само значение?

Добавлено через 2 минуты
Цитата Сообщение от raxp Посмотреть сообщение
...перейти на использование расширенного API. Все прежние функции там имеются:
а для с++ тоже самое?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
13.07.2012, 15:13
Delphi
1
function FT_Write(ftHandle:Dword; FTOutBuf:Pointer; BufferSize:LongInt; ResultPtr:Pointer):i; stdcall; External FT_DLL_Name name 'FT_Write';
LPVOID lpBuffer - указатель на буфер с вашими двумя байтами
LPDWORD lpdwBytesWritten - указатель на возвращаемое значение

Пример:
Delphi
1
2
3
4
5
6
var    FT_In_Buffer : Array[0..$1000-1] of Byte;
   FT_Out_Buffer : Array[0..$1000-1] of Byte;
...
FT_IO_Status := FT_Read(FT_Handle,@FT_In_Buffer,Read_Count,@Read_Result);
...
FT_IO_Status := FT_Write(FT_Handle,@FT_Out_Buffer,Write_Count,@Write_Result);
теперь смысл ясен?

и куда вводить адрес по которому записывать на шину, и куда вводить само значение?
FT_Open(DevIndex, @FT_Handle) ...если под адресом вы подразумеваете найденное n-е FTDI устройство на шине, и вот этот самый хэндл - есть указатель на устройство, которое вы будете использовать для FT_WRITE_READ().

а для с++ тоже самое?
язык не имеет значения, экспортируемые функции идут от одного и того же драйвера.

есть memo, в котором записаны данные в шестнадцаричном виде, по строкам, 5А,2C и т.д. и адрес в edit, я пытаюсь перевести из одного типа в другой а он мне кучу ошибок выдае
как пытаетесь? Что за адрес в Edit: адрес FTDI-ки (хэндл, номер) или адрес устройства, подключенного к FTDI-ке?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.07.2012, 15:13

Получить список устройств, подключенных по USB
Написать прогу, которая получает список подключенных по usb, т.е. нужно подключиться к соответствующему устройству, считать и передать на...

Получить список устройств, подключенных к USB
Доброго времени суток. Пытаюсь получить список устройств подключенных к USB import java.io.UnsupportedEncodingException; import...

Как вывести список usb-устройств, сгруппированных по idVendor?
Нужно написать скрипт, чтобы вывести список usb-устройств, сгруппированных по idVendor. Примерный вывод, который должен получиться: ...

Нестабильная работа USB-устройств
коротко говоря, устройства, которые одновременно открываются как память и заряжаются, подключаются и сразу отключаются

Работа с эндпоинтами устройств USB и setupapi
Как читать и записывать данные в эндпоинты EP0in, EP0out, EPi in, EPi out устройств USB , как правильно пользоваться setupapi.pas ? ...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru