Example #1
0
void ICACHE_FLASH_ATTR mod_led_8x8_rgb_init() {
	spi_led_8x8_rgb_init();
	
	preferences_get(MOD_LED8x8RGB, mod_led_8x8_rgb_parse);
	led_8x8_rgb_set_dimensions(mod_led_8x8_cols, mod_led_8x8_rows);
	
	webserver_register_handler_callback(MOD_LED_8x8_RGB_URL, mod_led_8x8_rgb_handler);
	device_register(SPI, 0, MOD_LED8x8RGB, MOD_LED_8x8_RGB_URL, NULL, NULL);
}
Example #2
0
static void draw_row_callback(GContext *ctx, const Layer *cell_layer, MenuIndex *cell_index, void *context) {
  switch(cell_index->row) {
    case 0:
      snprintf(lightup_text, sizeof(lightup_text), "Light up %d min",preferences_get()->secondsToLightUpBeforeAlarm/60);
      menu_cell_basic_draw(ctx, cell_layer, lightup_text, "before alarm goes of", NULL);
      break;
    case 1:
      snprintf(flash_text, sizeof(flash_text), "Snooze to flash: %d",preferences_get()->flashingAfterXSnoozes);
      menu_cell_basic_draw(ctx, cell_layer, flash_text, "Light starts pulsating", NULL);
      break;
    case 2:
      menu_cell_basic_draw(ctx, cell_layer, "Reset", "Back to LIFX factory settings", NULL);
      break;
    case 3:
      menu_cell_basic_draw(ctx, cell_layer, "Test Alarm", "Immediately fires an alarm", NULL);
      break;
    case 4:
      menu_cell_basic_draw(ctx, cell_layer, "Test Alarm in 10 s", NULL, NULL);
      break;
    default:
      break;
  }
}
Example #3
0
void ICACHE_FLASH_ATTR user_switch2_init() {
	uint8 i;
	
	for (i=0; i<SWITCH_COUNT; i++) {
		switch2_hardware[i].id = i;
		PIN_FUNC_SELECT(switch2_hardware[i].gpio.gpio_name, switch2_hardware[i].gpio.gpio_func);
		switch2_hardware[i].state = GPIO_INPUT_GET(GPIO_ID_PIN(switch2_hardware[i].gpio.gpio_id));
		
		if (switch2_hardware[i].type == SWITCH2_SWITCH) {
			gpio_output_set(0, 0, 0, GPIO_ID_PIN(switch2_hardware[i].gpio.gpio_id));
			setInterval(switch2_toggle, &switch2_hardware[i], 10);
		}
	}
	
	preferences_get(SWITCH2_STR, switch2_parse);
	
	webserver_register_handler_callback(SWITCH2_URL, switch2_handler);
	device_register(NATIVE, 0, SWITCH2_STR, SWITCH2_URL, switch2_init, switch2_down);
}
Example #4
0
void do_vibrate(void) {
  if(s_vibration_pattern) {
    s_pwmPat.durations[1] = (s_vibe_counter/s_vibration_pattern)+1;
    s_vibe_counter++;
    vibes_enqueue_custom_pwm_pattern(&s_pwmPat);
  }
  else
    vibes_long_pulse();
  
  if(s_snoozes>=preferences_get()->flashingAfterXSnoozes) {
    if(get_lfx_state_power()) {
      send(DURATION_OFF_MS, 50);
    } else {
      send(DURATION_ON_MS, 50);
    }
  }

  vibe_timer = app_timer_register(1000,vibe_timer_callback,NULL);
}
Example #5
0
static void select_callback(struct MenuLayer *menu_layer, MenuIndex *cell_index, void *context) {
  time_t future_time = time(NULL) + 10;
  
  //Alarm *alarm = alarm_get();
  switch(cell_index->row) {
    case 0:
      if(preferences_get()->secondsToLightUpBeforeAlarm==60) {preferences_get()->secondsToLightUpBeforeAlarm=120;}
      else if(preferences_get()->secondsToLightUpBeforeAlarm==120) {preferences_get()->secondsToLightUpBeforeAlarm=300;}
      else if(preferences_get()->secondsToLightUpBeforeAlarm==300) {preferences_get()->secondsToLightUpBeforeAlarm=600;}
      else if(preferences_get()->secondsToLightUpBeforeAlarm==600) {preferences_get()->secondsToLightUpBeforeAlarm=900;}
      else if(preferences_get()->secondsToLightUpBeforeAlarm==900) {preferences_get()->secondsToLightUpBeforeAlarm=1800;}
      else {preferences_get()->secondsToLightUpBeforeAlarm=60;}
      break;
    case 1:
      preferences_get()->flashingAfterXSnoozes = (preferences_get()->flashingAfterXSnoozes + 1) % 5;
      break;
    case 2:
      preferences_reset();
      break;
    case 3:
      wakeup_launch_window(0);
      break;
    case 4:
      APP_LOG(APP_LOG_LEVEL_DEBUG, "Scheduled wakeup timer");
      wakeup_schedule(future_time, WAKEUP_REASON_ALARM, true);
      break;
    default:
      break;
  }
  settings_window_mark_dirty();
}