nmeaInfo.h
84 lines
| 2.7 KiB
| text/x-c
|
CLexer
|
r96 | /* | ||
* nmeaInfo.h | ||||
* | ||||
* Created on: Oct 21, 2014 | ||||
* Author: Alan Aguilar Sologuren | ||||
*/ | ||||
#ifndef NMEALIB___NMEAINFO_H_ | ||||
#define NMEALIB___NMEAINFO_H_ | ||||
#include "nmea_defs.h" | ||||
/** | ||||
* Information about satellite | ||||
* @see nmeaSATINFO | ||||
* @see nmeaGPGSV | ||||
*/ | ||||
typedef struct _nmeaSATELLITE | ||||
{ | ||||
int id; /**< Satellite PRN number */ | ||||
int in_use; /**< Used in position fix */ | ||||
int elv; /**< Elevation in degrees, 90 maximum */ | ||||
int azimuth; /**< Azimuth, degrees from true north, 000 to 359 */ | ||||
int sig; /**< Signal, 00-99 dB */ | ||||
} nmeaSATELLITE; | ||||
/** | ||||
* Information about all satellites in view | ||||
* @see nmeaINFO | ||||
* @see nmeaGPGSV | ||||
*/ | ||||
typedef struct _nmeaSATINFO | ||||
{ | ||||
int inuse; /**< Number of satellites in use (not those in view) */ | ||||
int inview; /**< Total number of satellites in view */ | ||||
nmeaSATELLITE sat[NMEA_MAXSAT]; /**< Satellites information */ | ||||
} nmeaSATINFO; | ||||
/** | ||||
* Summary GPS information from all parsed packets, | ||||
* used also for generating NMEA stream | ||||
* @see nmea_parse | ||||
* @see nmea_GPGGA2info, nmea_...2info | ||||
*/ | ||||
class nmeaInfo { | ||||
public: | ||||
nmeaInfo(); | ||||
virtual ~nmeaInfo(); | ||||
void code_init_INFO(); | ||||
static void code_time_now(); | ||||
void code_info2pos(nmeaPOS *pos); | ||||
void code_pos2info(const nmeaPOS *pos); | ||||
int nmea_igen_noise_init(); | ||||
int nmea_igen_noise_loop(); | ||||
int nmea_igen_noise_reset(); | ||||
int nmea_igen_static_loop(); | ||||
int nmea_igen_static_reset(); | ||||
int nmea_igen_static_init(); | ||||
int nmea_igen_rotate_loop(); | ||||
int nmea_igen_rotate_reset(); | ||||
int nmea_igen_rotate_init(); | ||||
int nmea_igen_pos_rmove_init(); | ||||
int nmea_igen_pos_rmove_loop(); | ||||
private: | ||||
int smask; /**< Mask specifying types of packages from which data have been obtained */ | ||||
nmeaTIME utc; /**< UTC of position */ | ||||
int sig; /**< GPS quality indicator (0 = Invalid; 1 = Fix; 2 = Differential, 3 = Sensitive) */ | ||||
int fix; /**< Operating mode, used for navigation (1 = Fix not available; 2 = 2D; 3 = 3D) */ | ||||
double PDOP; /**< Position Dilution Of Precision */ | ||||
double HDOP; /**< Horizontal Dilution Of Precision */ | ||||
double VDOP; /**< Vertical Dilution Of Precision */ | ||||
double lat; /**< Latitude in NDEG - +/-[degree][min].[sec/60] */ | ||||
double lon; /**< Longitude in NDEG - +/-[degree][min].[sec/60] */ | ||||
double elv; /**< Antenna altitude above/below mean sea level (geoid) in meters */ | ||||
double speed; /**< Speed over the ground in kilometers/hour */ | ||||
double direction; /**< Track angle in degrees True */ | ||||
double declination; /**< Magnetic variation degrees (Easterly var. subtracts from true course) */ | ||||
nmeaSATINFO satinfo; /**< Satellites information */ | ||||
}; | ||||
#endif /* NMEALIB___NMEAINFO_H_ */ | ||||