С моей точки зрения намного проще читать последовательный порт (в моем случае COM5, скорость передачи данных 4800) и анализировать полученные данные. (как разобрать строку можно узнать через гугл и фразу: gps NMEA предложения)
Для меня невозможно понять пример по адресу:
C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS
Это все так сложно и просто. Я ожидал бы намного более легкий и полезный интерфейс как:
myGps = new GPS()
myGPS.getPosition
Но это, вероятно, невозможно: (
А как это сделать через RS232? (я работаю в VB.NET)
В GUI (или программно) создайте объект System.IO.Ports.SerialPort и используйте его событие DataReceived. Всякий раз, когда данные поступают с GPS, это событие происходит, и в его теле вы можете обработать его.
Данные представлены в виде длинной строки, разделенной на секции $ GPGGA, $ GPGSA и т. Д. Важным является $ GPGGA. Каждая конкретная информация отделяется запятой. Чем только вы анализируете эту строку - в VB.net используя: myArray = myData.Split ("," c).
http://aprs.gids.nl/nmea/
PS: "," c означает, что запятая представляет собой символ, а не строку (VB.NET)
Как видите, не нужно писать больше нескольких строк кода. Пример от MS неоправданно сложен и не для начинающих.
PS2: обратите внимание, что вы не отправляете никаких команд в GPS. Он автоматически и периодически отправляет данные в вашу программу. Вы просто открываете порт, считываете все данные из буфера, конвертируете их в строку с помощью Chr () и анализируете ее. Ничего страшного.