HPC.ru lite - Все форумы
Форум: Программирование для КПК
Тема: GPS данные
Страницы: [1] 2 3
[Ответить]
fiery-elf [13.02.2007 21:28] 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
igorekk [14.02.2007 10:29] :
Регулярным выражением в 1 строчку делается это.
Вот только не знаю, как с их поддержкой в VB.
sshd [14.02.2007 10:48] :
а что, по запятым пробежаться - не судьба?
там же их, как я понимаю - фиксированное количество.
fiery-elf [14.02.2007 19:19] :
я же не спец в vb!!!
и даже толком его не знаю. 
подскажи как разбить эту строчку по запятым (как значения засунуть в разделенные переменные)
sshd [14.02.2007 21:39] :
fiery-elf писал(а):
я же не спец в vb!!!
а причём здесь vb?
тут от языка требуется только, чтобы были функции получения длины строки, получения N-го символа из строки. а потом - в цикле искать запятые.
это в любом языке так (если конечно нет более удобных механизмов по типу regexp'ов или функций поиска символа/подстроки).
fiery-elf [14.02.2007 22:37] :
а строчку на vb не можешь написать?
пример раделяющий 3 значения в 3 переменные
а у строчки длинна разная в зависимости от сигнала (есть или нет)
sshd [15.02.2007 00:05] :
fiery-elf писал(а):
а у строчки длинна разная в зависимости от сигнала (есть или нет)
ну так приведи пример строчки для обоих случаев
kvv@home [15.02.2007 01:19] :
если по рабоче-крестьянски, то все можно сделать за один проход цикла, примерно так (vb под рукой нет, попробовал на VBA)
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 нужно еще CRC проверять, а то правильность данных не гарантируется. Части данных тоже может не быть, но количество запятых должно быть одинаковым, так что парситься параметры должны в любом случае.
Кстати, а почему GPRMC ? Если вам нужны только координаты, то достаточно парсить GPGGA или даже GPGLL, их парсить еще проще.
fiery-elf [16.02.2007 12:00] :
Огромное тебе спасибо!
GPLL данных в коде nmea я не нашол (hp nw6515d) А говориш GPGGA проще? там не надо проверять CRC?
Какие еще параметры присутствуют там кроме времяни, координат и высоты?
заранее спасибо.
да и немного не в тему:
как в vb обрезать переменную например до 45 символов, отрезав все послеидущие символы.
sshd [16.02.2007 13:08] :
fiery-elf писал(а):
как в vb обрезать переменную например до 45 символов, отрезав все послеидущие символы
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbenlr98/html/vafctLeft.asp
[Ответить]
[Вперед >]