Oppure

Loading
22/04/09 10:41
valentino86
Dovrei utilizzare un'antenna gps con alimentazione usb in un progetto. Cercando in rete ho trovato questo:

marshallsoft.com/…

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
aaa
02/05/09 11:43
Fenix
Non so se ti può andar bene lo stesso... immagini.p2pforum.it/out.php/…
Potresti farti un convertitore hardware per USB e programmare con le librerie per porta seriale.:-|
Ultima modifica effettuata da Fenix 02/05/09 11:44
aaa
04/05/09 16:33
valentino86
Ok allora ecco cosa sto facendo.Ho preso il garmin 18 USB e utilizzo queste librerie (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:

// 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
Ultima modifica effettuata da valentino86 04/05/09 16:34
aaa