|
MultiverseSocial.com
> Web 4 <
GPSChannel.c
|
|
|
#define TRACK_DEGREES_VALID |
0x00000001 |
#define
TRACK_DEGREES_MAGNETIC_VALID |
0x00000002 |
#define
SPEEDN_VALID
|
0x00000004 |
#define
SPEEDK_VALID
|
0x00000008 |
struct GPSChannel
{
struct Channel base;
struct
Waypoint
*target_list; //--
struct
Waypoint
*locale_list; //--
struct ContainerChannel
*container_channel;
struct
STDIOChannel
*stdin_channel;
struct
URLChannel
*url_channel;
struct StateMachineChannel *state_machine_channel;
struct
GPRSChannel
*gprs_channel;
};
struct GPS_Velocity
{
double track_degrees_true;;
double track_degrees_magnetic;
double speed_knots;
double speed_kilometers;
int dmnk_flags;
};
struct GPSPosition
{
double horizontal_dilution_of_precision;
double
antenna_height;
// antenna height, meters
double
geoidal_height;
// geoidal height, meters
double
latitude;
// in degrees
double longitude;
int time_hours;
int time_minutes;
int time_seconds;
int time_valid;
int positon_validity;
int gps_allocation_validity;
int sattelites_validity;
int
horizontal_dilution_precision_validity;
int antenna_height_vallidity;
int
geoidal_height_validity;
int
gps_state;
// 0 none; 1 just GPS; 2 Differntial GPS.
int
satelite_number;
int
time_validity;
int
position_validity;
int gps_state_validity;
int satellite_number_valid;
};
|
|
|
//lattitude0,longitude0,latitude1,longitude1
inline double
GreatCircleDistance(double,double,double,double);
int GPSGeData(struct GPSPosition *);
// buffer / size
static int GetNMEARecord(char *,int)
|
|
|