add the last missing colors on the infrared control (-sijuhamm)
[moodlight.git] / console.c
index a8445cbbe4f83729becced0d131841f19d4ba057..87f20434bc2d8fcf998dd787dd49ed3ca98f0bf3 100644 (file)
--- a/console.c
+++ b/console.c
@@ -1,4 +1,4 @@
-/* $Id: console.c,v 1.1 2010/06/26 12:28:08 simimeie Exp $
+/* $Id: console.c,v 1.3 2010/06/30 19:40:49 simimeie Exp $
  * Functions for a serial console.
  */
 
@@ -8,7 +8,9 @@
 #include <avr/version.h>
 #include <util/delay.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include "console.h"
+#include "ledpwm.h"
 
 /* PD0 is RXD, PD1 is TXD, but we don't need to address them manually */
 
@@ -27,14 +29,14 @@ static uint8_t escstatus = 0;
 static prog_uint8_t CRLF[] = "\r\n";
 static prog_uint8_t WELCOMEMSG[] = "\r\n"\
                                   "\r\n ******************************************"\
-                                  "\r\n * universal mainboard v1                 *"\
-                                  "\r\n * (C) Michael 'PoempelFox' Meier 05/2010 *"\
+                                  "\r\n * HaWo Moodlight v0 (prototype)          *"\
+                                  "\r\n * (C) Michael 'PoempelFox' Meier 06/2010 *"\
                                   "\r\n ******************************************"\
                                   "\r\n"\
                                   "\r\nProcessor: atmega328"\
                                   "\r\nAVR-libc: " __AVR_LIBC_VERSION_STRING__ " (" __AVR_LIBC_DATE_STRING__ ")"\
                                   "\r\nSoftware Version 0.1, Compiled " __DATE__ " " __TIME__;
-static prog_uint8_t PROMPT[] = "\r\nroot@mbv1# ";
+static prog_uint8_t PROMPT[] = "\r\nroot@moodlight# ";
 
 /* Handler for TXC (TX Complete) IRQ */
 ISR(USART_TX_vect) {
@@ -260,6 +262,7 @@ ISR(USART_RX_vect) {
                        console_printpgm_noirq_P(PSTR("\r\n motd             repeat welcome message"));
                        console_printpgm_noirq_P(PSTR("\r\n showpins [x]     shows the avrs inputpins"));
                        console_printpgm_noirq_P(PSTR("\r\n status           show status / counters"));
+                       console_printpgm_noirq_P(PSTR("\r\n [rgb] n          sets the brightness of the red / green / blue LED to n"));
                        /* console_printpgm_noirq_P(PSTR("\r\n save             saves settings to EEPROM")); */
                } else if (strcmp_P(inputbuf, PSTR("motd")) == 0) {
                        console_printpgm_noirq_P(WELCOMEMSG);
@@ -318,7 +321,45 @@ ISR(USART_RX_vect) {
                        console_printpgm_noirq_P(PSTR("Settings written to EEPROM."));*/
                } else if (strcmp_P(inputbuf, PSTR("status")) == 0) {
                        console_printpgm_noirq_P(PSTR("Current status:\r\n"));
-                       console_printpgm_noirq_P(PSTR("none. nothing implemented yet."));
+                       console_printpgm_noirq_P(PSTR("red = "));
+                       console_printhex8_noirq(ledpwm_re);
+                       console_printpgm_noirq_P(PSTR(", green = "));
+                       console_printhex8_noirq(ledpwm_gr);
+                       console_printpgm_noirq_P(PSTR(", blue = "));
+                       console_printhex8_noirq(ledpwm_bl);
+                       console_printpgm_noirq_P(PSTR(", brightness = "));
+                       console_printhex8_noirq(ledpwm_bri);
+                       /*console_printpgm_noirq_P(CRLF);*/
+               } else if (strncmp_P(inputbuf, PSTR("r "), 2) == 0) {
+                       uint8_t v;
+                       v = strtoul(&inputbuf[2], NULL, 0);
+                       ledpwm_re = v;
+                       ledpwm_setled(LEDPWM_REDLED, (((uint16_t)ledpwm_re * ledpwm_bri) / 255));
+                       console_printpgm_P(PSTR("RED value set to 0x"));
+                       console_printhex8(v);
+               } else if (strncmp_P(inputbuf, PSTR("g "), 2) == 0) {
+                       uint8_t v;
+                       v = strtoul(&inputbuf[2], NULL, 0);
+                       ledpwm_gr = v;
+                       ledpwm_setled(LEDPWM_GREENLED, (((uint16_t)ledpwm_gr * ledpwm_bri) / 255));
+                       console_printpgm_P(PSTR("GREEN value set to 0x"));
+                       console_printhex8(v);
+               } else if (strncmp_P(inputbuf, PSTR("b "), 2) == 0) {
+                       uint8_t v;
+                       v = strtoul(&inputbuf[2], NULL, 0);
+                       ledpwm_bl = v;
+                       ledpwm_setled(LEDPWM_BLUELED, (((uint16_t)ledpwm_bl * ledpwm_bri) / 255));
+                       console_printpgm_P(PSTR("BLUE value set to 0x"));
+                       console_printhex8(v);
+               } else if (strncmp_P(inputbuf, PSTR("bri "), 2) == 0) {
+                       uint8_t v;
+                       v = strtoul(&inputbuf[4], NULL, 0);
+                       ledpwm_bri = v;
+                       ledpwm_setled(LEDPWM_REDLED, (((uint16_t)ledpwm_re * ledpwm_bri) / 255));
+                       ledpwm_setled(LEDPWM_GREENLED, (((uint16_t)ledpwm_gr * ledpwm_bri) / 255));
+                       ledpwm_setled(LEDPWM_BLUELED, (((uint16_t)ledpwm_bl * ledpwm_bri) / 255));
+                       console_printpgm_P(PSTR("brightness set to 0x"));
+                       console_printhex8(v);
 #ifdef JOKECMDS
                } else if (strncmp_P(inputbuf, PSTR("ls"), 2) == 0) {
                        console_printpgm_noirq_P(PSTR("Total 4711\r\n"));
This page took 0.045646 seconds and 4 git commands to generate.