/* * 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_ */