How do I discern Maidenhead Locator from GPS lat long info.


Closed Thread
Results 1 to 40 of 126

Hybrid View

  1. #1
    Join Date
    Oct 2010
    Posts
    413

    Default Re: How do I discern Maidenhead Locator from GPS lat long info.

    I have updated a little bit the code so when there is a no data at portb.0 to have a notice.

    but still i need to fix the following. Is there any advise?

    1. Cannot display the DATE. Something is wrong at my code and there is not proper display of the date.
    2. I have put a loop for display all the factors, because i need to clear the LCD every time something is change. So please could you help me understand how could i manage to display the factors and only change on the fly the ones really going like Time, LAT, LON, GND SPEED, SATs etc.
    3. The Protocol command is not working
    4. The speed is not working properly, i think i need to do better the conversion
    5. The meters are not displaying, there is a wrong value in there.
    6. I need to convert the measurements from the NMEA message LAT and LON to google numbers.


    Code:
    '*  Author  : LEONARDO BILALIS                                  *
    '*  Notice  : Copyright (c) 2018 [LEONARDOS BILALIS]            *
    '*          : All Rights Reserved                               *
    '*  Date    : 12/5/2018                                         *
    '*  Version : 1.0                                               *
    '*  Notes   : This is an GPS                with ulcd           * 
    '*          :                                                   *
    '****************************************************************
    
    @ ERRORLEVEL -306 ; this command prevents the compiler to give you a notice of
                      ; crossing page boundary - make sure bits are set 
    
    ;& __config _HS_OSC & _WDT_ON & _LVP_OFF & _CP_OFF
    
    Include "MODEDEFS.BAS"
    DEFINE OSC 8    
    OSCCON=%01111000     '8 Mhz
    CMCON = 7            'turn comparators off
    ANSEL = 0            'All digital
    PORTB = 0            'make low all ports at B range
    input portb.0        'make input portb.0
    
    
    '----------------------------------------------------------------------------/
    '                              [ PIC Variables ]                            /  
    '--------------------------------------------------------------------------/
    
    PWRLED      var     PORTb.1   ; this shows that the initialization is finished
    LCD         var     PORTb.2   ; to LCD operation
    GPS_TX      var     PORTb.0   ; info from GPS 
    GPS_RX      var     PORTb.4   ; COMMANDS TO GPS
    Testled     var     PORTb.5 
    dots        var     byte
    dots=8
    countremain var     byte      ; we use a countremain to check the incoming from portb.0  
    pause 1000
    
    ' --------------------[ GPS Variables for NMEA sentenses ]---------------------/
    '                                                                             /
    '   $GPRMC,090045.000,A,3823.6645,N,02353.3600,E,0.02,195.80,170518,,,A*62   /
    '   $GNGGA,140405.000,3823.6010,N,02353.3054,E,1,9,0.88,0.8,M,35.9,M,,*40   /
    '                                                                          /
    '-------------------------------------------------------------------------/
    
    hh          var     byte    'hours
    mm          var     byte    'minutes
    ss          var     byte    'seconds  
    sss         var     word    'milisecs
    degrees		VAR     BYTE	'latitude/longitude degrees
    minutes		VAR		BYTE	'latitude/Longitude minutes
    minutesD	VAR		word	'latitude/LONGITUDE DECIMAL MINUTES
    dir       	VAR     BYTE   	' direction (latitude: 0 = N, 1 = S / longitude: 0 = E, 1 = W)
    degrees2	VAR     BYTE	'latitude/longitude degrees
    minutes2	VAR		BYTE	'latitude/Longitude minutes
    minutesD2	VAR		word	'latitude/LONGITUDE DECIMAL MINUTES
    dir2        var     byte    ;direction (latitude: 0 = N, 1 = S / longitude: 0 = E, 1 = W)
    SatNo   	VAR		BYTE	'number of satellites connected
    knots       var     word    'speed over ground
    knots2      var     byte    'speed over ground
    course      var     word    'course
    course2     var     byte    'course
    day         var     byte    'day
    month       var     byte    'month
    year        var     byte    'year
    i           var     word    
    GNRMC       var     word    'protocol
    GNGGA       var     WORD    'protocol
    FIX         var     word    'fix sat V/A
    Modefix     var     byte    'mode fix 1 or 2 or 3 depens
    horizon     var     byte
    precision   var     byte
    meter       var     byte
    METERS      var     byte
    Meters2     var     byte
    
    ' -------------------------------------------------------------------------/  
    '                          [ LCD Initialization ]                         /
    '------------------------------------------------------------------------/
    
    serout2 LCD,32,[$55]      ' uOLED Initialize
    pause 2000
    serout2 lcd,32,[$56,$01]
    pause 1000
    serout2 lcd,32,[$45]      ' clear the lcd
    pause 500
    serout2 lcd,32,[$55]
    pause 500
    serout2 lcd,32,[$45]      ' clesr the lcd
    pause 500
    serout2 lcd,32,[$73,$00,$03,$11,$ff,$ff," Leonardo Bilalis",$00]
    pause 200                       
    serout2 lcd,32,[$73,$02,$06,$10,$ff,"     Copyright 2018",$00]
    pause 3000
    serout2 lcd,32,[$45]
    pause 1000
    serout2 lcd,32,[$73,$02,$06,$10,$ff,$ff,"      GPS.........",$00]
    pause 500
    serout2 lcd,32,[$45]
    pause 200
    
    '----------------------------------------------------------------------/
    '     [ After the lcd initialization we power the Led at PIC ]        /
    '--------------------------------------------------------------------/
    
    HIGH pwrled
    
    '-------------------------------------------------------------------/
    '                         [MAIN Program]                           /
    '-----------------------------------------------------------------/
    
    Main: 
    ;gosub clearlcd
    
    serin2 gps_tx,84,[countremain]      ; we check what is coming from the port
    if countremain = 0 then lostcable   ; if nothing is coming the we check the cable
    
    ;gosub clearlcd
    '-------------------------------------------------------------------------------/
    '                                                                              /
    '                    [ Example NMEA Sentense of GNRMC ]                       /
    ' [$GNRMC,090045.000,A,3823.6645,N,02353.3600,E,0.02,195.80,170518,,,A*62]   /
    '                                                                           /
    '--------------------------------------------------------------------------/
    
    serin2 gps_tx,84,[wait("$GNRMC"),_                              ;we wait for $GNRMC
    wait(","),dec2 hh,dec2 mm,dec2 ss,wait("."),dec3 sss,_          ;we wait for 090045.000
    wait(","),fix,_                                                 ;we wait for A
    wait(","),dec2 degrees,dec2 minutes,wait("."),dec4 minutesd,_   ;we wait for 3823.6645
    wait(","),dir,_                                                 ;we wait for N 
    wait(","),dec3 degrees2,dec2 minutes2,wait("."),dec4 minutesd2,_;we wait for 02353.3600
    wait(","),dir2,_                                                ;we wait for E
    wait(","),dec knots,wait("."),dec2 knots2,_                     ;we wait for 0.02
    wait(","),dec3 course,wait("."),_                               ;we wait for 195.80
    wait(","),dec2 day,dec2 month,dec2 year]                        ;we wait for 170518
    
    pause 100
    
    '------------------------------------------------------------------------------/
    '                                                                             /
    '                     [ Example NMEA Sentense of GNGGA ]                     /
    ' [$GNGGA,140405.000,3823.6010,N,02353.3054,E,1,9,0.88,0.8,M,35.9,M,,*40    /           
    '                                                                          /
    '-------------------------------------------------------------------------/
    
    serin2 gps_tx,84,[wait("$GNGGA"),_
    wait(","),dec2 hh,dec2 mm,dec2 ss,wait("."),dec3 sss,_ 
    wait(","),dec2 degrees,dec2 minutes,wait("."),dec4 minutesd,_ 
    wait(","),dir,_
    wait(","),dec3 degrees2,dec2 minutes2,wait("."),dec4 minutesd2,_
    wait(","),dir2,_
    wait(","),modefix,_
    wait(","),dec2 satno,_
    wait(","),dec3 horizon,dec precision,_
    wait(","),meter,dec2 METERS,dec Meters2]
    
    pause 100
    
    
    '---------------------------------------------------------------------------------/
    ' Here if the GPS module havent been fixed to any satellite will jump to notfix  /
    '-------------------------------------------------------------------------------/
    
    if fix = "V" then notfix                                                        
    pause 100
    
    '-----------------------------------------------------------------------------/
    '                           [ Return from notfix ]                           /
    '                   [ We clear any character on the display ]               /
    '--------------------------------------------------------------------------/
    
    gosub clearlcd
    ;serout2 lcd,32,[$45]
    ;pause 500
    
    
    '--------------------------------------------------------------------------/
    ' here is where the code dispays the stored info from the NMEA sentenses  /
    '------------------------------------------------------------------------/
    
    serout2 lcd,32,[$73,$03,$00,$00,$ff,$ff,"Protocol:",dec5 GNRMC,$00]
    pause 100
    serout2 lcd,32,[$73,$00,$02,$00,$ff,$ff,"Date:",dec2 day,dec2 month,dec2 year,$00]
    pause 100
    serout2 lcd,32,[$73,$00,$04,$00,$ff,$ff,"TIME: ",dec2 hh+3," :",dec2 mm," :",dec2 ss,$00]
    pause 100
    serout2 lcd,32,[$73,$00,$06,$00,$ff,$ff,"Satellites:",dec2 satno," ","Fixed:",fix,$00]
    pause 100
    serout2 lcd,32,[$73,$00,$08,$00,$ff,$ff,"Lat : ",dec2 degrees,dec2 minutes,".",dec4 minutesd," ",dir,$00]
    pause 100
    serout2 lcd,32,[$73,$00,$0A,$00,$ff,$ff,"Lon : ",dec3 degrees2,dec2 minutes2,".",dec4 minutesd2," ",dir2,$00]
    pause 100
    ;serout2 lcd,32,[$73,$00,$0C,$00,$ff,$ff,"GND SPEED : ",(dec knots,".",dec2 knots2)*/1.852,$00]
    ;pause 200
    serout2 lcd,32,[$73,$00,$0E,$00,$ff,$ff,"Meters : ",dec2 METERS,dec Meters2,$00]
    pause 3000
    serout2 lcd,32,[$45]  ' clears the LCD 
    pause 100
    
            goto main
    
    '-----------------------------------------------------------------------------/
    '                              [ SUB ROUTINES ]                              /
    '---------------------------------------------------------------------------/
    
    notfix:     ' Still looking for fixed signal
     
    serout2 lcd,32,[$73,$00,$03,$11,$ff,$ff,"   Waiting for GPS",$00]
    pause 100
    serout2 lcd,32,[$73,$03,$06,$10,$ff," Time:",dec2 hh+3," :",dec2 mm," :",dec2 ss,$00]
    pause 1000
    serout2 lcd,32,[$73,$03,$08,$10,$ff,rep "."\dots,$00]
    pause 200
    serout2 lcd,32,[$45]  ' clears the LCD 
    pause 100
    
    goto main       'returns to main
    
    lostcable:
    serout2 lcd,32,[$73,$00,$03,$11,$ff,$ff,"   Connection lost",$00]
    pause 100
    serout2 lcd,32,[$73,$01,$06,$10,$ff,"   Please check cable",$00]
    pause 2000
    serout2 lcd,32,[$45]  ' clears the LCD 
    pause 100
    
    goto main
    
    '---------------------------------------------------------------------------/
    '                              [ CLEAR LCD ]                               /
    '-------------------------------------------------------------------------/
    
    Clearlcd:
    serout2 lcd,32,[$45]
    pause 100
    RETURN
    Last edited by astanapane; - 20th May 2018 at 18:38.

  2. #2
    Join Date
    May 2013
    Location
    australia
    Posts
    2,680

    Default Re: How do I discern Maidenhead Locator from GPS lat long info.

    first off , what has your post got to do with maidenhead ? why not start a new relevant post instead of confusing this one

    secondly posting figures as pictures makes life difficult for anyone inclined to assist


    in you google numbers query (which is really deg ,min, sec conversion to decimal degrees )

    how did you get 38 + 2/60 + 3.49/3600 = 38.034297

    my calculator says 38.0343027 ps (in 32 bit float result is 38.0343018, with 64 bit float 38.0343028)done on pic24f using xc16

    you will have fun trying to get math accurate to 10 significant digits on that chip [even 32 bit floats struggle]
    your best bet is nbit math

    the decimal portion can be :-
    mins *1000000/6 + sec *1000/36

    parsing the nmea sentences is well covered but you may be interested in this

    http://support.melabs.com/forum/picb...strtok-usercmd

    a strtok function for pbp

    parsing strings with spaghetti code will always by a shortcut to madness
    Last edited by richard; - 21st May 2018 at 11:13.
    Warning I'm not a teacher

  3. #3
    Join Date
    Oct 2010
    Posts
    413

    Default Re: How do I discern Maidenhead Locator from GPS lat long info.

    Hi richard,

    1) i did post in here because i was planning to do that conversion as well on next step. But i cant simply display the date, so my knowledge wont be able to do any further

    2) pictures i believe always help.

    3) you are right on the calculation 38.0343027. I did something wrong in there.

    4) if Parsing NMEA is ok then why Date is not displaying right? I will check once again what i have done on the code.

    5) i will check the link and the strtok. But i find easier the way i did it because i understand it.

    as i said im not a programmer. This code might be simple for you, but is too much for me. I try to do things stwp by step on this code. There are lots of bugs and mistakes which at the moment cant solve.

    i found a small mistake on the first parsing code. i have forgot a sentence which may cause the problem displaying date.

    Will keep you update.

  4. #4
    Join Date
    Oct 2010
    Posts
    413

    Default Re: How do I discern Maidenhead Locator from GPS lat long info.

    i though i found the mistake on the first code for parsing

    Code:
    '                                                                              /
    '                    [ Example NMEA Sentense of GNRMC ]                       /
    ' [$GNRMC,090045.000,A,3823.6645,N,02353.3600,E,0.02,195.80,170518,,,A*62]   /
    '                                                                           /
    '--------------------------------------------------------------------------/
    
    serin2 gps_tx,84,[wait("$GNRMC"),_                              ;we wait for $GNRMC
    wait(","),dec2 hh,dec2 mm,dec2 ss,wait("."),dec3 sss,_          ;we wait for 090045.000
    wait(","),fix,_                                                 ;we wait for A
    wait(","),dec2 degrees,dec2 minutes,wait("."),dec4 minutesd,_   ;we wait for 3823.6645
    wait(","),dir,_                                                 ;we wait for N 
    wait(","),dec3 degrees2,dec2 minutes2,wait("."),dec4 minutesd2,_;we wait for 02353.3600
    wait(","),dir2,_                                                ;we wait for E
    wait(","),dec knots,wait("."),dec2 knots2,_                     ;we wait for 0.02
    wait(","),dec3 course,wait("."),_                               ;we wait for 195.80
    wait(","),dec2 day,dec2 month,dec2 year]                        ;we wait for 170518
    
    pause 100
    i did complete the sentense

    Code:
    wait(","),dec3 course,wait("."),dec2 course2,_                  ;we wait for 195.80
    but still next line which is the date is not dispayed right.

  5. #5
    Join Date
    Oct 2010
    Posts
    413

    Default Re: How do I discern Maidenhead Locator from GPS lat long info.

    ok the date is displayed. But sometimes it looks like that missing the date code and displays 00/here a 2 digit number/00, then it comes back to the right date.

  6. #6
    Join Date
    May 2013
    Location
    australia
    Posts
    2,680

    Default Re: How do I discern Maidenhead Locator from GPS lat long info.

    this is how I would go about parsing nmea, for what you are doing there is little point in storing all the data just to display it
    only store what is needed for calculations or enhanced display.
    I would also read in the entire nmea sentence using $ ast the start marker and * as the end marker.
    when you have a complete sentence send it off for parsing if its the correct sentence type



    Code:
     '****************************************************************
    '*  Name    : NOKIA_DEMO.PBP                                     *
    '*  Author  : richard                                            *
    '*  Notice  :                                                    *
    '*          :                                                    *
    '*  Date    : 16/5/2018                                          *
    '*  Version :  mssp1 version  with bigtxt                        *
    '*  Notes   :                                                    *
    '*          :FOR pic 16F1847@32MHZ           NOKIA               *
    '****************************************************************
    #CONFIG ; 16FF1847.
            __config _CONFIG1, _FOSC_INTOSC & _WDTE_ON & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _BOREN_OFF
            __config _CONFIG2, _PLLEN_OFF & _LVP_OFF
    #ENDCONFIG
    define      OSC         32
     
    ; --- *** Oscillator  *** ---------------------------------------------------
    OSCCON = %11110000           ;32 MHz, 
    ANSELb = 0
    ANSELA = 0
    TRISA=%10010000
    TRISB=%11101011
    ch var byte
    BUFF VAR BYTE [16]
     ;DEFINES FOR DISPLAY   use   font7x5_16.bas   or  font7x5_18.bas     for pic18
     #DEFINE PIC16 1            
     #define use_mssp 1
     lcdheight con 5      ;  6 PAGES   
     lcdwidth  con 83     ; 84 PIXELS WIDE
    ' LCD_CLK     var     LATB.4       ' SCK1     pin needs to be set as dig o/p
    ' LCD_DIN     var     LATB.2       ' SDO1     pin needs to be set as dig o/p
     LCD_RST     var     LATA.4 
     LCD_DC      var     LATA.3
     LCD_CE      var     LATA.6
     LCD_LIGHT   var     LATA.0
    nmea var byte[80]
    h var byte
    m var byte
    s var byte
    Include "nokia_ds.INC"  ' bring it in
    include "font7x5_16.bas"
    @ #DEFINE   TOKEN_DESTROY 1
    include "strtok.pbpmod"
    '==========================    MAIN  Routine    ==============================
        gosub lcd_init
        LCDCLR
        ARRAYWRITE BUFF,["READY",0]
        LCDSTR  5,0,BUFF 
        PAUSE 1000
        LCDCLR
      
    looper:
    'start=$ end=*
    arraywrite nmea,["GNRMC,090045.000,A,3823.6645,N,02353.3600,E,0.02,195.80,170518,,,A",0] 
    ;STRLEN nmea
    strtok nmea,0,","
    LCDSTR  0,0,nmea    ;sentence type
    strtok nmea
    ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),dec2 h,dec2 m,dec2 s]
    arraywrite buff,[dec2 h,":",dec2 m,":",dec2 s,0]
    LCDSTR  36,0,BUFF 
    strtok nmea ;fix
    strtok nmea ;fix
    arraywrite buff,["lon",0]
    LCDSTR  0,1,BUFF 
    ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),str buff\16] 
    LCDSTR 20,1,buff 
    strtok nmea
    ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),str buff\16] 
    LCDSTR 77,1,buff 
    strtok nmea
    arraywrite buff,["lt",0]
    LCDSTR  0,2,BUFF 
    ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),str buff\16] 
    LCDSTR 13,2,buff 
    strtok nmea
    ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),str buff\16] 
    LCDSTR 77,2,buff 
    strtok nmea
    arraywrite buff,["speed",0]
    LCDSTR  0,3,BUFF
    ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),str buff\16] 
    LCDSTR 36,3,buff  
    strtok nmea
    arraywrite buff,["hdg",0]
    LCDSTR  0,4,BUFF
    ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),str buff\16] 
    LCDSTR 36,4,buff 
    strtok nmea
    ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),dec2 h,dec2 m,dec2 s]
    arraywrite buff,[dec2 h,"/",dec2 m,"/",dec2 s,0]
    LCDSTR  36,5,BUFF 
      
       
        
    END
    Attached Images Attached Images  
    Warning I'm not a teacher

  7. #7
    Join Date
    May 2013
    Location
    australia
    Posts
    2,680

    Default Re: How do I discern Maidenhead Locator from GPS lat long info.

    and to emphasize the advantage of an algorithmic approach over spaghetti code


    Code:
     '****************************************************************
    '*  Name    : NOKIA_DEMO.PBP                                     *
    '*  Author  : richard                                            *
    '*  Notice  :                                                    *
    '*          :                                                    *
    '*  Date    : 16/5/2018                                          *
    '*  Version :  mssp1 version  with bigtxt                        *
    '*  Notes   :                                                    *
    '*          :FOR pic 16F1847@32MHZ           NOKIA               *
    '****************************************************************
    #CONFIG ; 16FF1847.
            __config _CONFIG1, _FOSC_INTOSC & _WDTE_ON & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _BOREN_OFF
            __config _CONFIG2, _PLLEN_OFF & _LVP_OFF
    #ENDCONFIG
    define      OSC         32
     
    ; --- *** Oscillator  *** ---------------------------------------------------
    OSCCON = %11110000           ;32 MHz, 
    ANSELb = 0
    ANSELA = 0
    TRISA=%10010000
    TRISB=%11101011
    ch var byte
    BUFF VAR BYTE [16]
     ;DEFINES FOR DISPLAY   use   font7x5_16.bas   or  font7x5_18.bas     for pic18
     #DEFINE PIC16 1            
     #define use_mssp 1
     lcdheight con 5      ;  6 PAGES   
     lcdwidth  con 83     ; 84 PIXELS WIDE
    ' LCD_CLK     var     LATB.4       ' SCK1     pin needs to be set as dig o/p
    ' LCD_DIN     var     LATB.2       ' SDO1     pin needs to be set as dig o/p
     LCD_RST     var     LATA.4 
     LCD_DC      var     LATA.3
     LCD_CE      var     LATA.6
     LCD_LIGHT   var     LATA.0
    nmea var byte[80]
    h var byte
    m var byte
    s var byte
    Include "nokia_ds.INC"  ' bring it in
    include "font7x5_16.bas"
    @ #DEFINE   TOKEN_DESTROY 1
    include "strtok.pbpmod"
    '==========================    MAIN  Routine    ==============================
        gosub lcd_init
        LCDCLR
        ARRAYWRITE BUFF,["READY",0]
        LCDSTR  5,0,BUFF 
        PAUSE 1000
        LCDCLR
      
    looper:
        'start=$ end=*
        arraywrite nmea,["GNRMC,090045.000,A,3823.6645,N,02353.3600,E,0.02,195.80,170518,,,A",0] 
        strtok nmea,0,","
        ARRAYREAD nmea, 5, GNGGA,[wait("GNRMC")]
        GOSUB SH_MSG
        GOSUB SH_TIME 
        strtok nmea ;fix
        GOSUB SH_LON
        GOSUB SH_LAT
        arraywrite buff,["speed",0]
        LCDSTR  0,3,BUFF
        ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),str buff\16] 
        LCDSTR 36,3,buff  
        strtok nmea
        arraywrite buff,["hdg",0]
        LCDSTR  0,4,BUFF
        ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),str buff\16] 
        LCDSTR 36,4,buff 
        strtok nmea
        ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),dec2 h,dec2 m,dec2 s]
        arraywrite buff,[dec2 h,"/",dec2 m,"/",dec2 s,0]
        LCDSTR  36,5,BUFF 
        PAUSE 1000
    GNGGA:
        arraywrite nmea,["GNGGA,140405.000,3823.6010,N,02353.3054,E,1,9,0.88,0.8,M,35.9,M,,",0] 
        strtok nmea,0,","
        ARRAYREAD nmea, 5, XXX,[wait("GNGGA")] 
        GOSUB SH_MSG
        GOSUB SH_TIME
        GOSUB SH_LON
        GOSUB SH_LAT
        strtok nmea
        strtok nmea
        strtok nmea
        strtok nmea
        strtok nmea
        arraywrite buff,["M",0]
        LCDSTR  28,5,BUFF
        ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),str buff\16] 
        LCDSTR 0,5,buff
        PAUSE 1000 
    GOTO LOOPER
      
    XXX:    
        LCDCLR
        arraywrite buff,["Oops",0]
        LCDSTR  0,1,BUFF   
    end
    
    SH_MSG:
        LCDSTR  0,0,nmea    ;sentence type 
        strtok nmea
    RETURN
    SH_TIME:
        ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),dec2 h,dec2 m,dec2 s]
        arraywrite buff,[dec2 h,":",dec2 m,":",dec2 s,0]
        LCDSTR  36,0,BUFF
        strtok nmea
    RETURN
    SH_LON:
        arraywrite buff,["lon",0]
        LCDSTR  0,1,BUFF 
        ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),str buff\16] 
        LCDSTR 20,1,buff 
        strtok nmea
        ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),str buff\16] 
        LCDSTR 77,1,buff 
        strtok nmea
    RETURN
     
    SH_LAT:
        arraywrite buff,["lt",0]
        LCDSTR  0,2,BUFF 
        ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),str buff\16] 
        LCDSTR 13,2,buff 
        strtok nmea
        ARRAYREAD  nmea ,[SKIP (STRTOK_INX-STRTOK_LEN),str buff\16] 
        LCDSTR 77,2,buff 
        strtok nmea
    RETURN
    Warning I'm not a teacher

Similar Threads

  1. LAT replaces PORT command?
    By markscotford in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 3rd December 2011, 16:37
  2. Need Info for PBP?
    By azmax100 in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 30th January 2009, 07:44
  3. Replies: 1
    Last Post: - 27th July 2008, 06:14
  4. dmx info.
    By oscar in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 8th May 2005, 11:54

Members who have read this thread : 1

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts