GPS4Palm

Source Code Documentation


gpslib.h File Reference

#include "Garmin.h"

Include dependency graph for gpslib.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  NmeaFields
struct  SerialDevInfo
struct  ProtoDesc

Defines

#define min(a, b)   (((a) < (b)) ? (a) : (b))
#define max(a, b)   (((a) > (b)) ? (a) : (b))
#define GPSLDBG_INFOS   128
#define GPSLDBG_PKTS   64
#define GPSLDBG_CALLS   32
#define GPSLDBG_UNEXP   8
#define ETX   '\003'
#define DLE   '\020'
#define Pid_Async_Event   0x1C
#define REPLYTIMEOUT   1000
#define MAXREPEAT   3
#define MAXCOMMERRORS   10
#define Palm2GarminTimeDiff   2713910400UL
#define GarminTime2PalmSeconds(t)   (t+Palm2GarminTimeDiff)
#define NmeaMaxFields   32
#define MAXDEVS   16
#define gpslibErrParamErr   (appErrorClass | 1)
#define gpslibErrBadMode   (appErrorClass | 2)
#define gpslibErrBusy   (appErrorClass | 3)
#define gpslibErrCommError   (appErrorClass | 4)
#define gpslibErrNoData   (appErrorClass | 5)
#define gpslibErrNothingToDo   (appErrorClass | 6)
#define SentenceAvailableEvent   firstUserEvent
 Posted when a complete NMEA sentence is available.
#define EndOfOperationEvent   (firstUserEvent +2)
 Posted when the library is closed (*EndOfOperation called or end of transfer).
#define TransferWptReqEvent   (firstUserEvent +3)
 Posted when a transfer waypoints request (Cmnd_Transfer_Wpt) is received (host mode).
#define TransferRteReqEvent   (firstUserEvent +4)
 Posted when a transfer routes request (Cmnd_Transfer_Rte) is received (host mode).
#define TransferTrkReqEvent   (firstUserEvent +5)
 Posted when a transfer tracks request (Cmnd_Transfer_Trk) is received (host mode).
#define TimeReceivedEvent   (firstUserEvent +6)
 Posted when a GPS time packet (Pid_Date_Time_Data) is received (after calling GarminGetTime), data.sclRepeat.time contains PalmOS time in seconds.
#define PowerOffEvent   (firstUserEvent +7)
 Posted when a power off request (Cmnd_Turn_Off_Pwr) is received (host mode).
#define PositionReceivedEvent   (firstUserEvent +8)
 Posted when a Pid_Position_Data packet is received (after calling GarminGetPosition).
#define AsyncEventReqEvent   (firstUserEvent +9)
 Posted when a Pid_Async_Event request is received.
#define PvtReceivedEvent   (firstUserEvent +10)
 Posted when a PVT paquet is received.

Typedefs

typedef enum Personality Personality
typedef enum ProtocolFamily ProtocolFamily
typedef enum GpslibCtrl GpslibCtrl
typedef Err StoreWptCallbackProc (GarminObject *wpt, UInt16 total, UInt16 current, LocalFormatID format, byte size)
 callback proc called when a waypoint is received
typedef Err StoreTrkCallbackProc (GarminObject *trk, UInt16 total, UInt16 current, LocalFormatID format, byte size)
 Callback proc called when a trackpoint is received.
typedef Err StoreRteCallbackProc (GarminObject *rte, UInt16 total, UInt16 current, LocalFormatID format, byte size)
 Callback proc called when a route element is received.
typedef StoreWptCallbackProcStoreWptCallbackProcPtr
typedef StoreTrkCallbackProcStoreTrkCallbackProcPtr
typedef StoreRteCallbackProcStoreRteCallbackProcPtr
typedef GarminObjectGetNextWptCallbackProc (UInt16 current, LocalFormatID format, byte *size)
 Callback proc called to fetch a waypoint to send to the gps.
typedef GarminObjectGetNextTrkCallbackProc (UInt16 current, LocalFormatID format, byte *size, Boolean *eot)
 Callback proc called to fetch a track element to send to the gps.
typedef GarminObjectGetNextRteCallbackProc (UInt16 current, LocalFormatID format, byte *size, Boolean *h, Boolean *eor)
 Callback proc called to fetch a route element to send to the gps.
typedef char * GetNextFullRteCallbackProc (UInt16 current)
 Callback proc called to fetch a full route to send to a Furuno gps.
