11 #ifndef GARMIN_TYPES_H 12 #define GARMIN_TYPES_H 18 #define MIN_PACKET_SIZE ( 1 + 1 + 1 + 0 + 1 + 1 + 1 ) 21 #define MAX_PAYLOAD_SIZE ( 255 ) 31 #define MAX_PACKET_SIZE ( 1 + 1 + 2 * 1 + 2 * MAX_PAYLOAD_SIZE + 2 * 1 + 1 + 1 ) 34 #define SIZE_OF_HEADER ( 1 + 1 + 1 ) 37 #define SIZE_OF_FOOTER (1 + 1 ) 41 #define ID_DLE_BYTE 16 42 #define ID_NAK_BYTE 21
uint8 second
second (0-59)
uint8 minute
minute (0-59)
Basic utility macros for low-level functions.
uint8 id_type
Garmin packet ID.
Time portion of data type.
unsigned char boolean
8-bit value representing FALSE (0) or TRUE (nonzero)
signed short int sint16
16-bit signed integer
Date & time data type with separate fields for month, day, year, hour, minute, and second...
double float64
64-bit IEEE-format floating point data. (1 sign bit, 11 exponent bits, and 52 mantissa bits) ...
sint32 lat
latitude in semicircles
float64 lat
latitude in radians, positive is north
float float32
32-bit IEEE-format floating point data. (1 sign bit, 8 exponent bits, and 23 mantissa bits) ...
Indicates a latitude and longitude in radians.
sint32 week_number_days
Days since December 31st, 1989 to beginning of week (i.e., this is a Sunday)
signed long int sint32
32-bit signed integer
unsigned short int uint16
16-bit unsigned integer
_compiler_assert(CHAR_BIT==8, _FMI_H_)
uint16 year
Real year (1990 means 1990!)
signed char sint8
8-bit signed integer
Indicates a latitude and longitude in semicircles.
unsigned char uint8
8-bit unsigned integer
float64 lon
longitude in radians, positive is east
sint32 time_of_week
Seconds since 12:00 AM Sunday.
unsigned long int uint32
32-bit unsigned integer
sint32 lon
longitude in semicircles
uint32 time_type
Absolute time (number of seconds since 12/31/1989 12:00 am UTC)
Date portion of data type.
sint16 hour
hour (0-65535), range required for correct ETE conversion
Encapsulates the fields of a GPS time for conversion.