[c++] GPS usb
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
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
Risposte
ho letto un pò in giro...potrei risolvere con una porta seriale virtuale?
Ok alla fine ho acquistato il gps 18 usb della garmin e sto usando queste librerie
http://www.stempsoft.com/
Bah vediamo se ci riesco, mi devo studiare classi e oggetti per capirci qualcosa
http://www.stempsoft.com/
Bah vediamo se ci riesco, mi devo studiare classi e oggetti per capirci qualcosa
Ok allora ecco cosa sto facendo, 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:
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
// SimpleProductData.cpp // #include "stdafx.h" #include "stdio.h" #include "conio.h" #include "GarXfaceAll.h" int main() { GarXface4::GpsUsbDevice usbDev; /*StempSoftMessageLogger::MsgLoggerFileDevice *pMsgLoggerFileDevice; //The log can be turned on for recording diagnostic messages pMsgLoggerFileDevice = new StempSoftMessageLogger::MsgLoggerFileDevice("SimpleProductData.log"); StempSoftMessageLogger::SetMessageLoggerDevice(pMsgLoggerFileDevice);*/ GarXface4::UsbDeviceNameList lst; GarXface4::UsbDeviceName *n=lst[0]; usbDev.SetDeviceName(lst[0]->GetDeviceName()); GarXface4::Gps gps; try { //Qui ho scritto io printf("E' acceso? %i\n\n\n",gps.IsOpen()); gps.Open(&usbDev); printf("GPS acceso"); GarXface4::ProductData *pProductData = gps.GetProductData(); printf("Product Description: %s\n",pProductData->GetDescription()); printf("Model ID: %d\n",pProductData->GetProductID()); printf("Software Version: %f\n\n",pProductData->GetSwVersion()); printf("E' acceso? %i\n",gps.IsOpen()); gps.PvtDataOn(); GarXface4::PVTdata *pvt; pvt = gps.GetPVTdata(); printf("E' connesso il GPS? %i\n",pvt->GetGpsConnect()); printf("Dati validi? %i\n",pvt->GetValidData()); printf("Alitudine: %f\n",pvt->GetAltitude()); double m_dLatitude = GarXface4::Math::WGS84::radiansToDegrees(pvt->GetLatitude()); printf("m_dLatitude %f\n\n",m_dLatitude); getchar(); } catch(GarXface4::Exceptions::GxException e) { e.ReportError(); } return 0; }
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
sto cercando di riprodurre il file di esempio allegato alle librerie, solamente che in questo progetto viene usata questa funzione
UpdateData(TRUE);
che dovrebbe essere di afxwin.h. Mi sapreste dire cosa fa?
UpdateData(TRUE);
che dovrebbe essere di afxwin.h. Mi sapreste dire cosa fa?