#include "remote.h"
#include "../common/common.h"
#include "storage.h"
+#include "script.h"
#if CONFIG_SCRIPT
program_colorwheel,
program_random,
program_replay,
+ program_showcfg,
};
+#define DEBUG_COLORLEVEL 32u
+
+PT_THREAD(program_showcfg(struct process_t *process))
+{
+ static uint16_t sleep;
+ static struct rgb_color_t c, d;
+ static uint8_t i;
+
+ PT_BEGIN(&process->pt);
+
+ c.red = (remote_address() & 0x01u) ? DEBUG_COLORLEVEL : 0;
+ c.green = (remote_address() & 0x02u) ? DEBUG_COLORLEVEL : 0;
+ c.blue = (remote_address() & 0x04u) ? DEBUG_COLORLEVEL : 0;
+
+ d.red = d.green = d.blue = 0;
+
+ global_pwm.target.rgb = c;
+
+ for (i = 0; i < 3u; i++)
+ {
+ /* sleep 1s (remember: we are called every 100ms) */
+ sleep = 10;
+ while (sleep--)
+ PT_YIELD(&process->pt);
+
+ global_pwm.target.rgb = c;
+
+ sleep = 5;
+ while (sleep--)
+ PT_YIELD(&process->pt);
+
+ global_pwm.target.rgb = d;
+ }
+
+ script_stop();
+
+ /* now start default script */
+ if (storage_valid_config() && (startup_config.params.mode == STARTUP_PROGRAM)) {
+ script_start(0, startup_config.params.program, (union program_params_t *)startup_config.params.program_parameters);
+ } else {
+ 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);
+}
+
PT_THREAD(program_colorwheel(struct process_t *process))
{
static uint16_t sleep;