GPS данные
GPS данные
Я не спец в програмировании, но все мне известне софтины GPS е подходят!!!
Нужна растровая, очень точная (дабы у 6515 точность есть...) навигация.
вот и решил сам... как нибудь...
натолкнуися на беду:
<<<$GPRMC,164158.20,A,5313.731694,N,05011.466474,E,005.8,118.0,130207,,*30>>>
как из этой строки выдернуть "5313.731694,N" и "05011.466474,E" не зная их значений!!!
помогите!!! я на vb писать пытаюсь...
Да и кстати, есть ли activeX для ЖПС на 6500
Нужна растровая, очень точная (дабы у 6515 точность есть...) навигация.
вот и решил сам... как нибудь...
натолкнуися на беду:
<<<$GPRMC,164158.20,A,5313.731694,N,05011.466474,E,005.8,118.0,130207,,*30>>>
как из этой строки выдернуть "5313.731694,N" и "05011.466474,E" не зная их значений!!!
помогите!!! я на vb писать пытаюсь...
Да и кстати, есть ли activeX для ЖПС на 6500
а причём здесь vb?fiery-elf писал(а):я же не спец в vb!!!
тут от языка требуется только, чтобы были функции получения длины строки, получения N-го символа из строки. а потом - в цикле искать запятые.
это в любом языке так (если конечно нет более удобных механизмов по типу regexp'ов или функций поиска символа/подстроки).
Samsung GT-S8500 + MicroSD 8Gb
если по рабоче-крестьянски, то все можно сделать за один проход цикла, примерно так (vb под рукой нет, попробовал на VBA)
Да, по описанию протокола, в команде GPRMC нужно еще CRC проверять, а то правильность данных не гарантируется. Части данных тоже может не быть, но количество запятых должно быть одинаковым, так что парситься параметры должны в любом случае.
Кстати, а почему GPRMC ? Если вам нужны только координаты, то достаточно парсить GPGGA или даже GPGLL, их парсить еще проще.
Код: Выделить всё
Dim GPSS As String ' входные данные
Dim Param0 As String ' время по гринвичу
Dim Param1 As String ' широта градусы
Dim Param2 As String ' север/юг
Dim Param3 As String ' долгота
Dim Param4 As String ' запад/восток
Param0 = ""
Param1 = ""
Param2 = ""
Param3 = ""
Param4 = ""
Word = 0 ' счетчик слов
GPSS = "<<<$GPRMC,164158.20,A,5313.731694,N,05011.466474,E,005.8,118.0,130207,,*30>>>"
For i = 1 To Len(GPSS)
If GPSS(i) = "," Then ' следующее слово
Word = Word + 1
Else
Select Case Word
Case 1: Param0 = Param0 + GPSS(i)
Case 3: Param1 = Param1 + GPSS(i)
Case 4: Param2 = Param2 + GPSS(i)
Case 5: Param3 = Param3 + GPSS(i)
Case 6: Param4 = Param4 + GPSS(i)
End Select
End If
Next i
Кстати, а почему GPRMC ? Если вам нужны только координаты, то достаточно парсить GPGGA или даже GPGLL, их парсить еще проще.
kvv
Огромное тебе спасибо!
GPLL данных в коде nmea я не нашол (hp nw6515d) А говориш GPGGA проще? там не надо проверять CRC?
Какие еще параметры присутствуют там кроме времяни, координат и высоты?
заранее спасибо.
да и немного не в тему:
как в vb обрезать переменную например до 45 символов, отрезав все послеидущие символы.
GPLL данных в коде nmea я не нашол (hp nw6515d) А говориш GPGGA проще? там не надо проверять CRC?
Какие еще параметры присутствуют там кроме времяни, координат и высоты?
заранее спасибо.
да и немного не в тему:
как в vb обрезать переменную например до 45 символов, отрезав все послеидущие символы.
http://msdn.microsoft.com/library/defau ... ctLeft.aspfiery-elf писал(а):как в vb обрезать переменную например до 45 символов, отрезав все послеидущие символы
Samsung GT-S8500 + MicroSD 8Gb
sshd все конечно хорошо, но я с кпк в интернет выхожу(страница нормально не отображается) и ничего там не понял. точно знаю что както можно ограничить размер при обьяавлени переменной типо:
dim xxx as string (и чето еше дожно следовать)
если в такую переменную засунуть значение длиннее: xxx = textbox1.text
то значение в xxx будет отрезанно по нужные символы.
dim xxx as string (и чето еше дожно следовать)
если в такую переменную засунуть значение длиннее: xxx = textbox1.text
то значение в xxx будет отрезанно по нужные символы.
Вот тут описание протокла например:fiery-elf писал(а):GPLL данных в коде nmea я не нашол (hp nw6515d) А говориш GPGGA проще? там не надо проверять CRC?
Какие еще параметры присутствуют там кроме времяни, координат и высоты?
http://www.navgeocom.ru/support/nmea/index.htm
Вообще в GPGGA много всякого интересного, но CRC можно пне проверять, в GPGLL вообще только время и координаты местоположения - парсится проще.
kvv
Функция Left оставляет символы слеваfiery-elf писал(а):А как обрезать(обьявить урезанную) переменную на бейсике не знаешь?
Код: Выделить всё
Dim Str1, Str2
Str1 = "1234567890"
Str2 = Left(Str1, 5) ' Str2 равно "12345"
Код: Выделить всё
Dim Str1, Str2
Str1 = "1234567890"
Str2 = Right(Str1, 5) ' Str2 равно "67890"
Есть еще функция Mid, делает и то и другое сразу =)
kvv
в vb раньше это делалось так:
dim name as string *45
создание переменной типа string длинной 45 символов.
я сделал немного не так:
mame = name(0) + name(1) + name(2) +...
а на счет формата карты можеш посоветовать(jpg при разрешении 1500\1500 это предел памяти кпк). мне понравился gig (gig navigator) но декодировать его я не знаю.
dim name as string *45
создание переменной типа string длинной 45 символов.
я сделал немного не так:
mame = name(0) + name(1) + name(2) +...
а на счет формата карты можеш посоветовать(jpg при разрешении 1500\1500 это предел памяти кпк). мне понравился gig (gig navigator) но декодировать его я не знаю.