[gps-osp] Implement gps_is_locked function for gps_osp

main-solar-only
Richard Meadows 2016-01-15 22:17:22 +00:00
rodzic def6256513
commit a9a8e20071
3 zmienionych plików z 24 dodań i 6 usunięć

Wyświetl plik

@ -68,8 +68,6 @@ struct ubx_nav_posllh gps_get_nav_posllh();
struct ubx_nav_sol gps_get_nav_sol();
struct ubx_nav_timeutc gps_get_nav_timeutc();
uint8_t gps_is_locked(void);
void gps_set_powersave(bool powersave_on);
void gps_set_power_state(bool gnss_running);
@ -119,8 +117,6 @@ struct gps_data_t {
uint8_t time_to_first_fix; /* seconds / counts */
};
uint8_t gps_is_locked(void);
enum gps_error_t gps_get_error_state(void);
struct gps_data_t gps_get_data(void);
@ -128,8 +124,9 @@ void gps_setup(void);
#endif /* GPS_TYPE_DUMMY */
/* Both ------------------------------------------------------------ */
/* All ------------------------------------------------------------ */
enum gps_flight_state_t gps_get_flight_state(void);
uint8_t gps_is_locked(void);
void gps_usart_init_enable(uint32_t baud_rate);
void gps_reset(void);

Wyświetl plik

@ -324,7 +324,8 @@ void gps_setup(void)
;
}
uint8_t gps_is_locked(void) {
uint8_t gps_is_locked(void)
{
return 1; /* locked */
}

Wyświetl plik

@ -72,6 +72,11 @@ enum gps_power_state_t gps_power_state = GPS_HIBERNATE;
*/
enum gps_flight_state_t gps_flight_state = GPS_FLIGHT_STATE_LAUNCH;
/**
* Lock State
*/
uint8_t gps_is_locked_priv = 0;
/**
* OSP Output Ack/Nack
*/
@ -518,6 +523,19 @@ void gps_make_hibernate(void)
}
}
/**
* =============================================================================
* Lock State ==================================================================
* =============================================================================
*/
/**
* Lock state. Set by gps_get_data
*/
uint8_t gps_is_locked(void)
{
return gps_is_locked_priv;
}
/**
* =============================================================================
@ -574,6 +592,7 @@ struct gps_data_t gps_get_data(void)
gps_make_hibernate();
data.is_locked = 1; /* valid fix */
gps_is_locked_priv = 1;
data.latitude = osp_out_geodetic_navigation_data.payload.latitude; /* hndeg */
data.longitude = osp_out_geodetic_navigation_data.payload.longitude; /* hndeg */
data.altitude = osp_out_geodetic_navigation_data.payload.altitude_from_msl*10; /* cm -> mm */
@ -600,6 +619,7 @@ struct gps_data_t gps_get_data(void)
/* invalid */
memset(&data, 0, sizeof(struct gps_data_t));
gps_is_locked_priv = 0; /* not locked */
data.time_to_first_fix = i;
return data;