Modulo GPS-FLProg senza librerie di terze parti.
Puoi anche ottenere dati dal modulo GPS senza librerie di terze parti, utilizzando i blocchi integrati nel programma FLProg. Ad esempio, per determinare posizione, ora e altri dati, abbiamo bisogno di una stringa che inizia con GxRMS($GP(L,A,N)RMC), quindi analizziamo le stringe ricevuti dal modulo GPS e li convertiamo nei valori necessari. Vediamo come si può fare nel programma FLProg. Per prima cosa dobbiamo identificare la riga GxRMS. Per fare questo ho creato un blocco utente "Reading from UART" per comunicare con il modulo e ricercare le stringhe ricevute dal modulo (testato con il modulo GY-NEO6MV2).
Nota: penso che questo blocco possa essere utilizzato, per comunicare e individuare le stringhe per l'analisi, con altri moduli che utilizzano l'UART.
Consideriamo i parametri del blocco "Reading from UART".
Una volta individuata la stringa, tramite il blocco "Reading from UART" (B1) e blocchi B2("Remove extra spaces")*, B3("Starts with")*, dobbiamo analizzarla. Cominciamo con l'identificazione di un indicatore nella stringa:
$GPRMC,163400.00,A,4620.7960,N,01840.64389,E,0.0,,251223,,,A*77
Vediamo che la stringa è divisa in sottostringhe da virgole, possiamo usare queste virgole come indicatori. Utilizzando il blocco "Search SubStr" (B4) identifichiamo la prima virgola impostata sull'input "SubStr". È importante che nelle impostazioni del blocco "Search SubStr" indichiamo da quale indice iniziare la ricerca dell'identificatore, in questo caso lo impostiamo dall'indice 0 (dall'inizio). Utilizzando l'indice di questo indicatore, otteniamo una sottostringa utilizzando il blocco "Get SubStr" (B5). Nelle impostazioni del blocco "Get SubStr" impostiamo fino a quale indice rilevare la sottostringa, in questo caso fino alla fine (Figura 1).
*I blocchi sono stati creati per individuare una stringa da analizzare.

Figura 1
E così abbiamo individuato la sottostringa da cui sottrarre le sottostringhe per determinare posizione, ora e altri dati:
,163400.00,A,4620.7960,N,01840.64389,E,0.0,,251223,,,A*77
Iniziamo con la ricerca della sottostringa per determinare l'ora. Per prima cosa dobbiamo trovare i due indicatori (l'indice iniziale(Start) è l'indice finale(End)) tra i quali si trova la sottostringa per determinare l'ora. Nel blocco B1 ("Search SubStr") di ricerca dell'indice iniziale indichiamo da quale indice iniziare la ricerca dell'identificatore iniziale (0 - dall'inizio). Una volta trovato l'indice iniziale dobbiamo sommarlo a 1 (B3), per eliminare l'indicatore (virgola), e così abbiamo trovato l'indice iniziale della sottostringa. Nel blocco B2 ("Search SubStr") di ricerca dell'indice finale indichiamo da quale indice iniziare la ricerca dell'identificatore finale, in questo caso è indice 1. Non dimenticare di specificare gli indicatori (virgola) impostandoli sugli input "SubStr". Una volta trovati gli indici iniziale e finale, il blocco "Get SubStr" (B4) rileva la sottostringa per determinare l'ora, dopodiché lo trasformiamo nel formato orario desiderato utilizzando i blocchi "Get SubStr", vedere i file FLProg (Figura 2).

Figura 2
Utilizzando l'indice finale troviamo anche la sottostringa per cercare sottostringhe per determinare altri valori (B5):
,A,4620.7960,N,01840.64389,E,0.0,,251223,,,A*77
E così via finché non avremo sottratto tutti i valori dalla stringa RMC:
$GPRMC,163400.00,A,4620.7960,N,01840.64389,E,0.0,,251223,,,A*77
Nota: per ottenere il risultato corretto, è necessario definire anche le sottostringhe tra le virgole vuote!!!
File FLProg.