[gps datalink] added new gps support

This commit is contained in:
masierra
2016-02-03 08:54:12 -08:00
parent 112d1f2d70
commit cd0f166b3f
3 changed files with 25 additions and 5 deletions
@@ -3,7 +3,7 @@
GPS_LED ?= none
ap.srcs += $(SRC_SUBSYSTEMS)/gps.c
ap.CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_datalink.h\"
ap.CFLAGS += -DPRIMARY_GPS_TYPE_H=\"subsystems/gps/gps_datalink.h\"
ap.srcs += $(SRC_SUBSYSTEMS)/gps/gps_datalink.c
ap.CFLAGS += -DUSE_GPS -DGPS_DATALINK
@@ -14,5 +14,5 @@ endif
nps.CFLAGS += -DUSE_GPS
nps.srcs += $(SRC_SUBSYSTEMS)/gps.c
nps.CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_sim_nps.h\"
nps.CFLAGS += -DPRIMARY_GPS_TYPE_H=\"subsystems/gps/gps_sim_nps.h\"
nps.srcs += $(SRC_SUBSYSTEMS)/gps/gps_sim_nps.c
+13 -1
View File
@@ -40,7 +40,7 @@ struct EnuCoor_i enu_pos, enu_speed;
bool_t gps_available; ///< Is set to TRUE when a new REMOTE_GPS packet is received and parsed
/** GPS initialization */
void gps_impl_init(void)
void datalink_gps_impl_init(void)
{
gps.fix = GPS_FIX_NONE;
gps_available = FALSE;
@@ -58,6 +58,10 @@ void gps_impl_init(void)
ltp_def_from_ecef_i(&ltp_def, &ecef_nav0);
}
void datalink_gps_event(void)
{
}
// Parse the REMOTE_GPS_SMALL datalink packet
void parse_gps_datalink_small(uint8_t num_sv, uint32_t pos_xyz, uint32_t speed_xyz, int16_t heading)
{
@@ -173,3 +177,11 @@ void parse_gps_datalink(uint8_t numsv, int32_t ecef_x, int32_t ecef_y, int32_t e
AbiSendMsgGPS(GPS_DATALINK_ID, now_ts, &gps);
}
/*
* register callbacks & structs
*/
void datalink_gps_register(void)
{
gps_register_impl(datalink_gps_impl_init, datalink_gps_event, GPS_DATALINK_ID, 0);
}
+10 -2
View File
@@ -32,7 +32,15 @@
#include "std.h"
#include "generated/airframe.h"
#define GPS_NB_CHANNELS 0
#define DATALINK_GPS_NB_CHANNELS 0
#ifndef PrimaryGpsImpl
#define PrimaryGpsImpl datalink
#endif
extern void datalink_gps_event(void);
extern void datalink_gps_impl_init(void);
extern void datalink_gps_register(void);
extern bool_t gps_available;
@@ -44,6 +52,6 @@ extern void parse_gps_datalink(uint8_t numsv, int32_t ecef_x, int32_t ecef_y, in
uint32_t tow, int32_t course);
// dummy
#define GpsEvent() {}
// #define GpsEvent() {}
#endif /* GPS_DATALINK_H */