typedef GetNextWptCallbackProcGetNextWptCallbackProcPtr
typedef GetNextTrkCallbackProcGetNextTrkCallbackProcPtr
typedef GetNextRteCallbackProcGetNextRteCallbackProcPtr
typedef GetNextFullRteCallbackProcGetNextFullRteCallbackProcPtr
typedef char * GetNextCharWptCallbackProc (UInt16 current)
 Callback proc called to fetch a waypoint to send to a Furuno gps.
typedef GetNextCharWptCallbackProcGetNextCharWptCallbackProcPtr
typedef Err StorePacketCallbackProc (Garmin_Packet *p, UInt16 current)
 Callback proc called when a raw packet is received (in asynchronous events mode).
typedef StorePacketCallbackProcStorePacketCallbackProcPtr
typedef Garmin_PacketGetNextPacketCallbackProc (UInt16 current)
 Callback proc called to fetch a raw packet.
typedef GetNextPacketCallbackProcGetNextPacketCallbackProcPtr
typedef void LogProc (char *p)
 Callback proc called to log strings (typicaly for debugging).
typedef LogProcLogProcPtr

Enumerations

enum  Personality {
  GIIPlus, G12CX, GII, MAP175,
  GIII, eTrex, GPS76
}
 Type of GPS emulated. More...
enum  ProtocolFamily {
  ProdProto, ProtoProto, DevProto, WptProto,
  RteProto, TrkProto, ProxyProto, AlmanProto,
  TimeProto, PosProto, PVTProto
}
enum  GpslibCtrl { GpslibCtrl_NoOp, GpslibCtrl_LooseProto }
 Controls accepted by GpslibControl. More...

Functions

void GpslibTicks (void)
Err GarminGetWpts (StoreWptCallbackProcPtr p, FieldPtr FPtr)
Err GarminGetTrks (StoreTrkCallbackProcPtr p, FieldPtr FPtr)
Err GarminGetRtes (StoreRteCallbackProcPtr p, FieldPtr FPtr)
Err GarminPutWpts (GetNextWptCallbackProcPtr p, FieldPtr FPtr, UInt16 count)
Err FurunoPutWpts (GetNextCharWptCallbackProcPtr, FieldPtr FPtr, UInt16 count)
Err GarminPutRtes (GetNextRteCallbackProcPtr p, FieldPtr FPtr, UInt16 count)
Err FurunoPutRtes (GetNextFullRteCallbackProcPtr p, FieldPtr FPtr, UInt16 count)
Err GarminPutTrks (GetNextTrkCallbackProcPtr p, FieldPtr FPtr, UInt16 count)
void GPSEndOfOperation (void)
Err GarminGetTime (FieldPtr FPtr)
UInt32 D600ToSeconds (Raw_D600_Date_Time_Type *d600p)
char * D600ToAscii (D600_Date_Time_Type *d600p)
Err GarminSetHostMode (FieldPtr FPtr, Personality Perso)
Err GarminGetPosition (FieldPtr FPtr)
Err GarminEnableAsyncEvents (StorePacketCallbackProcPtr p, FieldPtr FPtr, UInt16 mask)
Err GarminPutPacket (GetNextPacketCallbackProcPtr p, FieldPtr FPtr, UInt16 count)
Err GarminGetRemoteInfos (FieldPtr FPtr)
void GpslibSetDebugLevel (UInt16 debuglevel, LogProcPtr logprocp)
Err GarminStartPVT (void)
Err GarminStopPVT (void)
Err GarminGetPVT (D800_Pvt_Data_Type *pvtp)
void NMEAParse (byte *p, NmeaFields *fp)
UInt16 NMEAGetSentence (byte *p)
void NMEASendSentence (char *sentencep, int timeout)
GarminProtoID GarminGetProtocol (ProtocolFamily p)
UInt16 GetSerialDevsInfos (SerialDevInfo Infos[])
void GpslibSetSerialPort (UInt32 port)
Err GpslibControl (GpslibCtrl op, void *datas)


Define Documentation

#define AsyncEventReqEvent   (firstUserEvent +9)
 

Posted when a Pid_Async_Event request is received.

Definition at line 282 of file gpslib.h.

#define DLE   '\020'
 

Definition at line 41 of file gpslib.h.

#define EndOfOperationEvent   (firstUserEvent +2)
 

Posted when the library is closed (*EndOfOperation called or end of transfer).

Definition at line 268 of file gpslib.h.

#define ETX   '\003'
 

Definition at line 40 of file gpslib.h.

#define GarminTime2PalmSeconds  )     (t+Palm2GarminTimeDiff)
 

Definition at line 50 of file gpslib.h.

#define GPSLDBG_CALLS   32
 

Definition at line 36 of file gpslib.h.

#define GPSLDBG_INFOS   128
 

Definition at line 34 of file gpslib.h.

#define GPSLDBG_PKTS   64
 

Definition at line 35 of file gpslib.h.

#define GPSLDBG_UNEXP   8
 

Definition at line 37 of file gpslib.h.

#define gpslibErrBadMode   (appErrorClass | 2)
 

Definition at line 80 of file gpslib.h.

#define gpslibErrBusy   (appErrorClass | 3)
 

Definition at line 81 of file gpslib.h.

Referenced by store_trk().

#define gpslibErrCommError   (appErrorClass | 4)
 

Definition at line 82 of file gpslib.h.

#define gpslibErrNoData   (appErrorClass | 5)
 

Definition at line 83 of file gpslib.h.

#define gpslibErrNothingToDo   (appErrorClass | 6)
 

Definition at line 84 of file gpslib.h.

#define gpslibErrParamErr   (appErrorClass | 1)
 

Definition at line 79 of file gpslib.h.

Referenced by store_trk().

#define max a,
b   )     (((a) > (b)) ? (a) : (b))
 

Definition at line 31 of file gpslib.h.

#define MAXCOMMERRORS   10
 

Definition at line 46 of file gpslib.h.

#define MAXDEVS   16
 

Definition at line 60 of file gpslib.h.

#define MAXREPEAT   3
 

Definition at line 45 of file gpslib.h.

#define min a,
b   )     (((a) < (b)) ? (a) : (b))
 

Definition at line 30 of file gpslib.h.

#define NmeaMaxFields   32
 

Definition at line 51 of file gpslib.h.

#define Palm2GarminTimeDiff   2713910400UL
 

Definition at line 48 of file gpslib.h.

Referenced by TrackWriteLog().

#define Pid_Async_Event   0x1C
 

Definition at line 43 of file gpslib.h.

#define PositionReceivedEvent   (firstUserEvent +8)
 

Posted when a Pid_Position_Data packet is received (after calling GarminGetPosition).

Definition at line 280 of file gpslib.h.

#define PowerOffEvent   (firstUserEvent +7)
 

Posted when a power off request (Cmnd_Turn_Off_Pwr) is received (host mode).

Definition at line 278 of file gpslib.h.

#define PvtReceivedEvent   (firstUserEvent +10)
 

Posted when a PVT paquet is received.

Definition at line 284 of file gpslib.h.

#define REPLYTIMEOUT   1000
 

Definition at line 44 of file gpslib.h.

#define SentenceAvailableEvent   firstUserEvent
 

Posted when a complete NMEA sentence is available.

Definition at line 266 of file gpslib.h.

#define TimeReceivedEvent   (firstUserEvent +6)
 

Posted when a GPS time packet (Pid_Date_Time_Data) is received (after calling GarminGetTime), data.sclRepeat.time contains PalmOS time in seconds.

Definition at line 276 of file gpslib.h.

#define TransferRteReqEvent   (firstUserEvent +4)
 

Posted when a transfer routes request (Cmnd_Transfer_Rte) is received (host mode).

Definition at line 272 of file gpslib.h.

Referenced by RouteFormHandleEvent(), TrackFormHandleEvent(), and WaypointFormHandleEvent().

#define TransferTrkReqEvent   (firstUserEvent +5)
 

Posted when a transfer tracks request (Cmnd_Transfer_Trk) is received (host mode).

Definition at line 274 of file gpslib.h.

Referenced by RouteFormHandleEvent(), TrackFormHandleEvent(), and WaypointFormHandleEvent().

#define TransferWptReqEvent   (firstUserEvent +3)
 

Posted when a transfer waypoints request (Cmnd_Transfer_Wpt) is received (host mode).

Definition at line 270 of file gpslib.h.

Referenced by RouteFormHandleEvent(), TrackFormHandleEvent(), and WaypointFormHandleEvent().


Typedef Documentation

typedef char* GetNextCharWptCallbackProc(UInt16 current)
 

Callback proc called to fetch a waypoint to send to a Furuno gps.

Parameters:
current item number to fetch (first=0)
Returns:
pointer on string in Furuno format

Definition at line 199 of file gpslib.h.

typedef GetNextCharWptCallbackProc* GetNextCharWptCallbackProcPtr
 

Definition at line 201 of file gpslib.h.

typedef char* GetNextFullRteCallbackProc(UInt16 current)
 

Callback proc called to fetch a full route to send to a Furuno gps.

Parameters:
current current item number
Returns:
pointer on string to send to gps

Definition at line 186 of file gpslib.h.

typedef GetNextFullRteCallbackProc* GetNextFullRteCallbackProcPtr
 

