kopia lustrzana https://github.com/bristol-seds/pico-tracker
gps_osp get gps time
rodzic
de619c94a7
commit
66564a452c
|
@ -45,6 +45,9 @@ enum gps_flight_state_t {
|
|||
GPS_FLIGHT_STATE_FLOAT,
|
||||
};
|
||||
|
||||
/* UBX ------------------------------------------------------------- */
|
||||
#ifdef GPS_TYPE_UBX
|
||||
|
||||
/**
|
||||
* GPS Data
|
||||
*/
|
||||
|
@ -53,12 +56,8 @@ struct gps_data_t {
|
|||
int32_t altitude; /* mm */
|
||||
uint8_t satillite_count;
|
||||
uint8_t is_locked; /* 1 = locked, 0 = not locked */
|
||||
uint8_t time_to_first_fix; /* seconds / counts */
|
||||
};
|
||||
|
||||
/* UBX ------------------------------------------------------------- */
|
||||
#ifdef GPS_TYPE_UBX
|
||||
|
||||
void gps_update_time(void);
|
||||
void gps_update_position(void);
|
||||
int gps_update_time_pending(void);
|
||||
|
@ -82,8 +81,21 @@ void gps_set_powersave_auto(void);
|
|||
/* OSP ------------------------------------------------------------- */
|
||||
#ifdef GPS_TYPE_OSP
|
||||
|
||||
enum gps_error_t gps_get_error_state(void);
|
||||
/**
|
||||
* GPS Data
|
||||
*/
|
||||
struct gps_data_t {
|
||||
uint16_t year; /* years */
|
||||
uint8_t month, day, hour, minute, second; /* months, days, hours, minutes, seconds */
|
||||
int32_t latitude, longitude; /* hndeg */
|
||||
int32_t altitude; /* mm */
|
||||
uint8_t satillite_count;
|
||||
uint8_t is_locked; /* 1 = locked, 0 = not locked */
|
||||
uint8_t time_to_first_fix; /* seconds / counts */
|
||||
};
|
||||
|
||||
|
||||
enum gps_error_t gps_get_error_state(void);
|
||||
struct gps_data_t gps_get_data(void);
|
||||
|
||||
void gps_setup(void);
|
||||
|
|
|
@ -79,7 +79,16 @@ struct tracker_datapoint* collect_data(void)
|
|||
datapoint.altitude = data.altitude; /* mm */
|
||||
datapoint.satillite_count = data.satillite_count;
|
||||
datapoint.time_to_first_fix = data.time_to_first_fix; /* seconds / counts */
|
||||
|
||||
datapoint.time.year = data.year;
|
||||
datapoint.time.month = data.month;
|
||||
datapoint.time.day = data.day;
|
||||
datapoint.time.hour = data.hour;
|
||||
datapoint.time.minute = data.minute;
|
||||
datapoint.time.second = data.second; /* seconds */
|
||||
}
|
||||
|
||||
|
||||
#endif /* GPS_TYPE_OSP */
|
||||
|
||||
|
||||
|
|
|
@ -580,6 +580,13 @@ struct gps_data_t gps_get_data(void)
|
|||
data.satillite_count = osp_out_geodetic_navigation_data.payload.svs_in_fix;
|
||||
data.time_to_first_fix = i+1; /* number of geo nav packets this took */
|
||||
|
||||
data.year = osp_out_geodetic_navigation_data.payload.utc_year;
|
||||
data.month = osp_out_geodetic_navigation_data.payload.utc_month;
|
||||
data.day = osp_out_geodetic_navigation_data.payload.utc_day;
|
||||
data.hour = osp_out_geodetic_navigation_data.payload.utc_hour;
|
||||
data.minute = osp_out_geodetic_navigation_data.payload.utc_minute;
|
||||
data.second = (osp_out_geodetic_navigation_data.payload.utc_second+500)/1000; /* ms -> s */
|
||||
|
||||
gps_set_flight_state(data.altitude);
|
||||
|
||||
return data;
|
||||
|
|
Ładowanie…
Reference in New Issue