Notes |
|
|
А вы не пробовали подождать секунд 20-30? Кнопка становится доступной после того как компонент, использующийся для работы с GPS модулем рапортует что отключился. И он иногда тупит. Еще можете попробовать воспользоваться GPSGate, очень полезная штука.
В любом случае нужно больше подробностей. А на то в ответ на эту запись все что я могу сказать: "У меня все работает ищите проблему у себя" |
|
|
|
Подробности: если после загрузки программы один раз нажать эту кнопку, причём независимо от того, подключен приёмник к компьютеру или нет, то сразу же эта кнопка становится неактивной, то есть повторно её нажать невозможно. Допустим, приёмник подключен, и программа его "поймала". Тогда до тех пор, пока мы едем и пишем трек, всё нормально. Но если нам понадобилось отключить приёмник, то сделать этого мы не сможем, пока не закроем программу. А если приёмник не был подключен, например, мы случайно нажали кнопку, а разъём воткнуть забыли, то уже и подключить приёмник мы не сможем. |
|
|
|
Более углублённые эксперименты показали, что если открыть свежеустановленную программу, то в поле номера COM порта приёмника будет COM0. Такого порта в компьютере нет, и сообщение о невозможности открыть порт не появляется, а кнопка просто становится неактивной. Но если установить нормальный номер порта, то всё меняется, что характерно, в лучшую сторону. При подключенном приёмнике мне не удалось ни разу сделать кнопку неактивной, а при отключенном - кнопка становится неактивной на пару секунд, что вполне нормально.
Следует заметить, что этот инцидент я создал на основе сообщения не помню кого в блоге, причём из этого сообщения следовало, что этот человек пользовался программой при движении (стало быть, приёмник у него был подключен). (Кстати, там же упоминалось о пропадании трека с экрана, но проверить это сейчас не могу, поэтому не писал об этом.) А проверял я это на домашнем компе без приёмника, так что милль пардон! Может, выдавать какое-либо сообщение об отсутствии данного порта в системе?
PS Лучше перебдеть, чем недобдеть. |
|
|
|
На самом деле, скорее всего, COM0 у вас на компьютере таки есть, но к нему ничего не подключено. При попытке подключиться к нему компонент просто будет ждать ответа и не получив его отвалиться по таймауту, а таймаут там стоит по-умолчанию 300 секунд. Проверьте. |
|
|
|
Время ожидания посылок установил 5 секунд.
Как только указываешь любой другой порт, COM0 из выпадающего списка пропадает. Если прописать его принудительно, то при нажатии кнопки она безвозвратно сереет. То есть таймаут не работает.
Поведение программы при выборе иных, чем COM0, портов зависит от того, существует выбранный порт в системе или нет.
Например, у меня в системе отсутствует порт COM1, но в списке он есть. Выбрав его, сразу же получаем ошибку открытия порта. Это правильно.
Порт COM2 у меня в системе есть. Выбрав его, получаем открытие порта. Но посылок там нет, и через 5 сек выдаётся сообщение об ошибке коммуникации. Это тоже правильно.
Таким образом, лишь при указании порта COM0 поведение кнопки не совсем адекватно. |
|
|
|
Ошибка была в COM0, которого быть не должно. Допустимы значения от 1 до 255 |
|