Definition at line 191 of file gpslib.h.

typedef Garmin_Packet* GetNextPacketCallbackProc(UInt16 current)
 

Callback proc called to fetch a raw packet.

Parameters:
current packet number
Returns:
pointer on the retrieved packet

Definition at line 220 of file gpslib.h.

typedef GetNextPacketCallbackProc* GetNextPacketCallbackProcPtr
 

Definition at line 221 of file gpslib.h.

typedef GarminObject* GetNextRteCallbackProc(UInt16 current, LocalFormatID format, byte *size, Boolean *h, Boolean *eor)
 

Callback proc called to fetch a route element to send to the gps.

Parameters:
current current item number (header or waypoint, first=0)
format wanted format of element
size pointer to store size of element returned
h pointer on a boolean to set if item is a header
eor pointer on a boolean to set if it's the last element
Returns:
pointer on element returned (Garmin format)

Definition at line 178 of file gpslib.h.

typedef GetNextRteCallbackProc* GetNextRteCallbackProcPtr
 

Definition at line 190 of file gpslib.h.

typedef GarminObject* GetNextTrkCallbackProc(UInt16 current, LocalFormatID format, byte *size, Boolean *eot)
 

Callback proc called to fetch a track element to send to the gps.

Parameters:
current index of current element (first=0)
format format of element requested
size pointer to store size of element returned
eot true if the current item is the last element of current track
Returns:
pointer on element returned (Garmin format)

Definition at line 164 of file gpslib.h.

typedef GetNextTrkCallbackProc* GetNextTrkCallbackProcPtr
 

Definition at line 189 of file gpslib.h.

typedef GarminObject* GetNextWptCallbackProc(UInt16 current, LocalFormatID format, byte *size)
 

Callback proc called to fetch a waypoint to send to the gps.

Parameters:
current current item number (first=0)
format wanted format of waypoint
size pointer on a byte to write returned object size
Returns:
pointer on waypoint ready to send

Definition at line 153 of file gpslib.h.

typedef GetNextWptCallbackProc* GetNextWptCallbackProcPtr
 

Definition at line 188 of file gpslib.h.

typedef enum GpslibCtrl GpslibCtrl
 

Definition at line 102 of file gpslib.h.

typedef void LogProc(char *p)
 

Callback proc called to log strings (typicaly for debugging).

Parameters:
p string to log
Returns:
nothing

Definition at line 229 of file gpslib.h.

typedef LogProc* LogProcPtr
 

Definition at line 230 of file gpslib.h.

typedef enum Personality Personality
 

Definition at line 76 of file gpslib.h.

typedef enum ProtocolFamily ProtocolFamily
 

Definition at line 90 of file gpslib.h.

typedef Err StorePacketCallbackProc(Garmin_Packet *p, UInt16 current)
 

Callback proc called when a raw packet is received (in asynchronous events mode).

Parameters:
p pointer on raw packet
current packet number
Returns:
error code (0 if ok)

Definition at line 210 of file gpslib.h.

typedef StorePacketCallbackProc* StorePacketCallbackProcPtr
 

Definition at line 212 of file gpslib.h.

typedef Err StoreRteCallbackProc(GarminObject *rte, UInt16 total, UInt16 current, LocalFormatID format, byte size)
 

Callback proc called when a route element is received.

Parameters:
rte pointer on the raw object from the gps
total total count of items sent as indicated by gps
current current item number (first=1)
format format of the object received (route header or waypoint)
size size of object
Returns:
error code (0 if no error)

Definition at line 139 of file gpslib.h.

typedef StoreRteCallbackProc* StoreRteCallbackProcPtr
 

Definition at line 144 of file gpslib.h.

typedef Err StoreTrkCallbackProc(GarminObject *trk, UInt16 total, UInt16 current, LocalFormatID format, byte size)
 

Callback proc called when a trackpoint is received.

Parameters:
trk pointer on a raw track point or track header received from gps
total total count of items sent as indicated by gps
current current item number
format format of the object received
size size of object
Returns:
error code (0 if no error)

Definition at line 127 of file gpslib.h.

typedef StoreTrkCallbackProc* StoreTrkCallbackProcPtr
 

Definition at line 143 of file gpslib.h.

typedef Err StoreWptCallbackProc(GarminObject *wpt, UInt16 total, UInt16 current, LocalFormatID format, byte size)
 

callback proc called when a waypoint is received

Parameters:
wpt pointer on a GarminObject received from gps
total total count of items sent as indicated by gps
current current item number
format format of waypoint
size size of waypoint
Returns:
error code

