10 #define LED_STRUCT1(name, count) const struct { \ 11 uint16_t red[count]; \ 12 } __attribute__((packed)) name 14 #define LED_STRUCT2(name, count) const struct { \ 15 uint16_t red[count]; \ 16 uint16_t green[count]; \ 17 } __attribute__((packed)) name 19 LED_STRUCT2(green_pulse_seq, 7) = {
20 {0, 0, 0, 0, 0, 0, 0},
21 {0, 1000, 0, 1000, 0, 1000, 0}
23 const uint16_t green_pulse_duration[] = { 0, 100, 100, 100, 100, 100, 100, 600 };
25 LED_STRUCT2(detect_sync_seq, 4) = {
29 const uint16_t detect_sync_duration[] = { 0, 250, 500, 250, 1000 };
31 LED_STRUCT1(detect_pulse_seq, 4) = {
34 const uint16_t detect_pulse_duration[] = { 0, 250, 500, 250, 1000 };
36 LED_STRUCT2(ramp_offset_seq, 5) = {
37 {0, 0, 1000, 1000, 0},
40 const uint16_t ramp_offset_duration[] = { 0, 2000, 2000, 2000, 2000, 8000 };
42 LED_STRUCT1(red_pulse_seq, 7) = {
43 {0, 1000, 0, 1000, 0, 1000, 0}
45 const uint16_t red_pulse_duration[] = { 0, 100, 100, 100, 100, 100, 100, 600 };
47 LED_STRUCT2(orange_wave_seq, 3) = {
51 const uint16_t orange_wave_duration[] = { 0, 2500, 2500, 5000 };
53 LED_STRUCT2(orange_pulse_seq, 7) = {
54 {0, 1000, 0, 1000, 0, 1000, 0},
55 {0, 1000, 0, 1000, 0, 1000, 0}
57 const uint16_t orange_pulse_duration[] = { 0, 100, 100, 100, 100, 100, 100, 600 };
59 LED_STRUCT1(detect_window_seq, 2) = {
62 const uint16_t detect_window_duration[] = { 0, 500, 500 };
64 LED_STRUCT2(dual_freq_seq, 5) = {
65 {0, 1000, 0, 1000, 0},
66 {0, 500, 1000, 500, 0}
68 const uint16_t dual_freq_duration[] = { 0, 2000, 2000, 2000, 2000, 8000 };
70 LED_STRUCT2(green_wave_seq, 5) = {
74 const uint16_t green_wave_duration[] = { 0, 1000, 1000, 2000, 1000, 5000 };
76 const uint32_t led_num_len[] = {2, 2, 1, 2, 1, 2, 2, 1, 2, 2};
77 const uint32_t led_seq_len[] = {7, 4, 4, 5, 7, 3, 7, 2, 5, 5};
78 const uint16_t *
const led_seq_ptr[] = {(uint16_t *) &green_pulse_seq, (uint16_t *) &detect_sync_seq, (uint16_t *) &detect_pulse_seq, (uint16_t *) &ramp_offset_seq, (uint16_t *) &red_pulse_seq, (uint16_t *) &orange_wave_seq, (uint16_t *) &orange_pulse_seq, (uint16_t *) &detect_window_seq, (uint16_t *) &dual_freq_seq, (uint16_t *) &green_wave_seq };
79 const uint16_t *
const led_seq_duration_ptr[] = { green_pulse_duration, detect_sync_duration, detect_pulse_duration, ramp_offset_duration, red_pulse_duration, orange_wave_duration, orange_pulse_duration, detect_window_duration, dual_freq_duration, green_wave_duration };
81 const uint32_t led_pin_num[LED_COLOR_MAX] = {LED_RED, LED_GREEN};
83 const uint32_t *
const led_seq_get_pin_ptr(
void)
88 uint32_t led_seq_get_pin_num(led_sequences seq)
90 return led_num_len[seq];
93 uint32_t led_seq_get_seg_len(led_sequences seq)
95 return led_seq_len[seq];
98 uint16_t * led_seq_get_seq_color_ptr(led_sequences seq, led_seq_color color)
100 return ((uint16_t *)(led_seq_ptr[seq] + color*led_seq_len[seq]));
103 uint16_t * led_seq_get_seq_duration_ptr(led_sequences seq)
105 return (uint16_t *) led_seq_duration_ptr[seq];