/****************************************************************************** * 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_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_plug_set_status * Description : set plug's status, 0x00 or 0x01 * Parameters : uint8 - status * Returns : none *******************************************************************************/ void ICACHE_FLASH_ATTR user_plug_set_status(bool status) { if (status != plug_param.status) { if (status > 1) { os_printf("error status input!\n"); return; } plug_param.status = status; PLUG_STATUS_OUTPUT(PLUG_RELAY_LED_IO_NUM, status); } }
/****************************************************************************** * FunctionName : user_plug_set_status * Description : set plug's status, 0x00 or 0x01 * Parameters : uint8 - status * Returns : none *******************************************************************************/ void user_plug_set_status(bool status) { if (status != plug_param.status) { if (status > 1) { printf("error status input!\n"); return; } printf("status input! %d\n", status); plug_param.status = status; PLUG_STATUS_OUTPUT(PLUG_RELAY_LED_IO_NUM, status); } }