/** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ int main(void) { SetupHardware(); /* Create a regular character stream for the interface so that it can be used with the stdio.h functions */ CDC_Device_CreateStream(&VirtualSerial_CDC_Interface, &USBSerialStream); LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); GlobalInterruptEnable(); _setBrightness(50); for (;;) { /* Must throw away unused bytes from the host, or it will lock up while waiting for the device */ CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface); CDC_Device_USBTask(&VirtualSerial_CDC_Interface); USB_USBTask(); DS1302_clock_burst_read((uint8_t *) &rtc); _setDigit( rtc.Seconds % 10 ); _setBrightness( 50 ); _delay_ms(4); } }
int RgbLed::cldExecuteLedCommand(String data){ Cmd * commands = new Cmd[21]; _parseCommands(data, commands, 0); for(int i = 0; i < 21; i++){ Cmd cmd = commands[i]; if(cmd.key.length() > 0) { Serial.print("Processing command: "); Serial.print(cmd.key); Serial.print("="); Serial.println(cmd.value); if(cmd.key.equalsIgnoreCase("enabled")) { if(cmd.value.equalsIgnoreCase(String("true"))) { enable(); } if(cmd.value.equalsIgnoreCase(String("false"))) { disable(); } } else if(cmd.key.equalsIgnoreCase("brightness")){ _setBrightness(cmd.value); } else if(cmd.key.equalsIgnoreCase("color")){ RgbLedColor color = RgbLedColor::getColorByName(cmd.value); if(color.equals(NONE)){ Serial.print("Unknown color: "); Serial.print(color.getName()); Serial.println(". Unable to set color."); } else { setColor(color); } } else if(cmd.key.equalsIgnoreCase("write_style")){ if(cmd.value.equalsIgnoreCase("d") || cmd.value.equalsIgnoreCase("digital")){ _led_write_style = DIGITAL; setColor(_currentColor); } else if(cmd.value.equalsIgnoreCase("a") || cmd.value.equalsIgnoreCase("analog")){ _led_write_style = ANALOG; setColor(_currentColor); } else { Serial.print("Unknown LED write style: "); Serial.print(cmd.value); Serial.println(". No changes will be made."); } } else if(cmd.key.equalsIgnoreCase("type")){ if(cmd.value.equalsIgnoreCase("ca") || cmd.value.equalsIgnoreCase("a") || cmd.value.equalsIgnoreCase("anode") || cmd.value.equalsIgnoreCase("common anode") || cmd.value.equalsIgnoreCase("common_anode")){ _led_type = COMMON_ANODE; setColor(_currentColor); } else if(cmd.value.equalsIgnoreCase("cc") || cmd.value.equalsIgnoreCase("c") || cmd.value.equalsIgnoreCase("cathode") || cmd.value.equalsIgnoreCase("common cathode") || cmd.value.equalsIgnoreCase("common_cathode")){ _led_type = COMMON_CATHODE; setColor(_currentColor); } else{ Serial.print("Unknown LED write style: "); Serial.print(cmd.value); Serial.println(". No changes will be made."); } } else if(cmd.key.equalsIgnoreCase("rgb")){ RgbLedColor color = RgbLedColor::buildFromString(cmd.value); if(color.equals(NONE)){ Serial.print("Invalid RGB value: "); Serial.print(cmd.value); Serial.println(". No changes will be made."); } else{ setColor(color); } } else { Serial.print("Unknown LED command recieved: "); Serial.print(cmd.key); Serial.println("... ignoring."); } } } }