#include "remote.h"
#include "../common/common.h"
#include "storage.h"
+#include "script.h"
#if CONFIG_SCRIPT
program_showcfg,
};
+#define DEBUG_COLORLEVEL 32u
+
PT_THREAD(program_showcfg(struct process_t *process))
{
static uint16_t sleep;
- struct rgb_color_t c, d;
+ static struct rgb_color_t c, d;
+ static uint8_t i;
PT_BEGIN(&process->pt);
- c.red = (remote_address() & 0x01u) * 128u;
- c.green = (remote_address() & 0x02u) * 128u;
- c.blue = (remote_address() & 0x04u) * 128u;
-
- d.red = d.green = d.blue = 128u;
-
- pwm_fade_rgb(&d, 0xffu, 0);
-
- PT_WAIT_UNTIL(&process->pt, pwm_target_reached());
-
- /* sleep .5s (remember: we are called every 100ms) */
- sleep = 5;
- while (sleep--)
- PT_YIELD(&process->pt);
-
- pwm_fade_rgb(&c, 0xffu, 0);
+ c.red = (remote_address() & 0x01u) ? DEBUG_COLORLEVEL : 0;
+ c.green = (remote_address() & 0x02u) ? DEBUG_COLORLEVEL : 0;
+ c.blue = (remote_address() & 0x04u) ? DEBUG_COLORLEVEL : 0;
- PT_WAIT_UNTIL(&process->pt, pwm_target_reached());
+ d.red = d.green = d.blue = 0;
- /* sleep 1s (remember: we are called every 100ms) */
- sleep = 10;
- while (sleep--)
- PT_YIELD(&process->pt);
- pwm_fade_rgb(&d, 0xffu, 0);
+ global_pwm.target.rgb = c;
- PT_WAIT_UNTIL(&process->pt, pwm_target_reached());
+ for (i = 0; i < 3u; i++)
+ {
+ /* sleep 1s (remember: we are called every 100ms) */
+ sleep = 10;
+ while (sleep--)
+ PT_YIELD(&process->pt);
- /* sleep .5s (remember: we are called every 100ms) */
- sleep = 5;
- while (sleep--)
- PT_YIELD(&process->pt);
+ global_pwm.target.rgb = c;
- pwm_fade_rgb(&c, 0xffu, 0);
+ sleep = 5;
+ while (sleep--)
+ PT_YIELD(&process->pt);
- PT_WAIT_UNTIL(&process->pt, pwm_target_reached());
+ global_pwm.target.rgb = d;
+ }
- /* sleep 1s (remember: we are called every 100ms) */
- sleep = 10;
- while (sleep--)
- PT_YIELD(&process->pt);
+ script_stop();
/* now start default script */
if (storage_valid_config() && (startup_config.params.mode == STARTUP_PROGRAM)) {
script_start_default();
}
+ /* hack: script_start() stuff above will reinitialize PT structures, so we
+ can't call any PT stuff any more and quit directly */
+ return 0;
+
PT_END(&process->pt);
}