forked from Archive/PX4-Autopilot
Fixes to memory check handling, split out switch handling to allow separate initialization
This commit is contained in:
parent
d77a15e94f
commit
2aa76f1a3c
|
@ -228,23 +228,42 @@ user_start(int argc, char *argv[])
|
||||||
/* initialize PWM limit lib */
|
/* initialize PWM limit lib */
|
||||||
pwm_limit_init(&pwm_limit);
|
pwm_limit_init(&pwm_limit);
|
||||||
|
|
||||||
/* not enough memory, lock down */
|
/*
|
||||||
if (minfo.mxordblk < 500) {
|
* P O L I C E L I G H T S
|
||||||
|
*
|
||||||
|
* Not enough memory, lock down.
|
||||||
|
*
|
||||||
|
* We might need to allocate mixers later, and this will
|
||||||
|
* ensure that a developer doing a change will notice
|
||||||
|
* that he just burned the remaining RAM with static
|
||||||
|
* allocations. We don't want him to be able to
|
||||||
|
* get past that point. This needs to be clearly
|
||||||
|
* documented in the dev guide.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
if (minfo.mxordblk < 600) {
|
||||||
|
|
||||||
lowsyslog("ERR: not enough MEM");
|
lowsyslog("ERR: not enough MEM");
|
||||||
bool phase = false;
|
bool phase = false;
|
||||||
|
|
||||||
if (phase) {
|
while (true) {
|
||||||
LED_AMBER(true);
|
|
||||||
LED_BLUE(false);
|
|
||||||
} else {
|
|
||||||
LED_AMBER(false);
|
|
||||||
LED_BLUE(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
phase = !phase;
|
if (phase) {
|
||||||
up_udelay(300000);
|
LED_AMBER(true);
|
||||||
|
LED_BLUE(false);
|
||||||
|
} else {
|
||||||
|
LED_AMBER(false);
|
||||||
|
LED_BLUE(true);
|
||||||
|
}
|
||||||
|
up_udelay(250000);
|
||||||
|
|
||||||
|
phase = !phase;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Start the failsafe led init */
|
||||||
|
failsafe_led_init();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Run everything in a tight loop.
|
* Run everything in a tight loop.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -184,6 +184,7 @@ extern void mixer_handle_text(const void *buffer, size_t length);
|
||||||
* Safety switch/LED.
|
* Safety switch/LED.
|
||||||
*/
|
*/
|
||||||
extern void safety_init(void);
|
extern void safety_init(void);
|
||||||
|
extern void failsafe_led_init(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FMU communications
|
* FMU communications
|
||||||
|
|
|
@ -84,7 +84,11 @@ safety_init(void)
|
||||||
{
|
{
|
||||||
/* arrange for the button handler to be called at 10Hz */
|
/* arrange for the button handler to be called at 10Hz */
|
||||||
hrt_call_every(&arming_call, 1000, 100000, safety_check_button, NULL);
|
hrt_call_every(&arming_call, 1000, 100000, safety_check_button, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
failsafe_led_init(void)
|
||||||
|
{
|
||||||
/* arrange for the failsafe blinker to be called at 8Hz */
|
/* arrange for the failsafe blinker to be called at 8Hz */
|
||||||
hrt_call_every(&failsafe_call, 1000, 125000, failsafe_blink, NULL);
|
hrt_call_every(&failsafe_call, 1000, 125000, failsafe_blink, NULL);
|
||||||
}
|
}
|
||||||
|
@ -165,8 +169,8 @@ failsafe_blink(void *arg)
|
||||||
/* indicate that a serious initialisation error occured */
|
/* indicate that a serious initialisation error occured */
|
||||||
if (!(r_status_flags & PX4IO_P_STATUS_FLAGS_INIT_OK)) {
|
if (!(r_status_flags & PX4IO_P_STATUS_FLAGS_INIT_OK)) {
|
||||||
LED_AMBER(true);
|
LED_AMBER(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool failsafe = false;
|
static bool failsafe = false;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue