Помня что лучший отдых это смена рода занятия, сбацал вчера вечером одну программку. Бацал на старом древнем Borland C++ Builder 6.0, заодно хоть немного вспомнил как под ним программировать. А то последний раз я на сях кодил году эдак в 2002-м. Правда, потом под FreeBSD демона учёта телефонных звонков с АТС писал, но там совсем уж элементарное было.
Короче, для пробколёта понадобилось отслеживание местоположения машины. Принцип вырисовался общеизвестный: в машине стоит ноут к которому веб-камера подключена. Ноут выходит в инет через Йоту, транслирует картинку с камеры. Ещё к ноуту подключен блютусный приёмник GPS. Софтинка на ноуте читает географические координаты (в формате NMEA) с приёмника GPS, преобразует их в гугловские координаты и отсылает через инет на сервер. На сервере принимающая софтинка получает координаты и пишет в базу данных. Помимо координат можно передавать ещё и время получения координат, высоту над уровнем моря и т.д. Короче, всю ту информацию которую можно вычленить из строк NMEA. Далее, скрипт на страничке с гуглокартой с какой-то периодичностью проверяет, появились ли новые координаты. Если появились - двигает иконку по карте в нужную позицию.
Короче, всё просто. Только вот нужна буферизация координат, на случай если в текущий момент нет связи с сервером.
Полез искать программы, которые могут получать с GPS и передавать куда-то в инет координаты. Оказалось что есть такие, но они либо работают только со своим сервером, либо не подходят по реализации - передают используя UDP. А мне лишний демон на сервак вешать очень не хоцца.
Вот и получился очередной велосипед. Моя программулька, гордо именуемая Gol's tracker client v.0.0.1 уже читает инфу с жэпээсины через виртуальный COM-порт. Обрабатывает их и шлёт на сервак. Причём шлёт обычным коннектом на веб-страничку, координаты передаёт как RAW_POST_DATA. Т.е. на веб-сервере лежит PHP-скриптик который и вызывается программкой как обычный URL. Буферизации данных пока нифига нет, если инет пропал то координаты не передаются и пропадают.
Вот чем хорошо изобретение велосипедов - тем что пока мастеришь, что-то новенькое изучаешь. Я вот теперь разобрался с NMEA, научился его строки разбирать. Даж контрольная сумма проверяется :-)
На скриншоте координаты неопределены ибо у меня ща GPS валяется на подоконнике и нифига спутники ловить не хочет. Как поймает - выложу ещё скриншотик.
Вот он, кстати.
Минусы очевидны - протокол TCP более накладней, чем UDP. Зато сразу есть подтверждение отправки координат. И нам пофиг на трафик, ибо у йоты скорость ништяк и анлим :-) Удобство налицо - принимать и обрабатывать координаты могёт любой обычный веб-скриптик, а не специально запущенный демон.
Работает софтинка пока только под обычной виндой (проверял на семёрке и на XP). Но проблем с портированием на Windows Mobile, думаю, быть не должно. Исходники сюда выложу на днях, мож кому пригодятся.
Кстати, визуализация принятых координат - вот тут. Щас там Храм Христа Спасателя фигурирует, эт я сегодня катался, тестил. Но об этом позже напишу.
2 Гость: Оно глючило конкретно, так что не выкладывал. А потом вообще на него забил и исходники куда-то прое..лись. Оно и к лучшему ибо совсем шайтан-сурцы были.
SysCat Среда, 24 Февраля, 2010 10:58 цитировать ссылка на коммент
Гость Среда, 19 Мая, 2010 10:05 цитировать ссылка на коммент
Исходники бы пригодились)
Гость Среда, 12 Марта, 2014 10:14 цитировать ссылка на коммент
Gol Четверг, 13 Марта, 2014 11:19 цитировать ссылка на коммент
Оно глючило конкретно, так что не выкладывал. А потом вообще на него забил и исходники куда-то прое..лись. Оно и к лучшему ибо совсем шайтан-сурцы были.