]> www.fi.muni.cz Git - bike-lights.git/blobdiff - firmware/pattern.c
pattern.c: remove unused function
[bike-lights.git] / firmware / pattern.c
index 989009e6c237b55ebc8e3ba96fa1050753ce8b5d..feddbb69ed965841e03deabb97a17d1dcbfc9b64 100644 (file)
@@ -2,18 +2,15 @@
 
 #include "lights.h"
 
-typedef struct {
-       unsigned char mode: 3;
-       unsigned char duration: 5;
-} pattern_t;
-
 static unsigned char led_counters[N_LEDS];
 static pattern_t *led_patterns[N_LEDS];
 
-#define PATTERN_END { 0, 0 }
 pattern_t off_pattern[] = {
-       { 0, 0x1F },
-       PATTERN_END
+       { 0, PATTERN_FOREVER },
+};
+
+pattern_t on_pattern[] = {
+       { 1, PATTERN_FOREVER },
 };
 
 pattern_t blink_pattern[] = {
@@ -55,26 +52,27 @@ pattern_t boot_pattern[] = {
 };
 
 pattern_t pattern_num[] = {
+       { 0, 0x5 },
        { 1, 0x1 }, /* 10 */
-       { 0, 0x4 },
+       { 0, 0x5 },
        { 1, 0x1 }, /*  9 */
-       { 0, 0x4 },
+       { 0, 0x5 },
        { 1, 0x1 }, /*  8 */
-       { 0, 0x4 },
+       { 0, 0x5 },
        { 1, 0x1 }, /*  7 */
-       { 0, 0x4 },
+       { 0, 0x5 },
        { 1, 0x1 }, /*  6 */
-       { 0, 0x4 },
+       { 0, 0x5 },
        { 1, 0x1 }, /*  5 */
-       { 0, 0x4 },
+       { 0, 0x5 },
        { 1, 0x1 }, /*  4 */
-       { 0, 0x4 },
+       { 0, 0x5 },
        { 1, 0x1 }, /*  3 */
-       { 0, 0x4 },
+       { 0, 0x5 },
        { 1, 0x1 }, /*  2 */
-       { 0, 0x4 },
+       { 0, 0x5 },
        { 1, 0x1 }, /*  1 */
-       { 0, 0x1F },
+       { 0, 0x1E },
        PATTERN_END
 };
 
@@ -103,31 +101,32 @@ void pattern_init()
 {
        unsigned char i;
 
-       for (i = 0; i < N_LEDS; i++) {
-               led_counters[i] = 0;
-               led_patterns[i] = off_pattern;
-       }
+       for (i = 0; i < N_LEDS; i++)
+               led_set_pattern(i, off_pattern);
+
        led_set_pattern(N_PWMLEDS+1, boot_pattern);
        test_running = 0;
 }
 
-static pattern_t *number_pattern(unsigned char num)
+pattern_t *number_pattern(unsigned char num)
 {
        if (num >= 9)
                num = 9;
 
        return pattern_num + sizeof(pattern_num)/sizeof(pattern_t)
-               - 1 - 2*num;
+               - 2 - 2*num;
 }
 
 static inline pattern_t *pattern_select(unsigned char n)
 {
        if (n < N_PWMLEDS && !pwmled_enabled(n))
                return off_pattern; // Don't mess with non-enabled LEDs
-       else if (n == 2)
+       else if (n < N_PWMLEDS)
                return mode1_pattern;
        else if (n == 3)
-               return number_pattern(1+ambient_zone);
+               return status_pattern_select(0);
+       else if (n == 4)
+               return status_pattern_select(1);
        return off_pattern;
 }
 
@@ -145,11 +144,8 @@ void patterns_next_tick()
                        led_set_pattern(i, p);
                }
 
-               led_counters[i]--;
+               if (led_counters[i] < PATTERN_FOREVER)
+                       led_counters[i]--;
        }
 }
 
-void led_set_status(unsigned char status)
-{
-       led_set_pattern(N_PWMLEDS+1, number_pattern(status));
-}