(0002646)
|
ELITE
|
25-05-2011 06:37
|
|
был, и работал, и даже с ГАРМИНОМ (если в гармите в настройке передачи данных поставить протокол не гармин а изо (ну или по другому может обзываться, но не родной гарминовский)
проверено на стрит рейсинг 3 (который 3 а не i3, более старый и амерекос) |
|
(0004167)
|
vasketsov
|
23-10-2011 12:57
(edited on: 23-10-2011 12:59) |
|
Сделаю для COM, только имхо достаточно без проверки похожести данных (с этим есть техническая проблема, см. ниже сноску), лишь был данные читались. С некоторыми опциями для ограничения количества проверяемых портов. И без прогрессбаров, ибо автоопределение порта вполне может быть частью процедуры подключения.
Кстати, и вовсе не 256 портов надо просматривать, а на порядок меньше, а то и вообще несколько штук. А скорость проверки по большому счёту не зависит от этого количества, ибо проверять по одному порту некошерно, можно сразу назапускать потоков по числу портов, всё равно через полторы секунды они все умрут.
*) При чтении из ком-порта устанавливается таймаут. Если не вдаваться в подробности, то процедура чтения вернётся не позже этого таймаута. Но никто не гарантирует, что буфер будет заполнен полностью корректным текстом в соответствии со спецификацией nmea. В случае небольших таймаутов ситуация простая: чем больше таймаут, тем больше вероятность найти нормальную команду nmea в прочитанном буфере. В итоге для проверки в худшем случае может потребоваться не одна-полторы секунды (ибо из ком-портов в системе при отсутствии подключённого оборудования ничего не сыплется), а минимум три-четыре. Оно надо? Ну если реально надо - то разве что как опция. Либо читаем хоть что-то за полторы секунды, либо ждём 5 секунд и ищем хотя бы одну нормальную команду (впрочем, это тоже не гарантирует, что это gps-приёмник). Но имхо баловство это, порты и так эксклюзивно открываются, чужой используемый не получится открыть.
|
|