Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Найти нужный COM Port 
:(
    Опции темы
кмс
Дата 7.9.2014, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 12.2.2009
Где: Казахстан

Репутация: 1
Всего: 2



Здравствуйте.
Есть устройство собранное на FT232RL. 
Подскажите как сделать что бы сразу софт открывал нужный порт к которому подключено устройство.
Перебирать все доступные порты и ждать пока устройство правильно ответит это долго и чем больше устройств подключено тем дольше.

Если для этого нужно переписать еепром ft232 или изменить VID-PID не проблема, изменю. Главное что бы точно определяло на каком порту сидит устройство.

PM MAIL   Вверх
kami
Дата 7.9.2014, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Цитата(кмс @  7.9.2014,  19:12 Найти цитируемый пост)
Перебирать все доступные порты и ждать пока устройство правильно ответит

Это, имхо, единственное правильное решение. COM-порт - это не Plug&Play.
Либо задавать в настройках своего приложения, либо перебирать. Можно гибридный метод - при первом запуске перебирать, а потом запомнить, на каком порту было найдено  устройство.
PM MAIL WWW   Вверх
кмс
Дата 7.9.2014, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 12.2.2009
Где: Казахстан

Репутация: 1
Всего: 2



Цитата(kami @  7.9.2014,  19:16 Найти цитируемый пост)
Можно гибридный метод - при первом запуске перебирать, а потом запомнить, на каком порту было найдено  устройство.

Наверное так и сделаю.

PM MAIL   Вверх
кмс
Дата 6.10.2014, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 12.2.2009
Где: Казахстан

Репутация: 1
Всего: 2



Сам отвечу на свой вопрос smile
Подключаем модули FTDIDll.pas и FTDITypes.pas. Это доделано/переделанный модуль от ftdi.
Записываем в FT232RL - Product Description что нужно, например - My Device, по этому названию и будем искать нужный порт.
Так же можно и по серийному номеру искать.
Ну а дальше просто
Код

var
  ftStatus: FT_Result;
  ftHandle: FT_Handle;
  lComPortNumber: LongInt;
..........

  ftStatus := FT_OpenEx(PAnsiChar('My Device'), FT_OPEN_BY_DESCRIPTION,
    @ftHandle);
  If ftStatus = FT_OK then 
    StatusBar1.Panels[0].Text := 'Порт Открыт'
  else
  begin
    StatusBar1.Panels[0].Text := 'Ошибка открытия порта';
    Exit;
  end;


  ftStatus := FT_GetComPortNumber(ftHandle, @lComPortNumber);
  If ftStatus = FT_OK then // Se OK.
    StatusBar1.Panels[0].Text := 'Порт COM' + IntToStr(lComPortNumber)
  else
  begin
   StatusBar1.Panels[0].Text := 'Номер порта не определен';
   Exit;
  end;

  FT_Close(ftHandle);



PS: от тут есть примеры как работать с модулями.
http://www.rogercom.com/CursoOnlineUSB/Mod...nicoAula019.htm 

Это сообщение отредактировал(а) кмс - 6.10.2014, 09:41

Присоединённый файл ( Кол-во скачиваний: 19 )
Присоединённый файл  ftdi.rar 12,44 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.