mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-25 17:25:20 +03:00
Merge pull request #4219 from mikeller/separate_rx_set_and_gps_beeping
Added distinct mode for 'beep GPS number of satellites found', and separated this functionality from 'RX_SET' beeping.
This commit is contained in:
commit
802cd5690e
3 changed files with 20 additions and 21 deletions
|
@ -78,6 +78,7 @@ static const box_t boxes[CHECKBOX_ITEM_COUNT] = {
|
||||||
{ BOXCAMERA3, "CAMERA CONTROL 3", 34 },
|
{ BOXCAMERA3, "CAMERA CONTROL 3", 34 },
|
||||||
{ BOXFLIPOVERAFTERCRASH, "FLIP OVER AFTER CRASH", 35 },
|
{ BOXFLIPOVERAFTERCRASH, "FLIP OVER AFTER CRASH", 35 },
|
||||||
{ BOXPREARM, "PREARM", 36 },
|
{ BOXPREARM, "PREARM", 36 },
|
||||||
|
{ BOXBEEPGPSCOUNT, "BEEP GPS SATELLITE COUNT", 37 },
|
||||||
};
|
};
|
||||||
|
|
||||||
// mask of enabled IDs, calculated on startup based on enabled features. boxId_e is used as bit index
|
// mask of enabled IDs, calculated on startup based on enabled features. boxId_e is used as bit index
|
||||||
|
@ -180,6 +181,7 @@ void initActiveBoxIds(void)
|
||||||
if (feature(FEATURE_GPS)) {
|
if (feature(FEATURE_GPS)) {
|
||||||
BME(BOXGPSHOME);
|
BME(BOXGPSHOME);
|
||||||
BME(BOXGPSHOLD);
|
BME(BOXGPSHOLD);
|
||||||
|
BME(BOXBEEPGPSCOUNT);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -290,7 +292,7 @@ int packFlightModeFlags(boxBitmask_t *mspFlightModeFlags)
|
||||||
const uint64_t rcModeCopyMask = BM(BOXHEADADJ) | BM(BOXCAMSTAB) | BM(BOXCAMTRIG) | BM(BOXBEEPERON)
|
const uint64_t rcModeCopyMask = BM(BOXHEADADJ) | BM(BOXCAMSTAB) | BM(BOXCAMTRIG) | BM(BOXBEEPERON)
|
||||||
| BM(BOXLEDMAX) | BM(BOXLEDLOW) | BM(BOXLLIGHTS) | BM(BOXCALIB) | BM(BOXGOV) | BM(BOXOSD)
|
| BM(BOXLEDMAX) | BM(BOXLEDLOW) | BM(BOXLLIGHTS) | BM(BOXCALIB) | BM(BOXGOV) | BM(BOXOSD)
|
||||||
| BM(BOXTELEMETRY) | BM(BOXGTUNE) | BM(BOXBLACKBOX) | BM(BOXBLACKBOXERASE) | BM(BOXAIRMODE)
|
| BM(BOXTELEMETRY) | BM(BOXGTUNE) | BM(BOXBLACKBOX) | BM(BOXBLACKBOXERASE) | BM(BOXAIRMODE)
|
||||||
| BM(BOXANTIGRAVITY) | BM(BOXFPVANGLEMIX) | BM(BOXFLIPOVERAFTERCRASH) | BM(BOX3DDISABLE);
|
| BM(BOXANTIGRAVITY) | BM(BOXFPVANGLEMIX) | BM(BOXFLIPOVERAFTERCRASH) | BM(BOX3DDISABLE) | BM(BOXBEEPGPSCOUNT);
|
||||||
STATIC_ASSERT(sizeof(rcModeCopyMask) * 8 >= CHECKBOX_ITEM_COUNT, copy_mask_too_small_for_boxes);
|
STATIC_ASSERT(sizeof(rcModeCopyMask) * 8 >= CHECKBOX_ITEM_COUNT, copy_mask_too_small_for_boxes);
|
||||||
for (unsigned i = 0; i < CHECKBOX_ITEM_COUNT; i++) {
|
for (unsigned i = 0; i < CHECKBOX_ITEM_COUNT; i++) {
|
||||||
if ((rcModeCopyMask & BM(i)) // mode copy is enabled
|
if ((rcModeCopyMask & BM(i)) // mode copy is enabled
|
||||||
|
|
|
@ -59,6 +59,7 @@ typedef enum {
|
||||||
BOXCAMERA3,
|
BOXCAMERA3,
|
||||||
BOXFLIPOVERAFTERCRASH,
|
BOXFLIPOVERAFTERCRASH,
|
||||||
BOXPREARM,
|
BOXPREARM,
|
||||||
|
BOXBEEPGPSCOUNT,
|
||||||
CHECKBOX_ITEM_COUNT
|
CHECKBOX_ITEM_COUNT
|
||||||
} boxId_e;
|
} boxId_e;
|
||||||
|
|
||||||
|
|
|
@ -319,22 +319,22 @@ void beeperWarningBeeps(uint8_t beepCount)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef GPS
|
#ifdef GPS
|
||||||
void beeperGpsStatus(void)
|
static void beeperGpsStatus(void)
|
||||||
{
|
{
|
||||||
// if GPS fix then beep out number of satellites
|
if (!(getBeeperOffMask() & (1 << (BEEPER_GPS_STATUS - 1)))) {
|
||||||
if (STATE(GPS_FIX) && gpsSol.numSat >= 5) {
|
// if GPS fix then beep out number of satellites
|
||||||
uint8_t i = 0;
|
if (STATE(GPS_FIX) && gpsSol.numSat >= 5) {
|
||||||
do {
|
uint8_t i = 0;
|
||||||
beep_multiBeeps[i++] = 5;
|
do {
|
||||||
beep_multiBeeps[i++] = 10;
|
beep_multiBeeps[i++] = 5;
|
||||||
} while (i < MAX_MULTI_BEEPS && gpsSol.numSat > i / 2);
|
beep_multiBeeps[i++] = 10;
|
||||||
|
} while (i < MAX_MULTI_BEEPS && gpsSol.numSat > i / 2);
|
||||||
|
|
||||||
beep_multiBeeps[i - 1] = 50; // extend last pause
|
beep_multiBeeps[i - 1] = 50; // extend last pause
|
||||||
beep_multiBeeps[i] = BEEPER_COMMAND_STOP;
|
beep_multiBeeps[i] = BEEPER_COMMAND_STOP;
|
||||||
|
|
||||||
beeper(BEEPER_MULTI_BEEPS); //initiate sequence
|
beeper(BEEPER_MULTI_BEEPS); //initiate sequence
|
||||||
} else {
|
}
|
||||||
beeper(BEEPER_RX_SET);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -347,14 +347,10 @@ void beeperUpdate(timeUs_t currentTimeUs)
|
||||||
{
|
{
|
||||||
// If beeper option from AUX switch has been selected
|
// If beeper option from AUX switch has been selected
|
||||||
if (IS_RC_MODE_ACTIVE(BOXBEEPERON)) {
|
if (IS_RC_MODE_ACTIVE(BOXBEEPERON)) {
|
||||||
#ifdef GPS
|
|
||||||
if (feature(FEATURE_GPS)) {
|
|
||||||
beeperGpsStatus();
|
|
||||||
} else {
|
|
||||||
beeper(BEEPER_RX_SET);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
beeper(BEEPER_RX_SET);
|
beeper(BEEPER_RX_SET);
|
||||||
|
#ifdef GPS
|
||||||
|
} else if (feature(FEATURE_GPS) && IS_RC_MODE_ACTIVE(BOXBEEPGPSCOUNT)) {
|
||||||
|
beeperGpsStatus();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue