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:
parent
f1182cdbb2
commit
a2a54c1877
1 changed files with 42 additions and 35 deletions
|
@ -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;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue