コード例 #1
0
ファイル: main.c プロジェクト: koolatron/herbert
/** 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);
    }
}
コード例 #2
0
ファイル: RgbLed.cpp プロジェクト: alanquillin/myhvac_sensors
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.");
      }
    }
  }
}