43 void led_set_red(UNS8 on); |
43 void led_set_red(UNS8 on); |
44 void led_callback(CO_Data* d, UNS32 id); |
44 void led_callback(CO_Data* d, UNS32 id); |
45 void led_set_redgreen(CO_Data *d, unsigned char state); |
45 void led_set_redgreen(CO_Data *d, unsigned char state); |
46 |
46 |
47 |
47 |
48 // 0 = always off, 1 = always on, 2 = flashing |
48 /* 0 = always off, 1 = always on, 2 = flashing */ |
49 static UNS8 led_state_red, led_state_green; |
49 static UNS8 led_state_red, led_state_green; |
50 |
50 |
51 static UNS16 led_sequence_red, led_seq_index_red; |
51 static UNS16 led_sequence_red, led_seq_index_red; |
52 static UNS16 led_sequence_green, led_seq_index_green; |
52 static UNS16 led_sequence_green, led_seq_index_green; |
53 |
53 |
54 static UNS8 led_error_code = LED_NO_ERROR; |
54 static UNS8 led_error_code = LED_NO_ERROR; |
55 |
55 |
56 const char *led_sequence_table[6] = // up and downs of the sequence |
56 const char *led_sequence_table[6] = /* up and downs of the sequence */ |
57 { |
57 { |
58 "01", // flickering |
58 "01", /* flickering */ |
59 "01", // blinking |
59 "01", /* blinking */ |
60 "100000", // single flash |
60 "100000", /* single flash */ |
61 "10100000", // double flash |
61 "10100000", /* double flash */ |
62 "1010100000", // triple flash |
62 "1010100000", /* triple flash */ |
63 "101010100000" // quadruple flash |
63 "101010100000" /* quadruple flash */ |
64 }; |
64 }; |
65 |
65 |
66 |
66 |
67 void led_set_state(CO_Data *d, int state) |
67 void led_set_state(CO_Data *d, int state) |
68 { |
68 { |
69 //printf("led_set_state(%x)\n", state); |
69 /*printf("led_set_state(%x)\n", state); */ |
70 |
70 |
71 switch(state) |
71 switch(state) |
72 { |
72 { |
73 case Initialisation: |
73 case Initialisation: |
74 /* |
74 /* |
169 { |
169 { |
170 led_state_green = 1; |
170 led_state_green = 1; |
171 } |
171 } |
172 |
172 |
173 led_start_timer(d, 200); |
173 led_start_timer(d, 200); |
174 //led_set_red(led_state_red); |
174 /*led_set_red(led_state_red); */ |
175 } |
175 } |
176 |
176 |
177 if (led_state_green < 2 && led_state_red < 2) |
177 if (led_state_green < 2 && led_state_red < 2) |
178 { |
178 { |
179 led_stop_timer(); |
179 led_stop_timer(); |
180 |
180 |
181 //led_set_green(led_state_green); |
181 /*led_set_green(led_state_green); */ |
182 //led_set_red(led_state_red); |
182 /*led_set_red(led_state_red); */ |
183 } |
183 } |
184 } |
184 } |
185 |
185 |
186 |
186 |
187 void led_start_timer(CO_Data* d, UNS32 tm) |
187 void led_start_timer(CO_Data* d, UNS32 tm) |
217 |
217 |
218 led_seq_index_red++; |
218 led_seq_index_red++; |
219 if (led_seq_index_red > strlen(led_sequence_table[led_sequence_red])) |
219 if (led_seq_index_red > strlen(led_sequence_table[led_sequence_red])) |
220 led_seq_index_red = 0; |
220 led_seq_index_red = 0; |
221 |
221 |
222 // GREEN LED |
222 /* GREEN LED */ |
223 if (led_sequence_table[led_sequence_green][led_seq_index_green] == '1') |
223 if (led_sequence_table[led_sequence_green][led_seq_index_green] == '1') |
224 { |
224 { |
225 if (led_state_green > 0) |
225 if (led_state_green > 0) |
226 bits = bits | 2; |
226 bits = bits | 2; |
227 /* led_set_green(1); */ |
227 /* led_set_green(1); */ |