⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpsreceiverbase.h

📁 SYMBIAN GPS NMEA协议实现
💻 H
字号:
/************************************************************************/
/* Bluteooth Test           The.Berlin.Factor                 Juni 2003 */
/************************************************************************/

#ifndef __CGpsReceiverBase_H__
#define __CGpsReceiverBase_H__

#include <E32Base.h>

#include "gps/GpsPosition.h"
#include "gps/GpsReceiver.h"

#include "gps/nmea/NmeaParser.h"


class MGpsListener;
class MLog;



// Abstrakte Basisklasse fuer Objekte welche die Anbindung an einen GPS
// Empfaenger implementieren. Uebernimmt das Handling der interessierten
// Listener.
class CGpsReceiverBase : public CBase, public MGpsReceiver {

public:

	// Meldet ein an Positions-Updates interessiertes Objekt an.
	void AddListenerL( MGpsListener * aListener );

	// Meldet ein nicht mehr an Positions-Updates interessiertes Objekt ab.
	void RemoveListenerL( MGpsListener * aListener );


protected:

	// Geschuetzter Konstruktor fuer konkrete Unterklassen.
	CGpsReceiverBase( );

	// Geschuetzter virtueller Konstruktor. Nur die konkrete Unterklasse
	// darf zerstoert werden.
	virtual ~CGpsReceiverBase( );


protected:

	// Meldet eine Positionsaktualisierung an die zur Zeit angemeldeten
	// Listener.
	void SendUpdate( const TGpsPosition & aNewPosition );

	// Kann fuer eine NMEA Message aufgerufen werden. Das $ muss sich dann
	// bei [0] befinden und hinter dem letzten Zeichen der Message muss
	// noch ein \n stehen.
	void ProcessMessageL( TDesC8 & aCommand );

	// Falls es sich um eine GPGGA Message handelt, wird hiermit die
	// Position ausgelesen.
	void ProcessGPGGAMsgL( TDesC8 & aCommand );

	// Falls es sich um eine GPGLL Message handelt, wird hiermit die
	// Position ausgelesen.
	void ProcessGPGLLMsgL( TDesC8 & aCommand );

	// Falls es sich um eine GPVTG Message handelt, wird dise hiermit
	// ausgelesen.
	void ProcessGPVTGMsgL( TDesC8 & aCommand );


protected:

	// Hilfsobjekt fuer das Lesen von NMEA Messages.
	CNmeaParser iNmeaParser;


private:

	// Enthaelt die zuletzt gesendete Position. Diese wird im Falle des
	// Auftretens einer GPVTG Message (Kursdaten) erweitert und erneut
	// - dann mit Kursdaten - gesendet.
	TGpsPosition iLastPosition;


private:

	// Enthaelt die angemeldeten Listener.
	RPointerArray< MGpsListener > iListeners;

};

#endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -