diff --git a/conf/conf_tests.xml b/conf/conf_tests.xml index 9abfdc95e5..3a9fbcbde3 100644 --- a/conf/conf_tests.xml +++ b/conf/conf_tests.xml @@ -84,7 +84,7 @@ telemetry="telemetry/default_rotorcraft_mavlink.xml" flight_plan="flight_plans/rotorcraft_basic.xml" settings="settings/rotorcraft_basic.xml settings/estimation/ahrs_secondary.xml" - settings_modules="modules/ahrs_float_mlkf.xml modules/ahrs_int_cmpl_quat.xml modules/air_data.xml modules/geo_mag.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_basic_rotorcraft.xml modules/stabilization_int_quat.xml" + settings_modules="modules/ahrs_float_mlkf.xml modules/ahrs_int_cmpl_quat.xml modules/air_data.xml modules/geo_mag.xml modules/gps.xml modules/gps_ublox.xml modules/gps_ubx_ucenter.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_rotorcraft.xml modules/stabilization_int_quat.xml" gui_color="blue" /> diff --git a/conf/modules/actuators_ardrone2.xml b/conf/modules/actuators_ardrone2.xml index f82241f8da..6c97bd4950 100644 --- a/conf/modules/actuators_ardrone2.xml +++ b/conf/modules/actuators_ardrone2.xml @@ -10,7 +10,6 @@ actuators actuators -
diff --git a/conf/modules/actuators_bebop.xml b/conf/modules/actuators_bebop.xml index 15574234c1..ae53df0c9f 100644 --- a/conf/modules/actuators_bebop.xml +++ b/conf/modules/actuators_bebop.xml @@ -11,7 +11,6 @@ i2c,actuators actuators -
diff --git a/conf/modules/actuators_disco.xml b/conf/modules/actuators_disco.xml index abdde8b604..6481e4feec 100644 --- a/conf/modules/actuators_disco.xml +++ b/conf/modules/actuators_disco.xml @@ -10,7 +10,6 @@ i2c,actuators actuators -
diff --git a/conf/modules/actuators_uavcan.xml b/conf/modules/actuators_uavcan.xml index 7c6cdf0d6d..bf1cb824bb 100644 --- a/conf/modules/actuators_uavcan.xml +++ b/conf/modules/actuators_uavcan.xml @@ -11,7 +11,6 @@ uavcan,actuators actuators -
diff --git a/conf/modules/ahrs_chimu_spi.xml b/conf/modules/ahrs_chimu_spi.xml index de67e9e3a8..73b30cc903 100644 --- a/conf/modules/ahrs_chimu_spi.xml +++ b/conf/modules/ahrs_chimu_spi.xml @@ -9,7 +9,6 @@ spi_slave_hs ahrs,imu -
diff --git a/conf/modules/ahrs_float_cmpl_quat.xml b/conf/modules/ahrs_float_cmpl_quat.xml index 795c9720c2..0e07491abf 100644 --- a/conf/modules/ahrs_float_cmpl_quat.xml +++ b/conf/modules/ahrs_float_cmpl_quat.xml @@ -39,7 +39,6 @@ ahrs_common,@imu,@gps|@mag ahrs - diff --git a/conf/modules/ahrs_float_cmpl_rmat.xml b/conf/modules/ahrs_float_cmpl_rmat.xml index ca0d0ab04f..788d11e8c8 100644 --- a/conf/modules/ahrs_float_cmpl_rmat.xml +++ b/conf/modules/ahrs_float_cmpl_rmat.xml @@ -35,7 +35,6 @@ ahrs_common,@imu,@gps|@mag ahrs - diff --git a/conf/modules/ahrs_float_dcm.xml b/conf/modules/ahrs_float_dcm.xml index 07c09cc631..c0a2fee7b0 100644 --- a/conf/modules/ahrs_float_dcm.xml +++ b/conf/modules/ahrs_float_dcm.xml @@ -34,7 +34,6 @@ ahrs_common,@imu,@gps ahrs - diff --git a/conf/modules/ahrs_float_mlkf.xml b/conf/modules/ahrs_float_mlkf.xml index 62b8e311a0..f7661eaa62 100644 --- a/conf/modules/ahrs_float_mlkf.xml +++ b/conf/modules/ahrs_float_mlkf.xml @@ -29,7 +29,6 @@ ahrs_common,@imu,@mag ahrs - diff --git a/conf/modules/ahrs_int_cmpl_quat.xml b/conf/modules/ahrs_int_cmpl_quat.xml index e4e0ea1461..4901c69009 100644 --- a/conf/modules/ahrs_int_cmpl_quat.xml +++ b/conf/modules/ahrs_int_cmpl_quat.xml @@ -51,7 +51,6 @@ ahrs_common,@imu,@mag|@gps ahrs - diff --git a/conf/modules/ahrs_vectornav.xml b/conf/modules/ahrs_vectornav.xml index ccddd7796c..9c2cfd4f25 100644 --- a/conf/modules/ahrs_vectornav.xml +++ b/conf/modules/ahrs_vectornav.xml @@ -12,7 +12,6 @@ uart ahrs,imu -
diff --git a/conf/modules/board_matek_f405_wing.xml b/conf/modules/board_matek_f405_wing.xml index 4dc4a3fe0a..5c3dc2874f 100644 --- a/conf/modules/board_matek_f405_wing.xml +++ b/conf/modules/board_matek_f405_wing.xml @@ -13,9 +13,8 @@ - spi_master,osd_max7456,baro_bmp280_i2c + spi_master,osd_max7456,baro_bmp280_i2c,imu_mpu6000 - diff --git a/conf/modules/board_matek_f765_car.xml b/conf/modules/board_matek_f765_car.xml index b11fd511de..7f95034103 100644 --- a/conf/modules/board_matek_f765_car.xml +++ b/conf/modules/board_matek_f765_car.xml @@ -14,9 +14,8 @@ - spi_master,baro_bmp280_i2c,current_sensor + spi_master,baro_bmp280_i2c,current_sensor,imu_mpu6000 - diff --git a/conf/modules/board_matek_f765_wing.xml b/conf/modules/board_matek_f765_wing.xml index d14f3675ed..8325b73de1 100644 --- a/conf/modules/board_matek_f765_wing.xml +++ b/conf/modules/board_matek_f765_wing.xml @@ -14,9 +14,8 @@ - spi_master,osd_max7456,baro_bmp280_i2c,current_sensor + spi_master,osd_max7456,baro_bmp280_i2c,current_sensor,imu_mpu6000 - diff --git a/conf/modules/board_tawaki.xml b/conf/modules/board_tawaki.xml index 1b6f4f43e8..20f3383f93 100644 --- a/conf/modules/board_tawaki.xml +++ b/conf/modules/board_tawaki.xml @@ -13,9 +13,8 @@ - baro_bmp3,mag_lis3mdl + baro_bmp3,mag_lis3mdl,imu_mpu6000 - diff --git a/conf/modules/boards/bebop.xml b/conf/modules/boards/bebop.xml index c4b04413e1..2d88f3e73d 100644 --- a/conf/modules/boards/bebop.xml +++ b/conf/modules/boards/bebop.xml @@ -7,7 +7,7 @@ - baro_ms5611_i2c + baro_ms5611_i2c,sonar_bebop diff --git a/conf/modules/boards/bebop2.xml b/conf/modules/boards/bebop2.xml index d865feed1a..76b4a04cac 100644 --- a/conf/modules/boards/bebop2.xml +++ b/conf/modules/boards/bebop2.xml @@ -7,7 +7,7 @@ - baro_ms5611_i2c + baro_ms5611_i2c,sonar_bebop diff --git a/conf/modules/boards/disco.xml b/conf/modules/boards/disco.xml index 2d404f86d5..86843cef10 100644 --- a/conf/modules/boards/disco.xml +++ b/conf/modules/boards/disco.xml @@ -7,7 +7,7 @@ - baro_ms5611_i2c + baro_ms5611_i2c,sonar_bebop diff --git a/conf/modules/firmwares/fixedwing.xml b/conf/modules/firmwares/fixedwing.xml index f3c7a61441..562b291770 100644 --- a/conf/modules/firmwares/fixedwing.xml +++ b/conf/modules/firmwares/fixedwing.xml @@ -9,6 +9,7 @@ system_core,autopilot_gnc_fw,actuators_pwm + nav_basic_fw diff --git a/conf/modules/firmwares/rotorcraft.xml b/conf/modules/firmwares/rotorcraft.xml index 4f7a79983c..7e3404b7af 100644 --- a/conf/modules/firmwares/rotorcraft.xml +++ b/conf/modules/firmwares/rotorcraft.xml @@ -7,7 +7,8 @@ - system_core,autopilot_gnc,guidance_rotorcraft + system_core,autopilot_gnc + nav_basic_rotorcraft,guidance_pid_rotorcraft diff --git a/conf/modules/firmwares/rover.xml b/conf/modules/firmwares/rover.xml index 2a82d06fca..1b612dd14a 100644 --- a/conf/modules/firmwares/rover.xml +++ b/conf/modules/firmwares/rover.xml @@ -8,6 +8,7 @@ system_core,autopilot_gnc + nav_rover_base diff --git a/conf/modules/gps_datalink.xml b/conf/modules/gps_datalink.xml index 9ba12af8f4..8345fee1c8 100644 --- a/conf/modules/gps_datalink.xml +++ b/conf/modules/gps_datalink.xml @@ -11,8 +11,6 @@ gps,@datalink gps - -
diff --git a/conf/modules/gps_furuno.xml b/conf/modules/gps_furuno.xml index a54a1c827d..ece0f76ff4 100644 --- a/conf/modules/gps_furuno.xml +++ b/conf/modules/gps_furuno.xml @@ -13,8 +13,6 @@ uart,gps gps - -
diff --git a/conf/modules/gps_intermcu.xml b/conf/modules/gps_intermcu.xml index 4f8e13e6d2..706c30e80e 100644 --- a/conf/modules/gps_intermcu.xml +++ b/conf/modules/gps_intermcu.xml @@ -11,8 +11,6 @@ gps,@datalink gps - -
diff --git a/conf/modules/gps_mediatek_diy.xml b/conf/modules/gps_mediatek_diy.xml index 8b16b18792..2598d94e72 100644 --- a/conf/modules/gps_mediatek_diy.xml +++ b/conf/modules/gps_mediatek_diy.xml @@ -13,8 +13,6 @@ uart,gps gps - -
diff --git a/conf/modules/gps_nmea.xml b/conf/modules/gps_nmea.xml index f19f56c6b6..b02bdd9449 100644 --- a/conf/modules/gps_nmea.xml +++ b/conf/modules/gps_nmea.xml @@ -13,8 +13,6 @@ uart,gps gps - -
diff --git a/conf/modules/gps_optitrack.xml b/conf/modules/gps_optitrack.xml index 5332321314..e4e62372ff 100644 --- a/conf/modules/gps_optitrack.xml +++ b/conf/modules/gps_optitrack.xml @@ -13,8 +13,6 @@ gps_datalink gps - - diff --git a/conf/modules/gps_piksi.xml b/conf/modules/gps_piksi.xml index e08660a2a0..c7b2f9ec8b 100644 --- a/conf/modules/gps_piksi.xml +++ b/conf/modules/gps_piksi.xml @@ -13,8 +13,6 @@ uart,gps gps - -
diff --git a/conf/modules/gps_sim_hitl.xml b/conf/modules/gps_sim_hitl.xml index e7fbce95ae..1db6e11fbb 100644 --- a/conf/modules/gps_sim_hitl.xml +++ b/conf/modules/gps_sim_hitl.xml @@ -11,7 +11,6 @@ gps gps -
diff --git a/conf/modules/gps_sirf.xml b/conf/modules/gps_sirf.xml index 76f48e944f..99e5f415a8 100644 --- a/conf/modules/gps_sirf.xml +++ b/conf/modules/gps_sirf.xml @@ -13,8 +13,6 @@ uart,gps gps - -
diff --git a/conf/modules/gps_skytraq.xml b/conf/modules/gps_skytraq.xml index 276b14006c..120fe8aa9a 100644 --- a/conf/modules/gps_skytraq.xml +++ b/conf/modules/gps_skytraq.xml @@ -13,8 +13,6 @@ uart,gps gps - -
diff --git a/conf/modules/gps_ublox.xml b/conf/modules/gps_ublox.xml index 68f7ddadd0..d95dcf20b5 100644 --- a/conf/modules/gps_ublox.xml +++ b/conf/modules/gps_ublox.xml @@ -28,8 +28,6 @@ uart,gps gps - -
diff --git a/conf/modules/gps_ubx_i2c.xml b/conf/modules/gps_ubx_i2c.xml index 7fc71b45c6..224e75d56f 100644 --- a/conf/modules/gps_ubx_i2c.xml +++ b/conf/modules/gps_ubx_i2c.xml @@ -13,8 +13,6 @@ i2c,gps_ublox gps - -
diff --git a/conf/modules/gps_udp.xml b/conf/modules/gps_udp.xml index 9e843ef9fa..356706245b 100644 --- a/conf/modules/gps_udp.xml +++ b/conf/modules/gps_udp.xml @@ -14,8 +14,6 @@ udp,gps gps - -
diff --git a/conf/modules/guidance_indi.xml b/conf/modules/guidance_indi.xml index f25e1c935e..766522ed4a 100644 --- a/conf/modules/guidance_indi.xml +++ b/conf/modules/guidance_indi.xml @@ -16,7 +16,7 @@ - @navigation + @navigation,guidance_rotorcraft guidance,attitude_command
diff --git a/conf/modules/guidance_indi_hybrid.xml b/conf/modules/guidance_indi_hybrid.xml index 2be1d22e12..ee95d95959 100644 --- a/conf/modules/guidance_indi_hybrid.xml +++ b/conf/modules/guidance_indi_hybrid.xml @@ -24,7 +24,7 @@ - @navigation + @navigation,guidance_rotorcraft guidance,attitude_command
diff --git a/conf/modules/guidance_pid_rotorcraft.xml b/conf/modules/guidance_pid_rotorcraft.xml index 32ffd42026..c8578ae333 100644 --- a/conf/modules/guidance_pid_rotorcraft.xml +++ b/conf/modules/guidance_pid_rotorcraft.xml @@ -38,7 +38,7 @@ - @stabilization + @stabilization,guidance_rotorcraft guidance,attitude_command
diff --git a/conf/modules/guidance_rotorcraft.xml b/conf/modules/guidance_rotorcraft.xml index 7a1a79711e..8c65276007 100644 --- a/conf/modules/guidance_rotorcraft.xml +++ b/conf/modules/guidance_rotorcraft.xml @@ -28,8 +28,7 @@ - - nav_basic_rotorcraft,guidance_pid_rotorcraft,@stabilization + @navigation,@stabilization guidance,attitude_command
diff --git a/conf/modules/imu_apogee.xml b/conf/modules/imu_apogee.xml index d641ab8d85..b24ea741e1 100644 --- a/conf/modules/imu_apogee.xml +++ b/conf/modules/imu_apogee.xml @@ -11,8 +11,6 @@ i2c,imu_common imu - -
diff --git a/conf/modules/imu_apogee_mpu9150.xml b/conf/modules/imu_apogee_mpu9150.xml index f050277ce9..95df61e4db 100644 --- a/conf/modules/imu_apogee_mpu9150.xml +++ b/conf/modules/imu_apogee_mpu9150.xml @@ -17,11 +17,9 @@ - i2c + i2c,imu_apogee imu,mag - -
diff --git a/conf/modules/imu_ardrone2.xml b/conf/modules/imu_ardrone2.xml index 28f2fd972c..09709f6ee8 100644 --- a/conf/modules/imu_ardrone2.xml +++ b/conf/modules/imu_ardrone2.xml @@ -10,8 +10,6 @@ uart,imu_common imu,mag,sonar - -
diff --git a/conf/modules/imu_aspirin_common.xml b/conf/modules/imu_aspirin_common.xml index 8d18b1dc15..5c12d2fb53 100644 --- a/conf/modules/imu_aspirin_common.xml +++ b/conf/modules/imu_aspirin_common.xml @@ -25,8 +25,6 @@ spi_master,i2c,imu_common imu,mag - -
diff --git a/conf/modules/imu_aspirin_i2c_common.xml b/conf/modules/imu_aspirin_i2c_common.xml index 314d40565e..42a526a5c0 100644 --- a/conf/modules/imu_aspirin_i2c_common.xml +++ b/conf/modules/imu_aspirin_i2c_common.xml @@ -23,8 +23,6 @@ i2c,imu_common imu,mag - -
diff --git a/conf/modules/imu_aspirin_i2c_v1.0.xml b/conf/modules/imu_aspirin_i2c_v1.0.xml index 79ea7f1c26..4019b1dd8d 100644 --- a/conf/modules/imu_aspirin_i2c_v1.0.xml +++ b/conf/modules/imu_aspirin_i2c_v1.0.xml @@ -23,8 +23,6 @@ imu_aspirin_i2c_common imu - - diff --git a/conf/modules/imu_aspirin_i2c_v1.5.xml b/conf/modules/imu_aspirin_i2c_v1.5.xml index a827312f9a..cc60c6e3ca 100644 --- a/conf/modules/imu_aspirin_i2c_v1.5.xml +++ b/conf/modules/imu_aspirin_i2c_v1.5.xml @@ -14,8 +14,6 @@ imu_aspirin_i2c_common imu - - diff --git a/conf/modules/imu_aspirin_v1.0.xml b/conf/modules/imu_aspirin_v1.0.xml index 69928486d5..768ea8a8cd 100644 --- a/conf/modules/imu_aspirin_v1.0.xml +++ b/conf/modules/imu_aspirin_v1.0.xml @@ -14,8 +14,6 @@ imu_aspirin_common imu - - diff --git a/conf/modules/imu_aspirin_v1.5.xml b/conf/modules/imu_aspirin_v1.5.xml index 24400c5e35..caea69850e 100644 --- a/conf/modules/imu_aspirin_v1.5.xml +++ b/conf/modules/imu_aspirin_v1.5.xml @@ -10,7 +10,10 @@ For configuration see the imu_aspirin_common module - + + imu_aspirin_common + imu + diff --git a/conf/modules/imu_aspirin_v2.1.xml b/conf/modules/imu_aspirin_v2.1.xml index a25629ff81..127e85bd7e 100644 --- a/conf/modules/imu_aspirin_v2.1.xml +++ b/conf/modules/imu_aspirin_v2.1.xml @@ -13,8 +13,6 @@ imu_aspirin_v2_common imu - - diff --git a/conf/modules/imu_aspirin_v2_common.xml b/conf/modules/imu_aspirin_v2_common.xml index 3091c9b750..69f066d883 100644 --- a/conf/modules/imu_aspirin_v2_common.xml +++ b/conf/modules/imu_aspirin_v2_common.xml @@ -24,8 +24,6 @@ spi_master,imu_common imu,mag - -
diff --git a/conf/modules/imu_bebop.xml b/conf/modules/imu_bebop.xml index b73be62beb..5dc38f78b0 100644 --- a/conf/modules/imu_bebop.xml +++ b/conf/modules/imu_bebop.xml @@ -21,9 +21,6 @@ i2c,imu_common imu,mag - - -
diff --git a/conf/modules/imu_bmi088_i2c.xml b/conf/modules/imu_bmi088_i2c.xml index dcf3746c29..c2aa173009 100644 --- a/conf/modules/imu_bmi088_i2c.xml +++ b/conf/modules/imu_bmi088_i2c.xml @@ -20,8 +20,6 @@ i2c,imu_common imu - -
diff --git a/conf/modules/imu_chimera.xml b/conf/modules/imu_chimera.xml index 0d24f8324f..1582011064 100644 --- a/conf/modules/imu_chimera.xml +++ b/conf/modules/imu_chimera.xml @@ -3,11 +3,14 @@ - MPU9250 IMU via SPI. - Basically the same as imu_mpu9250_spi, only changed axes assignment for Chimera. + MPU9250 IMU via I2C. + Basically the same as imu_mpu9250_i2c, only changed axes assignment for Chimera. - + + imu_mpu9250_i2c + imu + diff --git a/conf/modules/imu_cube.xml b/conf/modules/imu_cube.xml index 47fcd749b8..31d653e42b 100644 --- a/conf/modules/imu_cube.xml +++ b/conf/modules/imu_cube.xml @@ -13,8 +13,6 @@ spi_master,imu_common,intermcu_iomcu,imu_heater imu - -
diff --git a/conf/modules/imu_disco.xml b/conf/modules/imu_disco.xml index 6c864a1c7a..c16c84d79f 100644 --- a/conf/modules/imu_disco.xml +++ b/conf/modules/imu_disco.xml @@ -21,9 +21,6 @@ i2c,imu_common imu,mag - - -
diff --git a/conf/modules/imu_elle0.xml b/conf/modules/imu_elle0.xml index 633fb5700a..41033e0546 100644 --- a/conf/modules/imu_elle0.xml +++ b/conf/modules/imu_elle0.xml @@ -7,7 +7,10 @@ Basically the same as imu_mpu9250_spi, only changed axes assignment for Elle0. - + + imu_mpu9250_spi + imu + diff --git a/conf/modules/imu_lisa_m_v2.1.xml b/conf/modules/imu_lisa_m_v2.1.xml index 618eed1d9e..85ff5d17a9 100644 --- a/conf/modules/imu_lisa_m_v2.1.xml +++ b/conf/modules/imu_lisa_m_v2.1.xml @@ -20,8 +20,6 @@ imu_aspirin_v2_common imu - - diff --git a/conf/modules/imu_lisa_mx_v2.1.xml b/conf/modules/imu_lisa_mx_v2.1.xml index 1266e66c2e..fb5065f75b 100644 --- a/conf/modules/imu_lisa_mx_v2.1.xml +++ b/conf/modules/imu_lisa_mx_v2.1.xml @@ -7,5 +7,8 @@ This is just a convenience "alias" for imu_lisa_m_v2.1 - + + imu_lisa_m_v2.1 + +
diff --git a/conf/modules/imu_lisa_s_v1.0.xml b/conf/modules/imu_lisa_s_v1.0.xml index f438fcaade..93bada4e56 100644 --- a/conf/modules/imu_lisa_s_v1.0.xml +++ b/conf/modules/imu_lisa_s_v1.0.xml @@ -20,8 +20,6 @@ imu_aspirin_v2_common imu - - diff --git a/conf/modules/imu_mpu6000.xml b/conf/modules/imu_mpu6000.xml index 2c34a9781f..264aa06c80 100644 --- a/conf/modules/imu_mpu6000.xml +++ b/conf/modules/imu_mpu6000.xml @@ -17,8 +17,6 @@ spi_master,imu_common imu - -
diff --git a/conf/modules/imu_mpu6000_hmc5883.xml b/conf/modules/imu_mpu6000_hmc5883.xml index 686f882631..a71bb47afe 100644 --- a/conf/modules/imu_mpu6000_hmc5883.xml +++ b/conf/modules/imu_mpu6000_hmc5883.xml @@ -33,8 +33,6 @@ spi_master,i2c,imu_common imu,mag - -
diff --git a/conf/modules/imu_mpu60x0_i2c.xml b/conf/modules/imu_mpu60x0_i2c.xml index 5eb49f8d53..bdcc9a304a 100644 --- a/conf/modules/imu_mpu60x0_i2c.xml +++ b/conf/modules/imu_mpu60x0_i2c.xml @@ -16,8 +16,6 @@ i2c,imu_common imu - -
diff --git a/conf/modules/imu_mpu9250.xml b/conf/modules/imu_mpu9250.xml index d177f7f876..8384b5ac88 100644 --- a/conf/modules/imu_mpu9250.xml +++ b/conf/modules/imu_mpu9250.xml @@ -13,8 +13,6 @@ i2c,imu_common imu,mag - -
diff --git a/conf/modules/imu_mpu9250_i2c.xml b/conf/modules/imu_mpu9250_i2c.xml index 2f5759bfa1..7aacf7eb76 100644 --- a/conf/modules/imu_mpu9250_i2c.xml +++ b/conf/modules/imu_mpu9250_i2c.xml @@ -21,8 +21,6 @@ i2c,imu_common imu,mag - -
diff --git a/conf/modules/imu_mpu9250_spi.xml b/conf/modules/imu_mpu9250_spi.xml index 8c6c3b864f..3f47fcbf9e 100644 --- a/conf/modules/imu_mpu9250_spi.xml +++ b/conf/modules/imu_mpu9250_spi.xml @@ -25,8 +25,6 @@ spi_master,imu_common imu,mag - -
diff --git a/conf/modules/imu_openpilot_revo.xml b/conf/modules/imu_openpilot_revo.xml index 8ae7148aeb..ae75b594f2 100644 --- a/conf/modules/imu_openpilot_revo.xml +++ b/conf/modules/imu_openpilot_revo.xml @@ -24,8 +24,6 @@ spi_master,i2c,imu_common imu,mag - -
diff --git a/conf/modules/imu_openpilot_revo_nano.xml b/conf/modules/imu_openpilot_revo_nano.xml index a12abc5ee2..68df6eed42 100644 --- a/conf/modules/imu_openpilot_revo_nano.xml +++ b/conf/modules/imu_openpilot_revo_nano.xml @@ -26,8 +26,6 @@ spi_master,imu_common imu,mag - -
diff --git a/conf/modules/imu_px4fmu_v1.7.xml b/conf/modules/imu_px4fmu_v1.7.xml index b7d258f6d8..0b2028e01b 100644 --- a/conf/modules/imu_px4fmu_v1.7.xml +++ b/conf/modules/imu_px4fmu_v1.7.xml @@ -14,8 +14,6 @@ spi_master,i2c,imu_common imu,mag - -
diff --git a/conf/modules/imu_px4fmu_v2.4.xml b/conf/modules/imu_px4fmu_v2.4.xml index c02bfe4d96..b1f3ab3f4c 100644 --- a/conf/modules/imu_px4fmu_v2.4.xml +++ b/conf/modules/imu_px4fmu_v2.4.xml @@ -16,8 +16,6 @@ spi_master,i2c,imu_common imu,mag - -
diff --git a/conf/modules/imu_vectornav.xml b/conf/modules/imu_vectornav.xml index e7e10b73f3..1d97408247 100644 --- a/conf/modules/imu_vectornav.xml +++ b/conf/modules/imu_vectornav.xml @@ -14,8 +14,6 @@ uart,imu_common imu - -
diff --git a/conf/modules/imu_xsens.xml b/conf/modules/imu_xsens.xml index f530275123..2d0cf5085a 100644 --- a/conf/modules/imu_xsens.xml +++ b/conf/modules/imu_xsens.xml @@ -14,8 +14,6 @@ uart,imu_common imu,mag - -
diff --git a/conf/modules/ins_ext_pose.xml b/conf/modules/ins_ext_pose.xml index 51f29fa009..482f9e10d2 100644 --- a/conf/modules/ins_ext_pose.xml +++ b/conf/modules/ins_ext_pose.xml @@ -18,8 +18,6 @@ @gps,@datalink,@imu ahrs,ins - -
diff --git a/conf/modules/ins_nps.xml b/conf/modules/ins_nps.xml index 351f3c142b..1f680dc811 100644 --- a/conf/modules/ins_nps.xml +++ b/conf/modules/ins_nps.xml @@ -10,7 +10,6 @@ @imu,@gps ins -
diff --git a/conf/modules/ins_sim.xml b/conf/modules/ins_sim.xml index 691da7bb39..6e1598325c 100644 --- a/conf/modules/ins_sim.xml +++ b/conf/modules/ins_sim.xml @@ -10,8 +10,6 @@ @imu,@gps ins,ahrs - -
diff --git a/conf/modules/ins_vectornav.xml b/conf/modules/ins_vectornav.xml index 88c932a842..114eac1867 100644 --- a/conf/modules/ins_vectornav.xml +++ b/conf/modules/ins_vectornav.xml @@ -12,10 +12,6 @@ uart,gps imu,ins,ahrs,gps - - - -
diff --git a/conf/modules/ins_xsens.xml b/conf/modules/ins_xsens.xml index 8561d1583d..67b3e872cc 100644 --- a/conf/modules/ins_xsens.xml +++ b/conf/modules/ins_xsens.xml @@ -12,8 +12,6 @@ uart,gps ins,ahrs,gps - -
diff --git a/conf/modules/ins_xsens700.xml b/conf/modules/ins_xsens700.xml index fc6f6df1c2..d2b280d2ed 100644 --- a/conf/modules/ins_xsens700.xml +++ b/conf/modules/ins_xsens700.xml @@ -20,8 +20,6 @@ uart,gps ins,ahrs,gps - -
diff --git a/conf/modules/module.dtd b/conf/modules/module.dtd index f064afdb93..962e319f03 100644 --- a/conf/modules/module.dtd +++ b/conf/modules/module.dtd @@ -1,14 +1,15 @@ - + - + - + + @@ -37,10 +38,6 @@ name CDATA #REQUIRED dir CDATA #IMPLIED task CDATA #IMPLIED> - - @navigation + @mission
diff --git a/conf/modules/nav_lace.xml b/conf/modules/nav_lace.xml index a7d6001849..e18f4cb7bc 100644 --- a/conf/modules/nav_lace.xml +++ b/conf/modules/nav_lace.xml @@ -11,6 +11,10 @@ https://hal-enac.archives-ouvertes.fr/hal-02137839 + + @navigation + @mission +
diff --git a/conf/modules/nav_line.xml b/conf/modules/nav_line.xml index 760e5d9fc4..c45187a7bf 100644 --- a/conf/modules/nav_line.xml +++ b/conf/modules/nav_line.xml @@ -13,6 +13,7 @@ @navigation + @mission
diff --git a/conf/modules/nav_rosette.xml b/conf/modules/nav_rosette.xml index 6f38afd1bb..0360e0e93b 100644 --- a/conf/modules/nav_rosette.xml +++ b/conf/modules/nav_rosette.xml @@ -11,6 +11,10 @@ https://hal-enac.archives-ouvertes.fr/hal-02137839 + + @navigation + @mission +
diff --git a/conf/modules/nav_spiral_3D.xml b/conf/modules/nav_spiral_3D.xml index 21040d30cb..cf9ba270ca 100644 --- a/conf/modules/nav_spiral_3D.xml +++ b/conf/modules/nav_spiral_3D.xml @@ -22,6 +22,10 @@ + + @navigation + @mission +
diff --git a/conf/modules/nav_trinity.xml b/conf/modules/nav_trinity.xml index cfb96e4c3d..b2c9d8c98a 100644 --- a/conf/modules/nav_trinity.xml +++ b/conf/modules/nav_trinity.xml @@ -11,6 +11,10 @@ https://hal-enac.archives-ouvertes.fr/hal-02137839 + + @navigation + @mission +
diff --git a/conf/modules/shell.xml b/conf/modules/shell.xml index c979d37ace..3d65a354c2 100644 --- a/conf/modules/shell.xml +++ b/conf/modules/shell.xml @@ -7,7 +7,7 @@ - uart + uart
diff --git a/conf/modules/sys_mon.xml b/conf/modules/sys_mon.xml index 228c424edb..0835a133c6 100644 --- a/conf/modules/sys_mon.xml +++ b/conf/modules/sys_mon.xml @@ -34,6 +34,9 @@ For systems with RTOS, RTOS_MON message is sent instead and the following inform Again, the sys_mon module has to run at the full main frequency (so the reports are generated at 1 second intervals). + + shell +
diff --git a/conf/modules/syslink_dl.xml b/conf/modules/syslink_dl.xml index 1c4ba41276..2a2220c90c 100644 --- a/conf/modules/syslink_dl.xml +++ b/conf/modules/syslink_dl.xml @@ -8,8 +8,6 @@ - -
diff --git a/conf/modules/system_core.xml b/conf/modules/system_core.xml index a1960f6724..a55bf0b3e7 100644 --- a/conf/modules/system_core.xml +++ b/conf/modules/system_core.xml @@ -9,7 +9,7 @@ - mcu,math,state_interface,@actuators|@intermcu,settings|@no_settings + mcu,math,state_interface,@actuators|@intermcu,settings|@no_settings,@datalink,@telemetry core
diff --git a/conf/modules/targets/hitl.xml b/conf/modules/targets/hitl.xml index cc7918ddd8..17a88d3edb 100644 --- a/conf/modules/targets/hitl.xml +++ b/conf/modules/targets/hitl.xml @@ -9,6 +9,7 @@ targets/nps + gps_nps diff --git a/conf/modules/targets/nps.xml b/conf/modules/targets/nps.xml index 875e55c580..6d05772a9f 100644 --- a/conf/modules/targets/nps.xml +++ b/conf/modules/targets/nps.xml @@ -13,6 +13,7 @@ system_core,electrical,settings baro,airspeed,sonar,incidence,temperature + gps_nps,imu_nps,ins_nps,actuators_nps,telemetry_nps diff --git a/conf/modules/targets/sim.xml b/conf/modules/targets/sim.xml index 6569ad4117..cb817f55ba 100644 --- a/conf/modules/targets/sim.xml +++ b/conf/modules/targets/sim.xml @@ -11,7 +11,8 @@ - system_core,electrical,settings,actuators_dummy + system_core,electrical,settings,actuators_dummy,@gps,@ins + gps_sim,imu_sim,ins_sim,ahrs_sim,baro_sim,telemetry_sim diff --git a/conf/modules/telemetry_bluegiga.xml b/conf/modules/telemetry_bluegiga.xml index 9087ca5e8e..08cae2c0d1 100644 --- a/conf/modules/telemetry_bluegiga.xml +++ b/conf/modules/telemetry_bluegiga.xml @@ -26,8 +26,6 @@ spi_master,datalink_common datalink,telemetry - -
diff --git a/conf/modules/telemetry_nps_secure.xml b/conf/modules/telemetry_nps_secure.xml index 0163ad353f..752683435d 100644 --- a/conf/modules/telemetry_nps_secure.xml +++ b/conf/modules/telemetry_nps_secure.xml @@ -4,7 +4,7 @@ Telemetry module for NPS simulation - Common parts of comms, not to be used as a stadalone module. Instead, this module + Common parts of comms, not to be used as a standalone module. Instead, this module is autoloaded where appropriate. diff --git a/conf/modules/telemetry_secure_common.xml b/conf/modules/telemetry_secure_common.xml index 53bf23399c..c32c7a4a1b 100644 --- a/conf/modules/telemetry_secure_common.xml +++ b/conf/modules/telemetry_secure_common.xml @@ -11,9 +11,8 @@ uart,datalink_common datalink,telemetry + telemetry_nps_secure - - diff --git a/conf/modules/telemetry_superbitrf.xml b/conf/modules/telemetry_superbitrf.xml index d0aa403948..72dc4b398a 100644 --- a/conf/modules/telemetry_superbitrf.xml +++ b/conf/modules/telemetry_superbitrf.xml @@ -10,8 +10,6 @@ datalink_common datalink,telemetry - -
diff --git a/conf/modules/telemetry_transparent.xml b/conf/modules/telemetry_transparent.xml index 14c82691da..f2100153a2 100644 --- a/conf/modules/telemetry_transparent.xml +++ b/conf/modules/telemetry_transparent.xml @@ -17,8 +17,6 @@ uart,datalink_common datalink,telemetry - -
diff --git a/conf/modules/telemetry_transparent_frsky_x.xml b/conf/modules/telemetry_transparent_frsky_x.xml index 79c3e5f15c..58cc4b6260 100644 --- a/conf/modules/telemetry_transparent_frsky_x.xml +++ b/conf/modules/telemetry_transparent_frsky_x.xml @@ -23,8 +23,6 @@ datalink_common datalink,telemetry - -
diff --git a/conf/modules/telemetry_transparent_udp.xml b/conf/modules/telemetry_transparent_udp.xml index 8ccc2375d3..50705a297b 100644 --- a/conf/modules/telemetry_transparent_udp.xml +++ b/conf/modules/telemetry_transparent_udp.xml @@ -15,7 +15,6 @@ udp,datalink_common datalink,telemetry -
diff --git a/conf/modules/telemetry_w5100.xml b/conf/modules/telemetry_w5100.xml index 2260f069c3..2872e652fd 100644 --- a/conf/modules/telemetry_w5100.xml +++ b/conf/modules/telemetry_w5100.xml @@ -20,7 +20,6 @@ spi_master,datalink_common datalink,telemetry -
diff --git a/conf/modules/telemetry_xbee_api.xml b/conf/modules/telemetry_xbee_api.xml index 7647e7809a..8e147692cb 100644 --- a/conf/modules/telemetry_xbee_api.xml +++ b/conf/modules/telemetry_xbee_api.xml @@ -13,8 +13,6 @@ uart,datalink_common datalink,telemetry - -
diff --git a/sw/lib/ocaml/aircraft.ml b/sw/lib/ocaml/aircraft.ml index 7c00f1f767..2ddba7ccb5 100644 --- a/sw/lib/ocaml/aircraft.ml +++ b/sw/lib/ocaml/aircraft.ml @@ -31,7 +31,7 @@ let (//) = Filename.concat let get_string_opt = fun x -> match x with Some s -> s | None -> "" (* type of loading (user, auto) *) -type load_type = UserLoad | AutoLoad | Unloaded | Depend +type load_type = UserLoad | Unloaded | Depend | Suggested (* configuration sorted by target *) type target_conf = { @@ -93,7 +93,7 @@ let target_conf_add_module_config = fun conf target firmware m load_type -> (* add a module if compatible with target and firmware *) let target_conf_add_module = fun conf target firmware name mtype load_type -> - let m = Module.from_module_name name mtype in + let m = Module.from_module_name mtype name in (* check compatibility with target *) if Module.check_loading target firmware m then (* check if the module itself is already loaded, merging options in all case *) @@ -112,11 +112,13 @@ type sort_result = { conflicts: (string * string) list; (* modules in conflict *) required: (GC.bool_expr * string) list; (* functionalities required *) provided: (string * string) list; (* functionalities provided (should contain required) (func * module name) *) + suggested: (string, Module.t) Hashtbl.t; (* modules suggested for missing functionalities (hashtbl key: func) *) } let init_sort_result = fun () -> { resolved = []; unresolved = []; unloaded = []; - conflicts = []; required = []; provided = [] + conflicts = []; required = []; provided = []; + suggested = Hashtbl.create 5 } (* topological sort to load modules and their dependencies *) @@ -150,38 +152,48 @@ let resolve_modules_dep = fun config_by_target firmware user_target -> { s with required = s.required @ [(dep_expr, name)] } else (* get module from name *) - let _m = Module.from_module_name dep_name None in + let _m = Module.from_module_name None dep_name in test_module s _m (if name = "root" then UserLoad else Depend) | _ -> { s with required = s.required @ [(dep_expr, name)] } (* expression of required modules or functionalities *) ) sol dep.Module.requires in - (* iter over autoload modules *) - let sol = List.fold_left (fun s autoload -> - let _m = Module.from_module_name autoload.Module.aname autoload.Module.atype in - test_module s _m AutoLoad - ) sol m.Module.autoloads in + (* add suggests from root as normal modules with correct load type *) + let sol = + if name = "root" then + List.fold_left (fun s suggested -> test_module s (Module.from_module_name None suggested) Suggested) sol dep.Module.suggests + else sol + in (* add conflicts to list *) let sol = { sol with conflicts = sol.conflicts @ (List.map (fun c -> (c, name)) dep.Module.conflicts) } in (* add provides to list *) let sol = { sol with provided = sol.provided @ List.map (fun p -> (p, name)) dep.Module.provides } in - (* all dep and autoload resolved, add to list *) + (* add suggests to list *) + List.iter (fun s -> + let suggested_module = Module.from_module_name None s in + match suggested_module.Module.dependencies with + | Some dep_suggested -> List.iter (fun p -> Hashtbl.add sol.suggested p suggested_module) dep_suggested.Module.provides + | None -> () + ) dep.Module.suggests; + (* all dep resolved, add to list *) if not (name = "root") then (* don't add root module *) { sol with resolved = sol.resolved @ [(name, (load_type, m))] } (* add to list and return solution *) else sol (* return current solution *) | None -> - (* no dep, only check autoload *) - let sol = List.fold_left (fun s autoload -> - let _m = Module.from_module_name autoload.Module.aname autoload.Module.atype in - test_module s _m AutoLoad - ) sol m.Module.autoloads in + (* no dep, add to list *) if not (name = "root") then (* don't add root module *) { sol with resolved = sol.resolved @ [(name, (load_type, m))] } (* add to list and return solution *) else sol (* return current solution *) end else begin - (* not adding module, but still add autoloads if target is valid *) - let sol = List.fold_left (fun s autoload -> - let _m = Module.from_module_name autoload.Module.aname autoload.Module.atype in - test_module s _m AutoLoad - ) sol m.Module.autoloads in + (* not adding module, but still add suggested *) + let _ = match m.Module.dependencies with + | Some dep -> + List.iter (fun s -> + let suggested_module = Module.from_module_name None s in + match suggested_module.Module.dependencies with + | Some dep_suggested -> List.iter (fun p -> Hashtbl.add sol.suggested p suggested_module) dep_suggested.Module.provides + | None -> () + ) dep.Module.suggests + | None -> () + in (* return resolved but not adding module *) { sol with unloaded = sol.unloaded @ [(Unloaded, m)] } end @@ -203,7 +215,7 @@ let resolve_modules_dep = fun config_by_target firmware user_target -> s :: l (* return normal module name *) in let depend_names = match m.Module.dependencies with - | Some d -> GC.singletonize (List.fold_left extract_dep [] d.Module.requires) + | Some d -> GC.singletonize (List.fold_left extract_dep [] (d.Module.requires @ d.Module.recommends)) | None -> [] in n, depend_names @@ -254,7 +266,7 @@ let resolve_modules_dep = fun config_by_target firmware user_target -> Module.makefiles = [Module.empty_makefile] } in let solution = dep_resolve (init_sort_result ()) root_module target UserLoad in - (* test for conflicts and required functionalities and option if requested *) + (* test for conflicts functionalities and option if requested *) if (not (user_target = "")) && (target = user_target) then begin (* check conflicts for resolved modules *) List.iter (fun (c, cname) -> @@ -267,12 +279,28 @@ let resolve_modules_dep = fun config_by_target firmware user_target -> failwith (Printf.sprintf "Error [Aircraft]: find conflict with funcionality while loading '%s' for '%s' in target '%s'" name cname target) ) solution.provided ) solution.conflicts; - (* chek that all required functionalities or modules are provided *) - List.iter (fun (r, name) -> - if not (List.exists (fun p -> GC.eval_bool p r) (fst (List.split solution.provided) @ (fst (List.split solution.resolved)))) then - failwith (Printf.sprintf "Error [Aircraft]: functionality '%s' is not provided for '%s' in target '%s'" (GC.sprint_expr r) name target) - ) solution.required end; + (* chek that all required functionalities or modules are provided + * if not, search suggested list of modules, fail if nothing found + *) + let modules_and_func = (fst (List.split solution.provided)) @ (fst (List.split solution.resolved)) in + let selection = List.fold_left (fun s (r, name) -> + if (List.exists (fun p -> GC.eval_bool p r) modules_and_func) then s (* functionality is provided *) + else + let select = Hashtbl.fold (fun p m l -> if GC.eval_bool p r then m :: l else l) solution.suggested [] in + if List.length select = 0 && (not (user_target = "")) && (target = user_target) then + failwith (Printf.sprintf "Error [Aircraft]: functionality '%s' is not provided for '%s' in target '%s'" (GC.sprint_expr r) name target) + else + s @ select (* return selection *) + ) [] solution.required in + let solution = match selection with + | [] -> solution (* nothing to change *) + | _ -> + (* add selection to root dep *) + let root_dep = { root_dep with Module.suggests = (List.map (fun m -> m.Module.name) selection) } in + let root_module = { root_module with Module.dependencies = Some root_dep } in + dep_resolve (init_sort_result ()) root_module target UserLoad + in (* find final order *) let solution = dep_order solution in (* add configure, defines and modules to conf for all resolved modules *) @@ -562,7 +590,7 @@ let parse_aircraft = fun ?(parse_af=false) ?(parse_ap=false) ?(parse_fp=false) ? if verbose then begin let letter_of_load_tyoe = function - | UserLoad -> "U" | Depend -> "D" | AutoLoad -> "A" | Unloaded -> "N" + | UserLoad -> "U" | Depend -> "D" | Unloaded -> "N" | Suggested -> "S" in Printf.printf "Loading modules:\n"; List.iter2 (fun lt m -> diff --git a/sw/lib/ocaml/module.ml b/sw/lib/ocaml/module.ml index 3ca10d5f70..f09eeb7fa9 100644 --- a/sw/lib/ocaml/module.ml +++ b/sw/lib/ocaml/module.ml @@ -217,6 +217,8 @@ type dependencies = { requires: GC.bool_expr list; conflicts: string list; provides: string list; + recommends: GC.bool_expr list; + suggests: string list; } (* comma separated values *) @@ -226,7 +228,7 @@ let parse_func_list = fun l -> List.map (fun x -> "@"^x) (Str.split (Str.regexp (* pipe separated values *) let parse_module_options = Str.split (Str.regexp "[ \t]*|[ \t]*") -let empty_dep = { requires = []; conflicts = []; provides = [] } +let empty_dep = { requires = []; conflicts = []; provides = []; recommends = []; suggests = [] } let rec parse_dependencies dep = function | Xml.Element ("dep", _, children) -> @@ -237,13 +239,12 @@ let rec parse_dependencies dep = function { dep with conflicts = parse_comma_list conflicts } | Xml.Element ("provides", _, [Xml.PCData provides]) -> { dep with provides = parse_func_list provides } + | Xml.Element ("recommends", _, [Xml.PCData recommends]) -> + { dep with recommends = List.map (fun x -> GC.bool_expr_of_string (Some x)) (parse_comma_list recommends) } + | Xml.Element ("suggests", _, [Xml.PCData suggests]) -> + { dep with suggests = parse_comma_list suggests } | _ -> failwith "Module.parse_dependencies: unreachable" -type autoload = { - aname: string; - atype: string option - } - type config = { name: string; mtype: string option; dir: string option; @@ -269,7 +270,6 @@ type t = { path: string; doc: Xml.xml; dependencies: dependencies option; - autoloads: autoload list; settings: Settings.t list; headers: file list; inits: init list; @@ -283,7 +283,7 @@ type t = { let empty = { xml_filename = ""; name = ""; dir = None; task = None; path = ""; doc = Xml.Element ("doc", [], []); - dependencies = None; autoloads = []; settings = []; + dependencies = None; settings = []; headers = []; inits = []; periodics = []; events = []; datalinks = []; makefiles = []; xml = Xml.Element ("module", [], []) } @@ -299,10 +299,6 @@ let rec parse_xml m = function { m with settings = Settings.from_xml xml :: m.settings } | Xml.Element ("dep", _, _) as xml -> { m with dependencies = Some (parse_dependencies empty_dep xml) } - | Xml.Element ("autoload", _, []) as xml -> - let aname = find_name xml - and atype = ExtXml.attrib_opt xml "type" in - { m with autoloads = { aname; atype } :: m.autoloads } | Xml.Element ("header", [], files) -> { m with headers = List.fold_left (fun acc f -> parse_file f :: acc) m.headers files @@ -341,7 +337,7 @@ let from_file = fun filename -> from_xml (Xml.parse_file filename) (** search and parse a module xml file and return a Module.t *) (* FIXME search folder path: /*/.xml *) exception Module_not_found of string -let from_module_name = fun name mtype -> +let from_module_name = fun mtype name -> (* concat module type if needed *) let name = match mtype with Some t -> name ^ "_" ^ t | None -> name in (* determine if name already have an extension *) diff --git a/sw/tools/generators/dump_modules_list.ml b/sw/tools/generators/dump_modules_list.ml index 0cd33968e7..f821d529e5 100644 --- a/sw/tools/generators/dump_modules_list.ml +++ b/sw/tools/generators/dump_modules_list.ml @@ -27,7 +27,7 @@ let conf_xml_file = conf_dir // "conf.xml" let letter_of_load_tyoe = function | Aircraft.UserLoad -> "U" | Aircraft.Depend -> "D" - | Aircraft.AutoLoad -> "A" + | Aircraft.Suggested -> "S" | Aircraft.Unloaded -> "N" let () = diff --git a/sw/tools/generators/gen_makefile.ml b/sw/tools/generators/gen_makefile.ml index c180e231db..beb7344fdb 100644 --- a/sw/tools/generators/gen_makefile.ml +++ b/sw/tools/generators/gen_makefile.ml @@ -147,7 +147,7 @@ let dump_target_conf = fun out target conf -> List.iter (define2mk out) conf.AC.defines; fprintf out "\n"; List.iter (fun (l, m) -> match l with - | AC.UserLoad | AC.AutoLoad | AC.Depend -> module2mk out target conf.AC.firmware_name m + | AC.UserLoad | AC.Depend | AC.Suggested -> module2mk out target conf.AC.firmware_name m | _ -> () ) conf.AC.modules; fprintf out "\nendif # end of target '%s'\n\n" target