Definition at line 115 of file gpslib.h.

typedef StoreWptCallbackProc* StoreWptCallbackProcPtr
 

Definition at line 142 of file gpslib.h.


Enumeration Type Documentation

enum GpslibCtrl
 

Controls accepted by GpslibControl.

Enumerator:
GpslibCtrl_NoOp 
GpslibCtrl_LooseProto 

Definition at line 100 of file gpslib.h.

enum Personality
 

Type of GPS emulated.

Enumerator:
GIIPlus 
G12CX 
GII 
MAP175 
GIII 
eTrex 
GPS76 

Definition at line 72 of file gpslib.h.

enum ProtocolFamily
 

Enumerator:
ProdProto 
ProtoProto 
DevProto 
WptProto 
RteProto 
TrkProto 
ProxyProto 
AlmanProto 
TimeProto 
PosProto 
PVTProto 

Definition at line 87 of file gpslib.h.


Function Documentation

char* D600ToAscii D600_Date_Time_Type d600p  ) 
 

UInt32 D600ToSeconds Raw_D600_Date_Time_Type d600p  ) 
 

Err FurunoPutRtes GetNextFullRteCallbackProcPtr  p,
FieldPtr  FPtr,
UInt16  count
 

Err FurunoPutWpts GetNextCharWptCallbackProcPtr  ,
FieldPtr  FPtr,
UInt16  count
 

Err GarminEnableAsyncEvents StorePacketCallbackProcPtr  p,
FieldPtr  FPtr,
UInt16  mask
 

Err GarminGetPosition FieldPtr  FPtr  ) 
 

GarminProtoID GarminGetProtocol ProtocolFamily  p  ) 
 

Err GarminGetPVT D800_Pvt_Data_Type pvtp  ) 
 

Err GarminGetRemoteInfos FieldPtr  FPtr  ) 
 

Err GarminGetRtes StoreRteCallbackProcPtr  p,
FieldPtr  FPtr
 

Referenced by RouteFormHandleEvent(), TrackFormHandleEvent(), and WaypointFormHandleEvent().

Err GarminGetTime FieldPtr  FPtr  ) 
 

Err GarminGetTrks StoreTrkCallbackProcPtr  p,
FieldPtr  FPtr
 

Referenced by RouteFormHandleEvent(), TrackFormHandleEvent(), and WaypointFormHandleEvent().

Err GarminGetWpts StoreWptCallbackProcPtr  p,
FieldPtr  FPtr
 

Referenced by RouteFormHandleEvent(), TrackFormHandleEvent(), and WaypointFormHandleEvent().

Err GarminPutPacket GetNextPacketCallbackProcPtr  p,
FieldPtr  FPtr,
UInt16  count
 

Err GarminPutRtes GetNextRteCallbackProcPtr  p,
FieldPtr  FPtr,
UInt16  count
 

Referenced by RouteFormHandleEvent(), TrackFormHandleEvent(), and WaypointFormHandleEvent().

Err GarminPutTrks GetNextTrkCallbackProcPtr  p,
FieldPtr  FPtr,
UInt16  count
 

Referenced by RouteFormHandleEvent(), TrackFormHandleEvent(), and WaypointFormHandleEvent().

Err GarminPutWpts GetNextWptCallbackProcPtr  p,
FieldPtr  FPtr,
UInt16  count
 

Referenced by RouteFormHandleEvent(), TrackFormHandleEvent(), and WaypointFormHandleEvent().

Err GarminSetHostMode FieldPtr  FPtr,
Personality  Perso
 

Referenced by RouteFormHandleEvent(), TrackFormHandleEvent(), and WaypointFormHandleEvent().

Err GarminStartPVT void   ) 
 

Err GarminStopPVT void   ) 
 

UInt16 GetSerialDevsInfos SerialDevInfo  Infos[]  ) 
 

void GPSEndOfOperation void   ) 
 

Err GpslibControl GpslibCtrl  op,
void *  datas
 

void GpslibSetDebugLevel UInt16  debuglevel,
LogProcPtr  logprocp
 

void GpslibSetSerialPort UInt32  port  ) 
 

Referenced by PortFormHandleEvent().

void GpslibTicks void   ) 
 

Referenced by RouteFormHandleEvent(), TrackFormHandleEvent(), and WaypointFormHandleEvent().

UInt16 NMEAGetSentence byte p  ) 
 

void NMEAParse byte p,
NmeaFields fp
 

void NMEASendSentence char *  sentencep,
int  timeout
 


Created: Mon, 08 Oct 2007 22:33:16 +0200
Copyright ©2004 M. Prinke