diff --git a/conf/firmwares/subsystems/fixedwing/ins_vectornav.makefile b/conf/firmwares/subsystems/fixedwing/ins_vectornav.makefile index ce86af8221..ddeef1b323 100644 --- a/conf/firmwares/subsystems/fixedwing/ins_vectornav.makefile +++ b/conf/firmwares/subsystems/fixedwing/ins_vectornav.makefile @@ -19,7 +19,7 @@ sim.CFLAGS += -DINS_TYPE_H=\"subsystems/ins/ins_gps_passthrough_utm.h\" sim.srcs += $(SRC_SUBSYSTEMS)/ins/ins_gps_passthrough_utm.c sim.CFLAGS += -DUSE_GPS -sim.CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_sim.h\" +sim.CFLAGS += -DPRIMARY_GPS_TYPE_H=\"subsystems/gps/gps_sim.h\" sim.srcs += $(SRC_SUBSYSTEMS)/gps/gps_sim.c sim.srcs += $(SRC_SUBSYSTEMS)/gps.c diff --git a/conf/firmwares/subsystems/fixedwing/ins_xsens.makefile b/conf/firmwares/subsystems/fixedwing/ins_xsens.makefile index c243ad9f96..7c5c390035 100644 --- a/conf/firmwares/subsystems/fixedwing/ins_xsens.makefile +++ b/conf/firmwares/subsystems/fixedwing/ins_xsens.makefile @@ -62,7 +62,7 @@ $(TARGET).CFLAGS += -DINS_TYPE_H=\"subsystems/ins/ins_gps_passthrough_utm.h\" $(TARGET).srcs += $(SRC_SUBSYSTEMS)/ins/ins_gps_passthrough_utm.c $(TARGET).CFLAGS += -DUSE_GPS -$(TARGET).CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_sim.h\" +$(TARGET).CFLAGS += -DPRIMARY_GPS_TYPE_H=\"subsystems/gps/gps_sim.h\" $(TARGET).srcs += $(SRC_SUBSYSTEMS)/gps/gps_sim.c $(TARGET).srcs += $(SRC_SUBSYSTEMS)/gps.c diff --git a/conf/firmwares/subsystems/rotorcraft/gps_ardrone2.makefile b/conf/firmwares/subsystems/rotorcraft/gps_ardrone2.makefile index 49de927e45..96d287b32d 100644 --- a/conf/firmwares/subsystems/rotorcraft/gps_ardrone2.makefile +++ b/conf/firmwares/subsystems/rotorcraft/gps_ardrone2.makefile @@ -16,6 +16,6 @@ ap.srcs += $(SRC_SUBSYSTEMS)/gps/gps_ardrone2.c $(TARGET).srcs += $(SRC_SUBSYSTEMS)/gps.c nps.CFLAGS += -DUSE_GPS -nps.CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_sim.h\" +nps.CFLAGS += -DPRIMARY_GPS_TYPE_H=\"subsystems/gps/gps_sim.h\" nps.srcs += $(SRC_SUBSYSTEMS)/gps/gps_sim_nps.c diff --git a/conf/firmwares/subsystems/shared/gps_furuno.makefile b/conf/firmwares/subsystems/shared/gps_furuno.makefile index 648cf1d7f2..430720e43c 100644 --- a/conf/firmwares/subsystems/shared/gps_furuno.makefile +++ b/conf/firmwares/subsystems/shared/gps_furuno.makefile @@ -21,7 +21,7 @@ ap.srcs += $(SRC_SUBSYSTEMS)/gps/gps_nmea.c $(SRC_SUBSYSTEMS)/gps/gps_furuno.c $(TARGET).srcs += $(SRC_SUBSYSTEMS)/gps.c sim.CFLAGS += -DUSE_GPS -sim.CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_sim.h\" +sim.CFLAGS += -DPRIMARY_GPS_TYPE_H=\"subsystems/gps/gps_sim.h\" sim.srcs += $(SRC_SUBSYSTEMS)/gps/gps_sim.c nps.CFLAGS += -DUSE_GPS diff --git a/conf/firmwares/subsystems/shared/gps_mediatek_diy.makefile b/conf/firmwares/subsystems/shared/gps_mediatek_diy.makefile index 8136a07739..2d2bdd8c0f 100644 --- a/conf/firmwares/subsystems/shared/gps_mediatek_diy.makefile +++ b/conf/firmwares/subsystems/shared/gps_mediatek_diy.makefile @@ -20,7 +20,7 @@ ap.srcs += $(SRC_SUBSYSTEMS)/gps/gps_mtk.c $(TARGET).srcs += $(SRC_SUBSYSTEMS)/gps.c sim.CFLAGS += -DUSE_GPS -sim.CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_sim.h\" +sim.CFLAGS += -DPRIMARY_GPS_TYPE_H=\"subsystems/gps/gps_sim.h\" sim.srcs += $(SRC_SUBSYSTEMS)/gps/gps_sim.c nps.CFLAGS += -DUSE_GPS diff --git a/conf/firmwares/subsystems/shared/gps_nmea.makefile b/conf/firmwares/subsystems/shared/gps_nmea.makefile index 986259fbbc..5340a29afe 100644 --- a/conf/firmwares/subsystems/shared/gps_nmea.makefile +++ b/conf/firmwares/subsystems/shared/gps_nmea.makefile @@ -20,7 +20,7 @@ ap.srcs += $(SRC_SUBSYSTEMS)/gps/gps_nmea.c $(TARGET).srcs += $(SRC_SUBSYSTEMS)/gps.c sim.CFLAGS += -DUSE_GPS -sim.CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_sim.h\" +sim.CFLAGS += -DPRIMARY_GPS_TYPE_H=\"subsystems/gps/gps_sim.h\" sim.srcs += $(SRC_SUBSYSTEMS)/gps/gps_sim.c nps.CFLAGS += -DUSE_GPS diff --git a/conf/firmwares/subsystems/shared/gps_piksi.makefile b/conf/firmwares/subsystems/shared/gps_piksi.makefile index c33a56f981..d910ecbf8f 100644 --- a/conf/firmwares/subsystems/shared/gps_piksi.makefile +++ b/conf/firmwares/subsystems/shared/gps_piksi.makefile @@ -24,7 +24,7 @@ ap.CFLAGS += -I$(PAPARAZZI_SRC)/sw/ext/libsbp/c/include ap.srcs += $(PAPARAZZI_SRC)/sw/ext/libsbp/c/src/sbp.c $(PAPARAZZI_SRC)/sw/ext/libsbp/c/src/edc.c sim.CFLAGS += -DUSE_GPS -sim.CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_sim.h\" +sim.CFLAGS += -DPRIMARY_GPS_TYPE_H=\"subsystems/gps/gps_sim.h\" sim.srcs += $(SRC_SUBSYSTEMS)/gps/gps_sim.c nps.CFLAGS += -DUSE_GPS diff --git a/conf/firmwares/subsystems/shared/gps_ublox.makefile b/conf/firmwares/subsystems/shared/gps_ublox.makefile index e6a00512a2..4c5c6996b3 100644 --- a/conf/firmwares/subsystems/shared/gps_ublox.makefile +++ b/conf/firmwares/subsystems/shared/gps_ublox.makefile @@ -19,7 +19,7 @@ ap.srcs += $(SRC_SUBSYSTEMS)/gps/gps_ubx.c $(TARGET).srcs += $(SRC_SUBSYSTEMS)/gps.c sim.CFLAGS += -DUSE_GPS -sim.CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_sim.h\" +sim.CFLAGS += -DPRIMARY_GPS_TYPE_H=\"subsystems/gps/gps_sim.h\" sim.srcs += $(SRC_SUBSYSTEMS)/gps/gps_sim.c nps.CFLAGS += -DUSE_GPS diff --git a/conf/firmwares/subsystems/shared/ins_xsens700.makefile b/conf/firmwares/subsystems/shared/ins_xsens700.makefile index 58be4d9d3f..a1a886835b 100644 --- a/conf/firmwares/subsystems/shared/ins_xsens700.makefile +++ b/conf/firmwares/subsystems/shared/ins_xsens700.makefile @@ -56,7 +56,7 @@ $(TARGET).CFLAGS += -DINS_TYPE_H=\"subsystems/ins/ins_gps_passthrough_utm.h\" $(TARGET).srcs += $(SRC_SUBSYSTEMS)/ins/ins_gps_passthrough_utm.c $(TARGET).CFLAGS += -DUSE_GPS -$(TARGET).CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_sim.h\" +$(TARGET).CFLAGS += -DPRIMARY_GPS_TYPE_H=\"subsystems/gps/gps_sim.h\" $(TARGET).srcs += $(SRC_SUBSYSTEMS)/gps/gps_sim.c $(TARGET).srcs += $(SRC_SUBSYSTEMS)/gps.c diff --git a/sw/airborne/subsystems/gps/gps_sim.c b/sw/airborne/subsystems/gps/gps_sim.c index 1174c883b6..9887099f08 100644 --- a/sw/airborne/subsystems/gps/gps_sim.c +++ b/sw/airborne/subsystems/gps/gps_sim.c @@ -19,14 +19,18 @@ * Boston, MA 02111-1307, USA. */ -#include "subsystems/gps.h" +#include "subsystems/gps/gps_sim.h" #include "subsystems/abi.h" -void gps_impl_init(void) +void sim_gps_impl_init(void) { gps.fix = GPS_FIX_NONE; } +void sim_gps_event(void) +{ +} + void gps_sim_publish(void) { uint32_t now_ts = get_sys_time_usec(); @@ -38,3 +42,11 @@ void gps_sim_publish(void) } AbiSendMsgGPS(GPS_SIM_ID, now_ts, &gps); } + +/* + * register callbacks & structs + */ +void sim_gps_register(void) +{ + gps_register_impl(sim_gps_impl_init, sim_gps_event, GPS_SIM_ID, 0); +} diff --git a/sw/airborne/subsystems/gps/gps_sim.h b/sw/airborne/subsystems/gps/gps_sim.h index b7012d92d5..7c8523e145 100644 --- a/sw/airborne/subsystems/gps/gps_sim.h +++ b/sw/airborne/subsystems/gps/gps_sim.h @@ -2,13 +2,19 @@ #define GPS_SIM_H #include "std.h" +#include "subsystems/gps.h" -#define GPS_NB_CHANNELS 16 - -extern void gps_impl_init(void); +// #define GPS_NB_CHANNELS 16 +#ifndef PrimaryGpsImpl +#define PrimaryGpsImpl sim +#endif extern void gps_sim_publish(void); -#define GpsEvent() {} +extern void sim_gps_event(void); +extern void sim_gps_impl_init(void); +extern void sim_gps_register(void); + +// #define GpsEvent() {} #endif /* GPS_SIM_H */