|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
[C#] Leggere latitudine e longitudine su GPS
Salve a tutti,
ho fatto diverse ricerche in rete ma non sono riuscito a trovare poco niente che mi permettesse interfacciare un PC Windows con il GPS. Il linguaggio di programmazione che conosco meglio è il C# quindi cercavo qualche libreria in rete già fatta. Il mio scopo è quindi di leggere da un navigatore satellitare ( nel mio caso MIO C250 ) la longitudine e la latitudine della mia posizione attuale. Ho pensato anche ad un collegamento ad internet quindi attraverso Google Maps, ma il problema è che mi servono dai aggiornati in pratica in modo instantaneo e una connessione ad internet non penso che risolvi questo problema. Qualcuno ha già affrontato questo tipo di problema o conosce una libreria per interfacciare il C# ad un GPS esterno ? Grazie. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Generalmente i moduli GPS inviano stringhe NMEA tramite RS232.
Tutto sta nel capire come il tuo device comunichi (se lo fa) le informazioni sulla posizione all'esterno. |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
Si, esatto è quello il problema che bisogna vedere a monte di tutto.
Il fatto è che sinceramente non ho idea di come leggere l' I/O in una porta seriale. |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 6275
|
Quote:
http://msdn.microsoft.com/it-it/libr...erialport.aspx Se hai dubbi, l'esempio alla fine della pagina di documentazione dovrebbe chiarire tutto. |
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
Ok grazie per la ricerca ma l' avevo già trovata quella libreria il fatto è che non ho la possibilità di usarla visto che, come ho detto ho un MIO C250, ho solo a disposizione un interfaccia USB.
Ho pensato si acquistare un convertitore da USB a serial ma prima di fare questo vorrei vedere se riesco a comunicare con la porta USB. E questo non è per niente semplice visto le notizie che sto ricavando da internet. |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
E' probabile che tu debba interfacciarti con qualche software proprietario del navigatore installato sul tuo computer per comunicarci (tipo oggetti COM). Ma senza avere queste informazioni è impossibile darti una indicazione su come procedere. |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 6275
|
Quote:
Ho dato un occhiata alle specifiche del tuo navigatore ed ho visto che usa Windows CE (Windows CE .NET 4.2, precedente a Windows CE 5.0) , quindi probabilmente la porta USB serve solo per connettersi con ActiveSync al PC. In teoria potresti scrivere un programma per CE da far girare sul navigatore che faccia da proxy verso il pc, ma non credo ne valga la pena, specialmente perchè nonostante il nome del S.O. dubito che ci sia il .Net framework preinstallato. |
|
|
|
|
|
|
#8 | |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
E proprio quello che stavo ipotizzando. Anche secondo me il navigatore non invia pacchetti contenenti la mia posizione.
Quote:
Quindi nel caso riuscissi a sviluppare un software, questo andrebbe bene solo per navigatori che lavorano su piattaforma CE. Facendo ricerche in rete, ho quindi ipotizzato l' acquisto di un rucevitore USB di segnale GPS. Ho letto che i dispositivi di questo genere sono stati progettati per interfecciare con il pc attraverso un software di terze parti. Ma il mio scopo era quello di crearmelo da me il software. Quindi mi chiedevo se questa tipologia di dispositi invia informazzioni rigurdanti la mia posizione attraverso USB, che quindi posso leggere attraverso un software creato da me. Posto uno dei tanti link che ho trovato in rete per dare un idea della pennetta di cui sto parlando : http://www.engadget.com/2007/09/19/i...sb-gps-device/ Ultima modifica di pare93 : 17-10-2011 alle 17:31. Motivo: nothing |
|
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
up
|
|
|
|
|
|
#10 | |
|
Member
Iscritto dal: Sep 2008
Città: Milano
Messaggi: 126
|
Quote:
ciao! british |
|
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
Ok , il ricevitore GPS penso che ce l avrò tra breve.
Intanto volevo anche chiedere se qualcuno sa come inserire una sorta di mappa geografica in una visual form in c#. Premetto che non ho ancora cercato nulla in rete a riguardo, pongo questa domanda a chi magari ha una risposta immediata. |
|
|
|
|
|
#12 | |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21911
|
Quote:
1) il gps comunica tramite messaggi seriali su porta seriale al 99% anche un ricevitore usb non sarà altro che una virtual com quindi il programma che farai andrà comunque a leggere su seriale 2) se vuoi un consiglio spassionato senza sbatterti più di tanto compra una antenna garmin gps 18x PC (OCCHIO non la versione usb ma quella seriale) che trasmette in standard nmea così non avrai sbattimenti di sorta ![]() costa mi pare sui 90$ in america 110€ in italia per la programmazione il c# ha tutto per la gestione della porta seriale senza troppi sbattimenti http://msdn.microsoft.com/it-it/libr...erialport.aspx comunque con qualsiasi linguaggio gestire il gps nmea è una cavolata basta leggere la seriale a righe io ad esempio su pc lavoravo offline da s.o. loggavo tutto il traffico (su windows ad esempio potresti usare putty) e analizzavo il log tramite un semplice parser fatto su windows con c# per l'utilizzo online avevo dovuto fare un giro strano per questione di tempi ciclo rs232--> CAN con c++, qt e un framework particolare su embedded can-->centralina con matlab rtw--> output di test su pc per la mappa guarda qui http://code.google.com/p/winforms-ge...ntrol-library/
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 Ultima modifica di !fazz : 27-10-2011 alle 19:29. |
|
|
|
|
|
|
#13 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
Ok, grazie mille per la dritta.
Come modulo GPS mi sto muovendo per acquistare il NAVI-S-U6 versione USB. Ho letto che è un ricevitore preciso e molto preciso, quindi mi sono fidato della recensione. Cosa ne pensi di questo dispositivo ? Sul lato della programmazione per ora non posso fare niente, se non incominciare a documentarmi, visto che non ho ancora a disposizione il ricevitore. Ad ogni modo hai ragione, non deve essere un operazione così difficile programmarlo. Inizierei facendo uno sniffing dei dati che il modulo invia al calcolatore in modo da essere sicuro riguardo al protocollo utilizzato e ai messaggi inviati. Riguardo la soluzione che mi hai proposto riguardo la mappa penso che non sia male. Ora, non ho letto tutta la documentazione ma già dal titolo GOOGLE EARTH penso che richieda una connessione ad internet. E voglio ricordare che il mio lavoro si deve svolgere offline riguardo al modulo GPS. Peró, ripeto, non ho letto tutta la documentazione. Comunque vi tengo aggiornati sui miei progressi. Grazie. |
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
Uo
|
|
|
|
|
|
#15 | |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21911
|
Quote:
da quanto mi ricordo gli ublox sono caretti come receiver, sono il modulo da integrare veniva sui 90€ un paio di anni fà contro i 30 di un sirfstarIII ma se il ricevitore ha un prezzo buono direi che è una buona scelta riguardo la decodifica è una cavola immane farla a titolo di esempio guarda questo estratto di un log nmea, quello che ti interessa è incluso nella sentences GPGGA quindi scarti tutte le righe lette che non iniziano con $GPGGA e nella riga trovi latitudine (rosso) longitudine (blu) e altitudine (verde), il numero che ti ho indicato in marrone è un indicatore della qualità della misura se è 0 significa che la misura non è valida, 1 fix gps , 2 fix dgps, 3, uso del canale cifrato(che ormai non si usa più), 4 uso di rtk e quindi massima precisione ottenibile (< 1 cm) ecc ecc come vedi è semplicissimo basta leggere la seriale a righe e splittare la stringa usando come separatore la , una roba che ad impiegarci tanto impieghi 5 minuti comprensivo di pausa caffè Codice:
$GPRMC,101452,A,4531.6589,N,00934.6529,E,000.0,000.0,031109,001.0,E*79 $GPGGA,101452,4531.6589,N,00934.6529,E,2,10,0.8,124.4,M,46.7,M,,*4A $GPGSA,A,3,02,05,10,12,14,16,21,29,30,31,,,1.3,0.8,1.0*37 $PGRME,2.4,M,2.4,M,3.4,M*29 $GPVTG,000.0,T,359.0,M,000.0,N,0000.0,K*71 $GPRMC,101453,A,4531.6589,N,00934.6529,E,000.0,000.0,031109,001.0,E*78 $GPGGA,101453,4531.6589,N,00934.6529,E,2,10,0.8,124.4,M,46.7,M,,*4B $GPGSA,A,3,02,05,10,12,14,16,21,29,30,31,,,1.3,0.8,1.0*37 $PGRME,2.4,M,2.4,M,3.4,M*29 $GPVTG,000.0,T,359.0,M,000.0,N,0000.0,K*71 $GPRMC,101454,A,4531.6589,N,00934.6529,E,000.0,000.0,031109,001.0,E*7F $GPGGA,101454,4531.6589,N,00934.6529,E,2,10,0.8,124.4,M,46.7,M,,*4C $GPGSA,A,3,02,05,10,12,14,16,21,29,30,31,,,1.3,0.8,1.0*37 $PGRME,2.4,M,2.4,M,3.4,M*29 $GPVTG,000.0,T,359.0,M,000.0,N,0000.0,K*71 $GPRMC,101455,A,4531.6589,N,00934.6529,E,000.0,000.0,031109,001.0,E*7E $GPGGA,101455,4531.6589,N,00934.6529,E,2,10,0.8,124.4,M,46.7,M,,*4D $GPGSA,A,3,02,05,10,12,14,16,21,29,30,31,,,1.3,0.8,1.0*37 $PGRME,2.4,M,2.4,M,3.4,M*29 $GPVTG,000.0,T,359.0,M,000.0,N,0000.0,K*71 $GPRMC,101456,A,4531.6589,N,00934.6529,E,000.0,000.0,031109,001.0,E*7D $GPGGA,101456,4531.6589,N,00934.6529,E,2,10,0.8,124.4,M,46.7,M,,*4E $GPGSA,A,3,02,05,10,12,14,16,21,29,30,31,,,1.3,0.8,1.0*37 $PGRME,2.4,M,2.4,M,3.4,M*29 $GPVTG,000.0,T,359.0,M,000.0,N,0000.0,K*71 $GPRMC,101457,A,4531.6589,N,00934.6529,E,000.0,000.0,031109,001.0,E*7C $GPGGA,101457,4531.6589,N,00934.6529,E,2,10,0.8,124.4,M,46.7,M,,*4F $GPGSA,A,3,02,05,10,12,14,16,21,29,30,31,,,1.3,0.8,1.0*37 $PGRME,2.4,M,2.4,M,3.4,M*29 ps scusa per il ritardo ma ero senza internet negli scorsi giorni
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 Ultima modifica di !fazz : 03-11-2011 alle 12:31. |
|
|
|
|
|
|
#16 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
Innanzitutto vorrei ringraziarti per il tuo interessamento.
Poi ti ringrazio per avermi postato un log di quello che viene letto dalla seriale. Mi hai sicuramente risparmiato un lavoro. Ho un ultimo dubbio che mi sorge non avendo a disposizione in questo momento il modulo. La connessione seriale di cui stiamo parlando è stata virtualizzata nella connessione USB giusto ? Quindi questo mi permette di leggere il port USB come un RS232 ? |
|
|
|
|
|
#17 | ||
|
Member
Iscritto dal: Sep 2008
Città: Milano
Messaggi: 126
|
Quote:
Quote:
ciao! british |
||
|
|
|
|
|
#18 | |
|
Member
Iscritto dal: Sep 2008
Città: Milano
Messaggi: 126
|
Quote:
ciao! british |
|
|
|
|
|
|
#19 | |
|
Member
Iscritto dal: Sep 2008
Città: Milano
Messaggi: 126
|
Quote:
ciao! british |
|
|
|
|
|
|
#20 | |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21911
|
Quote:
(nel mio caso era cablato rs232: il garmin di prima) era un googlata, non l'ho mai usato google maps, noi usavamo una grafica generata
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 Ultima modifica di !fazz : 07-11-2011 alle 10:12. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:30.





















