/****************************************************************************** * FunctionName : user_plug_init * Description : init plug's key function and relay output * Parameters : none * Returns : none *******************************************************************************/ void ICACHE_FLASH_ATTR user_plug_init(void) { user_link_led_init(); wifi_status_led_install(PLUG_WIFI_LED_IO_NUM, PLUG_WIFI_LED_IO_MUX, PLUG_WIFI_LED_IO_FUNC); single_key[0] = key_init_single(PLUG_KEY_0_IO_NUM, PLUG_KEY_0_IO_MUX, PLUG_KEY_0_IO_FUNC, user_plug_long_press, user_plug_short_press); keys.key_num = PLUG_KEY_NUM; keys.single_key = single_key; key_init(&keys); spi_flash_read((PRIV_PARAM_START_SEC + PRIV_PARAM_SAVE) * SPI_FLASH_SEC_SIZE, (uint32 *)&plug_param, sizeof(struct plug_saved_param)); PIN_FUNC_SELECT(PLUG_RELAY_LED_IO_MUX, PLUG_RELAY_LED_IO_FUNC); // no used SPI Flash if (plug_param.status == 0xff) { plug_param.status = 1; } PLUG_STATUS_OUTPUT(PLUG_RELAY_LED_IO_NUM, plug_param.status); }
/****************************************************************************** * FunctionName : user_sensor_init * Description : init sensor function, include key and mvh3004 * Parameters : none * Returns : none *******************************************************************************/ void ICACHE_FLASH_ATTR user_sensor_init(uint8 active) { user_link_led_init(); wifi_status_led_install(SENSOR_WIFI_LED_IO_NUM, SENSOR_WIFI_LED_IO_MUX, SENSOR_WIFI_LED_IO_FUNC); if (wifi_get_opmode() != SOFTAP_MODE) { single_key[0] = key_init_single(SENSOR_KEY_IO_NUM, SENSOR_KEY_IO_MUX, SENSOR_KEY_IO_FUNC, user_sensor_long_press, NULL); keys.key_num = SENSOR_KEY_NUM; keys.single_key = single_key; key_init(&keys); if (GPIO_INPUT_GET(GPIO_ID_PIN(SENSOR_KEY_IO_NUM)) == 0) { user_sensor_long_press(); } } if (wifi_get_opmode() != STATIONAP_MODE) { if (active == 1) { user_sensor_deep_sleep_init(SENSOR_CONNECT_TIME / 1000);//exceed SENSOR_CONNECT_TIME,sleep directly } else { user_sensor_deep_sleep_init(SENSOR_CONNECT_TIME / 1000);//exceed SENSOR_CONNECT_TIME,sleep directly } } }
/****************************************************************************** * FunctionName : user_plug_init * Description : init plug's key function and relay output * Parameters : none * Returns : none *******************************************************************************/ void user_plug_init(void) { printf("user_plug_init start!\n"); user_link_led_init(); wifi_status_led_install(PLUG_WIFI_LED_IO_NUM, PLUG_WIFI_LED_IO_MUX, PLUG_WIFI_LED_IO_FUNC); single_key[0] = key_init_single(PLUG_KEY_0_IO_NUM, PLUG_KEY_0_IO_MUX, PLUG_KEY_0_IO_FUNC, user_plug_long_press, user_plug_short_press); keys.key_num = PLUG_KEY_NUM; keys.single_key = single_key; key_init(&keys); spi_flash_read((PRIV_PARAM_START_SEC + PRIV_PARAM_SAVE) * SPI_FLASH_SEC_SIZE, (uint32 *)&plug_param, sizeof(struct plug_saved_param)); PIN_FUNC_SELECT(PLUG_RELAY_LED_IO_MUX, PLUG_RELAY_LED_IO_FUNC); // default to be off, for safety. if (plug_param.status == 0xff) { plug_param.status = 0; } PLUG_STATUS_OUTPUT(PLUG_RELAY_LED_IO_NUM, plug_param.status); }
/****************************************************************************** * FunctionName : user_humiture_init * Description : init humiture function, include key and mvh3004 * Parameters : none * Returns : none *******************************************************************************/ void ICACHE_FLASH_ATTR user_sensor_init(uint8 active) { user_link_led_init(); wifi_status_led_install(SENSOR_WIFI_LED_IO_NUM, SENSOR_WIFI_LED_IO_MUX, SENSOR_WIFI_LED_IO_FUNC); if (wifi_get_opmode() != SOFTAP_MODE) { single_key[0] = key_init_single(SENSOR_KEY_IO_NUM, SENSOR_KEY_IO_MUX, SENSOR_KEY_IO_FUNC, user_sensor_long_press, NULL); keys.key_num = SENSOR_KEY_NUM; keys.single_key = single_key; key_init(&keys); if (GPIO_INPUT_GET(GPIO_ID_PIN(SENSOR_KEY_IO_NUM)) == 0) { user_sensor_long_press(); } } #if HUMITURE_SUB_DEVICE user_mvh3004_init(); user_mvh3004_read_th(humiture_data); #endif #ifdef SENSOR_DEEP_SLEEP if (wifi_get_opmode() != STATIONAP_MODE) { if (active == 1) { user_sensor_deep_sleep_init(SENSOR_DEEP_SLEEP_TIME / 1000 ); } else { user_sensor_deep_sleep_init(SENSOR_DEEP_SLEEP_TIME / 1000 / 3 * 2); } } #endif }