aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-10-15 08:41:40 +0200
committerLorenz Meier <lm@inf.ethz.ch>2013-10-15 08:41:40 +0200
commit7232a6f1438acc24d77f3ef684266f071a95b8d6 (patch)
treee2e4a1eecff4724a54a4659bd05f6297cb53a44f
parent3dcd5dbd0e25432049e5ba6971851931764ae043 (diff)
parent1f39904cea60e0291a13acd4642771e217cfd411 (diff)
downloadpx4-firmware-7232a6f1438acc24d77f3ef684266f071a95b8d6.tar.gz
px4-firmware-7232a6f1438acc24d77f3ef684266f071a95b8d6.tar.bz2
px4-firmware-7232a6f1438acc24d77f3ef684266f071a95b8d6.zip
Merge branch 'master' of github.com:PX4/Firmware into gimbal_rc_control
-rw-r--r--ROMFS/px4fmu_common/init.d/100_mpx_easystar3
-rw-r--r--ROMFS/px4fmu_common/init.d/101_hk_bixler3
-rw-r--r--src/drivers/rgbled/rgbled.cpp26
-rw-r--r--src/modules/sdlog2/sdlog2.c11
4 files changed, 26 insertions, 17 deletions
diff --git a/ROMFS/px4fmu_common/init.d/100_mpx_easystar b/ROMFS/px4fmu_common/init.d/100_mpx_easystar
index 828540ad9..1aa1ef494 100644
--- a/ROMFS/px4fmu_common/init.d/100_mpx_easystar
+++ b/ROMFS/px4fmu_common/init.d/100_mpx_easystar
@@ -98,8 +98,7 @@ else
mixer load /dev/pwm_output /etc/mixers/FMU_RET.mix
fi
fw_att_control start
-# Not ready yet for prime-time
-#fw_pos_control_l1 start
+fw_pos_control_l1 start
if [ $EXIT_ON_END == yes ]
then
diff --git a/ROMFS/px4fmu_common/init.d/101_hk_bixler b/ROMFS/px4fmu_common/init.d/101_hk_bixler
index 5a9cb2171..4d8a24c4a 100644
--- a/ROMFS/px4fmu_common/init.d/101_hk_bixler
+++ b/ROMFS/px4fmu_common/init.d/101_hk_bixler
@@ -91,8 +91,7 @@ att_pos_estimator_ekf start
#
mixer load /dev/pwm_output /etc/mixers/FMU_AERT.mix
fw_att_control start
-# Not ready yet for prime-time
-#fw_pos_control_l1 start
+fw_pos_control_l1 start
if [ $EXIT_ON_END == yes ]
then
diff --git a/src/drivers/rgbled/rgbled.cpp b/src/drivers/rgbled/rgbled.cpp
index fedff769b..ea87b37d9 100644
--- a/src/drivers/rgbled/rgbled.cpp
+++ b/src/drivers/rgbled/rgbled.cpp
@@ -103,6 +103,7 @@ private:
bool _running;
int _led_interval;
+ bool _should_run;
int _counter;
void set_color(rgbled_color_t ledcolor);
@@ -136,6 +137,7 @@ RGBLED::RGBLED(int bus, int rgbled) :
_brightness(1.0f),
_running(false),
_led_interval(0),
+ _should_run(false),
_counter(0)
{
memset(&_work, 0, sizeof(_work));
@@ -248,6 +250,11 @@ RGBLED::led_trampoline(void *arg)
void
RGBLED::led()
{
+ if (!_should_run) {
+ _running = false;
+ return;
+ }
+
switch (_mode) {
case RGBLED_MODE_BLINK_SLOW:
case RGBLED_MODE_BLINK_NORMAL:
@@ -409,10 +416,10 @@ RGBLED::set_mode(rgbled_mode_t mode)
{
if (mode != _mode) {
_mode = mode;
- bool should_run = false;
switch (mode) {
case RGBLED_MODE_OFF:
+ _should_run = false;
send_led_enable(false);
break;
@@ -423,7 +430,7 @@ RGBLED::set_mode(rgbled_mode_t mode)
break;
case RGBLED_MODE_BLINK_SLOW:
- should_run = true;
+ _should_run = true;
_counter = 0;
_led_interval = 2000;
_brightness = 1.0f;
@@ -431,7 +438,7 @@ RGBLED::set_mode(rgbled_mode_t mode)
break;
case RGBLED_MODE_BLINK_NORMAL:
- should_run = true;
+ _should_run = true;
_counter = 0;
_led_interval = 500;
_brightness = 1.0f;
@@ -439,7 +446,7 @@ RGBLED::set_mode(rgbled_mode_t mode)
break;
case RGBLED_MODE_BLINK_FAST:
- should_run = true;
+ _should_run = true;
_counter = 0;
_led_interval = 100;
_brightness = 1.0f;
@@ -447,14 +454,14 @@ RGBLED::set_mode(rgbled_mode_t mode)
break;
case RGBLED_MODE_BREATHE:
- should_run = true;
+ _should_run = true;
_counter = 0;
_led_interval = 25;
send_led_enable(true);
break;
case RGBLED_MODE_PATTERN:
- should_run = true;
+ _should_run = true;
_counter = 0;
_brightness = 1.0f;
send_led_enable(true);
@@ -466,16 +473,11 @@ RGBLED::set_mode(rgbled_mode_t mode)
}
/* if it should run now, start the workq */
- if (should_run && !_running) {
+ if (_should_run && !_running) {
_running = true;
work_queue(LPWORK, &_work, (worker_t)&RGBLED::led_trampoline, this, 1);
}
- /* if it should stop, then cancel the workq */
- if (!should_run && _running) {
- _running = false;
- work_cancel(LPWORK, &_work);
- }
}
}
diff --git a/src/modules/sdlog2/sdlog2.c b/src/modules/sdlog2/sdlog2.c
index ec8033202..080aa550c 100644
--- a/src/modules/sdlog2/sdlog2.c
+++ b/src/modules/sdlog2/sdlog2.c
@@ -583,6 +583,15 @@ int sdlog2_thread_main(int argc, char *argv[])
errx(1, "unable to create logging folder, exiting.");
}
+ const char *converter_in = "/etc/logging/conv.zip";
+ char* converter_out = malloc(120);
+ sprintf(converter_out, "%s/conv.zip", folder_path);
+
+ if (file_copy(converter_in, converter_out)) {
+ errx(1, "unable to copy conversion scripts, exiting.");
+ }
+ free(converter_out);
+
/* only print logging path, important to find log file later */
warnx("logging to directory: %s", folder_path);
@@ -1251,7 +1260,7 @@ int file_copy(const char *file_old, const char *file_new)
fclose(source);
fclose(target);
- return ret;
+ return OK;
}
void handle_command(struct vehicle_command_s *cmd)