1
0
Fork 0
mirror of https://github.com/iNavFlight/inav.git synced 2025-07-26 17:55:28 +03:00

Update fc_msp_box.c

This commit is contained in:
breadoven 2021-11-14 17:06:00 +00:00
parent f1182cdbb2
commit a2a54c1877

View file

@ -185,57 +185,64 @@ void initActiveBoxIds(void)
activeBoxIds[activeBoxIdCount++] = BOXHEADINGHOLD; activeBoxIds[activeBoxIdCount++] = BOXHEADINGHOLD;
if (sensors(SENSOR_ACC) || sensors(SENSOR_MAG)) { if (STATE(MULTIROTOR)) {
activeBoxIds[activeBoxIdCount++] = BOXHEADFREE; if ((sensors(SENSOR_ACC) || sensors(SENSOR_MAG))) {
activeBoxIds[activeBoxIdCount++] = BOXHEADADJ; activeBoxIds[activeBoxIdCount++] = BOXHEADFREE;
} activeBoxIds[activeBoxIdCount++] = BOXHEADADJ;
}
if (STATE(ALTITUDE_CONTROL)) { if (sensors(SENSOR_BARO) && sensors(SENSOR_RANGEFINDER) && sensors(SENSOR_OPFLOW)) {
activeBoxIds[activeBoxIdCount++] = BOXSURFACE;
}
activeBoxIds[activeBoxIdCount++] = BOXFPVANGLEMIX; activeBoxIds[activeBoxIdCount++] = BOXFPVANGLEMIX;
} }
//Camstab mode is enabled always //Camstab mode is enabled always
activeBoxIds[activeBoxIdCount++] = BOXCAMSTAB; activeBoxIds[activeBoxIdCount++] = BOXCAMSTAB;
#ifdef USE_GPS bool readyAltControl = false;
if (STATE(ALTITUDE_CONTROL) && (sensors(SENSOR_BARO) || (feature(FEATURE_GPS) && (STATE(AIRPLANE) || positionEstimationConfig()->use_gps_no_baro)))) { if (STATE(ALTITUDE_CONTROL) && sensors(SENSOR_BARO)) {
activeBoxIds[activeBoxIdCount++] = BOXNAVALTHOLD; activeBoxIds[activeBoxIdCount++] = BOXNAVALTHOLD;
activeBoxIds[activeBoxIdCount++] = BOXSURFACE; readyAltControl = true;
#ifdef USE_GPS
} else if ((feature(FEATURE_GPS) && STATE(AIRPLANE) && positionEstimationConfig()->use_gps_no_baro)) {
activeBoxIds[activeBoxIdCount++] = BOXNAVALTHOLD;
readyAltControl = true;
} }
const bool navReadyMultirotor = STATE(MULTIROTOR) && (getHwCompassStatus() != HW_SENSOR_NONE) && sensors(SENSOR_ACC) && feature(FEATURE_GPS); if (readyAltControl) {
const bool navReadyOther = !STATE(MULTIROTOR) && sensors(SENSOR_ACC) && feature(FEATURE_GPS); const bool navReadyMultirotor = STATE(MULTIROTOR) && (getHwCompassStatus() != HW_SENSOR_NONE) && sensors(SENSOR_ACC) && feature(FEATURE_GPS);
const bool navFlowDeadReckoning = sensors(SENSOR_OPFLOW) && sensors(SENSOR_ACC) && positionEstimationConfig()->allow_dead_reckoning; const bool navReadyOther = !STATE(MULTIROTOR) && sensors(SENSOR_ACC) && feature(FEATURE_GPS);
if (navFlowDeadReckoning || navReadyMultirotor || navReadyOther) { const bool navFlowDeadReckoning = sensors(SENSOR_OPFLOW) && sensors(SENSOR_ACC) && positionEstimationConfig()->allow_dead_reckoning;
if (!STATE(ROVER) && !STATE(BOAT)) { if (navFlowDeadReckoning || navReadyMultirotor || navReadyOther) {
activeBoxIds[activeBoxIdCount++] = BOXNAVPOSHOLD; if (!STATE(ROVER) && !STATE(BOAT)) {
activeBoxIds[activeBoxIdCount++] = BOXNAVPOSHOLD;
}
if (STATE(AIRPLANE)) {
activeBoxIds[activeBoxIdCount++] = BOXLOITERDIRCHN;
}
} }
if (STATE(AIRPLANE)) {
activeBoxIds[activeBoxIdCount++] = BOXLOITERDIRCHN;
}
}
if (navReadyMultirotor || navReadyOther) { if (navReadyMultirotor || navReadyOther) {
activeBoxIds[activeBoxIdCount++] = BOXNAVRTH; activeBoxIds[activeBoxIdCount++] = BOXNAVRTH;
activeBoxIds[activeBoxIdCount++] = BOXNAVWP; activeBoxIds[activeBoxIdCount++] = BOXNAVWP;
activeBoxIds[activeBoxIdCount++] = BOXHOMERESET; activeBoxIds[activeBoxIdCount++] = BOXHOMERESET;
activeBoxIds[activeBoxIdCount++] = BOXGCSNAV; activeBoxIds[activeBoxIdCount++] = BOXGCSNAV;
activeBoxIds[activeBoxIdCount++] = BOXPLANWPMISSION; activeBoxIds[activeBoxIdCount++] = BOXPLANWPMISSION;
if (STATE(AIRPLANE)) { if (STATE(AIRPLANE)) {
activeBoxIds[activeBoxIdCount++] = BOXNAVCOURSEHOLD; activeBoxIds[activeBoxIdCount++] = BOXNAVCOURSEHOLD;
activeBoxIds[activeBoxIdCount++] = BOXNAVCRUISE; activeBoxIds[activeBoxIdCount++] = BOXNAVCRUISE;
activeBoxIds[activeBoxIdCount++] = BOXSOARING; activeBoxIds[activeBoxIdCount++] = BOXSOARING;
}
} }
}
#ifdef USE_MR_BRAKING_MODE #ifdef USE_MR_BRAKING_MODE
if (mixerConfig()->platformType == PLATFORM_MULTIROTOR) { if (mixerConfig()->platformType == PLATFORM_MULTIROTOR) {
activeBoxIds[activeBoxIdCount++] = BOXBRAKING; activeBoxIds[activeBoxIdCount++] = BOXBRAKING;
}
#endif
#endif // GPS
} }
#endif
#endif
if (STATE(AIRPLANE) || STATE(ROVER) || STATE(BOAT)) { if (STATE(AIRPLANE) || STATE(ROVER) || STATE(BOAT)) {
activeBoxIds[activeBoxIdCount++] = BOXMANUAL; activeBoxIds[activeBoxIdCount++] = BOXMANUAL;