Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - GPS usb
Forum - C/C++ - GPS usb

Avatar
valentino86 (Normal User)
Newbie


Messaggi: 8
Iscritto: 07/04/2009

Segnala al moderatore
Postato alle 12:41
Mercoledì, 22/04/2009
Dovrei utilizzare un'antenna gps con alimentazione usb in un progetto. Cercando in rete ho trovato questo:

http://www.marshallsoft.com/mgc4c.htm

Praticamente delle librerie per comunicare con il gps ma solo tramite porta seriale, io invece lo dovrei fare con l'usb.
Sapete se esistono cose analoghe ma con interfaccia usb? Oppure se esistono modelli commerciali di gps con allegati API per windows?

Grazie

PM Quote
Avatar
Fenix (Normal User)
Newbie


Messaggi: 6
Iscritto: 20/04/2009

Segnala al moderatore
Postato alle 13:43
Sabato, 02/05/2009
Non so se ti può andar bene lo stesso... http://immagini.p2pforum.it/out.php/i248765_schemaserialeu ...
Potresti farti un convertitore hardware per USB e programmare con le librerie per porta seriale.:-|

Ultima modifica effettuata da Fenix il 02/05/2009 alle 13:44


L'ambizione senza la conoscenza è come un battello sulla terra ferma.
PM Quote
Avatar
valentino86 (Normal User)
Newbie


Messaggi: 8
Iscritto: 07/04/2009

Segnala al moderatore
Postato alle 18:33
Lunedì, 04/05/2009
Ok allora ecco cosa sto facendo.Ho preso il garmin 18 USB e utilizzo queste librerie (http://www.stempsoft.com/), ma non riesco a scrivere un programmino per leggere la posizione del gps.
Fino al commento l'ho praticamente copiato da un file di esempio, il resto l'ho scritto io, il problema è che non riesco a farlo funzionare, cioè non mi accede ai dati di posizione e velocità PVT:

Codice sorgente - presumibilmente C++

  1. // SimpleProductData.cpp
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "stdio.h"
  6. #include "conio.h"
  7.  
  8. #include "GarXfaceAll.h"
  9.  
  10. int main()
  11. {
  12.         GarXface4::GpsUsbDevice  usbDev;
  13.  
  14.         /*StempSoftMessageLogger::MsgLoggerFileDevice *pMsgLoggerFileDevice;
  15.        
  16.         //The log can be turned on for recording diagnostic messages
  17.         pMsgLoggerFileDevice = new StempSoftMessageLogger::MsgLoggerFileDevice("SimpleProductData.log");
  18.         StempSoftMessageLogger::SetMessageLoggerDevice(pMsgLoggerFileDevice);*/
  19.  
  20.         GarXface4::UsbDeviceNameList lst;
  21.  
  22.         GarXface4::UsbDeviceName *n=lst[0];
  23.                        
  24.         usbDev.SetDeviceName(lst[0]->GetDeviceName());
  25.        
  26.         GarXface4::Gps gps;
  27.                
  28.         try
  29.         {
  30. //Qui ho scritto io
  31.                 printf("E' acceso? %i\n\n\n",gps.IsOpen());
  32.                 gps.Open(&usbDev);
  33.                 printf("GPS acceso");
  34.                
  35.                 GarXface4::ProductData *pProductData = gps.GetProductData();
  36.                
  37.                 printf("Product Description: %s\n",pProductData->GetDescription());
  38.                 printf("Model ID: %d\n",pProductData->GetProductID());
  39.                 printf("Software Version: %f\n\n",pProductData->GetSwVersion());
  40.  
  41.                 printf("E' acceso? %i\n",gps.IsOpen());  
  42.                
  43.                 gps.PvtDataOn();
  44.  
  45.                 GarXface4::PVTdata *pvt;
  46.  
  47.                 pvt = gps.GetPVTdata();
  48.  
  49.                 printf("E' connesso il GPS? %i\n",pvt->GetGpsConnect());
  50.                 printf("Dati validi? %i\n",pvt->GetValidData());
  51.  
  52.                 printf("Alitudine: %f\n",pvt->GetAltitude());
  53.  
  54.                 double m_dLatitude = GarXface4::Math::WGS84::radiansToDegrees(pvt->GetLatitude());
  55.                 printf("m_dLatitude %f\n\n",m_dLatitude);
  56.  
  57.                 getchar();
  58.                
  59.         } catch(GarXface4::Exceptions::GxException e) {
  60.                 e.ReportError();
  61.         }
  62.        
  63.  
  64.         return 0;
  65. }



Praticamente le classi per accenderlo (gps.Open) funziona, mentre mi dive che i dati non sono validi quando cerco di accedere ai dati PVT.

Il file di esempio che c'è sui dati PVT è un casino, perchè utilizza le MFC per fare una finestrella dove aggiorna in continuo i dati, mentre a me serve una cosa molto molto più semplice

Ultima modifica effettuata da valentino86 il 04/05/2009 alle 18:34
PM Quote