1.更新开机逻辑 2.修复开机LED设置常亮时开机异常
This commit is contained in:
parent
ab29bdb691
commit
32b20c85ad
@ -818,10 +818,10 @@ static int ws_connect(transport client, const char *host, int port, int timeout_
|
|||||||
}
|
}
|
||||||
header_len += len;
|
header_len += len;
|
||||||
ws->buffer[header_len] = '\0';
|
ws->buffer[header_len] = '\0';
|
||||||
BK_LOGE(TAG, "Read header chunk %d, current header size: %d\r\n", len, header_len);
|
BK_LOGD(TAG, "Read header chunk %d, current header size: %d\r\n", len, header_len);
|
||||||
} while (NULL == os_strstr(ws->buffer, "\r\n\r\n") && header_len < WS_BUFFER_SIZE);
|
} while (NULL == os_strstr(ws->buffer, "\r\n\r\n") && header_len < WS_BUFFER_SIZE);
|
||||||
os_printf("server buffer:\r\n");
|
//os_printf("server buffer:\r\n");
|
||||||
bk_hex_dump(ws->buffer, 200);
|
//bk_hex_dump(ws->buffer, 200);
|
||||||
#if 0
|
#if 0
|
||||||
if (header_len == WS_BUFFER_SIZE) {
|
if (header_len == WS_BUFFER_SIZE) {
|
||||||
char *is_chunk = get_http_header(ws->buffer, "Transfer-Encoding:");
|
char *is_chunk = get_http_header(ws->buffer, "Transfer-Encoding:");
|
||||||
@ -853,9 +853,9 @@ static int ws_connect(transport client, const char *host, int port, int timeout_
|
|||||||
}
|
}
|
||||||
mbedtls_base64_encode(expected_server_key, sizeof(expected_server_key), &outlen, expected_server_sha1, sizeof(expected_server_sha1));
|
mbedtls_base64_encode(expected_server_key, sizeof(expected_server_key), &outlen, expected_server_sha1, sizeof(expected_server_sha1));
|
||||||
expected_server_key[ (outlen < sizeof(expected_server_key)) ? outlen : (sizeof(expected_server_key) - 1) ] = 0;
|
expected_server_key[ (outlen < sizeof(expected_server_key)) ? outlen : (sizeof(expected_server_key) - 1) ] = 0;
|
||||||
BK_LOGE(TAG, "server key=%s\r\n\r\n", (char *)server_key);
|
BK_LOGD(TAG, "server key=%s\r\n\r\n", (char *)server_key);
|
||||||
BK_LOGE(TAG, "send_key=%s\r\n\r\n", (char*)client_key);
|
BK_LOGD(TAG, "send_key=%s\r\n\r\n", (char*)client_key);
|
||||||
BK_LOGE(TAG, "expected_server_key=%s\r\n\r\n", expected_server_key);
|
BK_LOGD(TAG, "expected_server_key=%s\r\n\r\n", expected_server_key);
|
||||||
if (os_strcmp((char*)expected_server_key, (char*)server_key) != 0) {
|
if (os_strcmp((char*)expected_server_key, (char*)server_key) != 0) {
|
||||||
BK_LOGE(TAG, "Invalid websocket key\r\n");
|
BK_LOGE(TAG, "Invalid websocket key\r\n");
|
||||||
return BK_FAIL;
|
return BK_FAIL;
|
||||||
@ -1082,7 +1082,7 @@ bk_err_t websocket_client_set_uri(transport client, const char *uri)
|
|||||||
}
|
}
|
||||||
os_strncpy(client->config->scheme, uri + puri.field_data[UF_SCHEMA].off, puri.field_data[UF_SCHEMA].len);
|
os_strncpy(client->config->scheme, uri + puri.field_data[UF_SCHEMA].off, puri.field_data[UF_SCHEMA].len);
|
||||||
//client->config->scheme[puri.field_data[UF_SCHEMA].len] = '\0';
|
//client->config->scheme[puri.field_data[UF_SCHEMA].len] = '\0';
|
||||||
os_printf("%s scheme:%s len:%d\r\n", __func__, client->config->scheme, puri.field_data[UF_SCHEMA].len);
|
//os_printf("%s scheme:%s len:%d\r\n", __func__, client->config->scheme, puri.field_data[UF_SCHEMA].len);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (puri.field_data[UF_HOST].len) {
|
if (puri.field_data[UF_HOST].len) {
|
||||||
@ -1346,7 +1346,7 @@ void websocket_client_task(beken_thread_arg_t *thread_param)
|
|||||||
while (client->run) {
|
while (client->run) {
|
||||||
switch ((int)client->state) {
|
switch ((int)client->state) {
|
||||||
case WEBSOCKET_STATE_INIT:
|
case WEBSOCKET_STATE_INIT:
|
||||||
BK_LOGE(TAG, "websocket connecting to %s://%s:%d\r\n", client->config->scheme, client->config->host, client->config->port);
|
BK_LOGD(TAG, "websocket connecting to %s://%s:%d\r\n", client->config->scheme, client->config->host, client->config->port);
|
||||||
if (ws_connect(client, client->config->host,
|
if (ws_connect(client, client->config->host,
|
||||||
client->config->port,
|
client->config->port,
|
||||||
WEBSOCKET_NETWORK_TIMEOUT_MS) < 0) {
|
WEBSOCKET_NETWORK_TIMEOUT_MS) < 0) {
|
||||||
@ -1354,7 +1354,7 @@ void websocket_client_task(beken_thread_arg_t *thread_param)
|
|||||||
ws_disconnect(client);
|
ws_disconnect(client);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
BK_LOGE(TAG, "websocket connected to %s://%s:%d\r\n", client->config->scheme, client->config->host, client->config->port);
|
BK_LOGD(TAG, "websocket connected to %s://%s:%d\r\n", client->config->scheme, client->config->host, client->config->port);
|
||||||
client->state = WEBSOCKET_STATE_CONNECTED;
|
client->state = WEBSOCKET_STATE_CONNECTED;
|
||||||
client->wait_for_pong_resp = false;
|
client->wait_for_pong_resp = false;
|
||||||
bk_websocket_client_dispatch_event(client, WEBSOCKET_EVENT_CONNECTED, NULL, 0, -1);
|
bk_websocket_client_dispatch_event(client, WEBSOCKET_EVENT_CONNECTED, NULL, 0, -1);
|
||||||
|
@ -31,6 +31,8 @@
|
|||||||
static const uint32_t s_factory_volume = 7;
|
static const uint32_t s_factory_volume = 7;
|
||||||
|
|
||||||
static const uint32_t s_bat_offset = 0;
|
static const uint32_t s_bat_offset = 0;
|
||||||
|
static const uint32_t s_bright_timeout = 10;
|
||||||
|
static const uint32_t s_bright_brightness = 100;
|
||||||
|
|
||||||
const struct factory_config_t s_platform_config[] = {
|
const struct factory_config_t s_platform_config[] = {
|
||||||
{"sys_initialized", (void *)"1", 1, BK_FALSE, 1}, // first config used to check whether factory config initialized.
|
{"sys_initialized", (void *)"1", 1, BK_FALSE, 1}, // first config used to check whether factory config initialized.
|
||||||
@ -40,6 +42,8 @@ const struct factory_config_t s_platform_config[] = {
|
|||||||
{"bat_offset", (void *)&s_bat_offset, 4, BK_TRUE, 4},
|
{"bat_offset", (void *)&s_bat_offset, 4, BK_TRUE, 4},
|
||||||
{"ai_ota_url", (void *)"\0", 1, BK_TRUE, 128},
|
{"ai_ota_url", (void *)"\0", 1, BK_TRUE, 128},
|
||||||
{"ai_agent_id", (void *)"\0", 1, BK_TRUE, 128},
|
{"ai_agent_id", (void *)"\0", 1, BK_TRUE, 128},
|
||||||
|
{"bright_timeout", (void *)&s_bright_timeout, 4, BK_TRUE, 4},
|
||||||
|
{"bright_brightness", (void *)&s_bright_brightness, 4, BK_TRUE, 4},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct factory_config_t *s_user_reg_config = NULL;
|
static const struct factory_config_t *s_user_reg_config = NULL;
|
||||||
|
@ -103,6 +103,8 @@ const struct factory_config_t s_user_config[] = {
|
|||||||
#if (CONFIG_SYS_CPU0)
|
#if (CONFIG_SYS_CPU0)
|
||||||
#include "iot/thing.h"
|
#include "iot/thing.h"
|
||||||
#endif
|
#endif
|
||||||
|
void power_on();
|
||||||
|
void power_off();
|
||||||
|
|
||||||
static int beken_rtc_cli_init(void)
|
static int beken_rtc_cli_init(void)
|
||||||
{
|
{
|
||||||
@ -140,31 +142,55 @@ void prepare_config_network_main()
|
|||||||
config_network_thread_handle = NULL;
|
config_network_thread_handle = NULL;
|
||||||
rtos_delete_thread(NULL);
|
rtos_delete_thread(NULL);
|
||||||
}
|
}
|
||||||
|
beken_timer_t g_adckey_timer;
|
||||||
|
static void adc_key_ticks(void *param)
|
||||||
|
|
||||||
void power_off()
|
|
||||||
{
|
{
|
||||||
BK_LOGI(TAG, " power_off\r\n");
|
|
||||||
BK_LOGW(TAG, " ************TODO:Just force deep sleep for Demo!\r\n");
|
|
||||||
// extern bk_err_t audio_turn_off(void);
|
|
||||||
// extern bk_err_t video_turn_off(void);
|
|
||||||
// audio_turn_off();
|
|
||||||
// video_turn_off();
|
|
||||||
|
|
||||||
|
bk_printf("adc_key_ticks9\n");
|
||||||
|
|
||||||
|
#if (CONFIG_SYS_CPU0)
|
||||||
|
gsensor_demo_init();
|
||||||
|
// rtos_delay_milliseconds(100);
|
||||||
|
// gsensor_demo_open();
|
||||||
|
rtos_delay_milliseconds(300);
|
||||||
|
gsensor_demo_set_normal();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
rtos_stop_timer(&g_adckey_timer);
|
||||||
|
|
||||||
|
rtos_deinit_timer(&g_adckey_timer);
|
||||||
|
}
|
||||||
|
KeyConfig_t key_config[] = {
|
||||||
// zhanyu
|
// zhanyu
|
||||||
// bk_reboot_ex(RESET_SOURCE_FORCE_DEEPSLEEP);
|
|
||||||
}
|
|
||||||
|
|
||||||
void power_on()
|
|
||||||
{
|
{
|
||||||
BK_LOGI(TAG, "power_on\r\n");
|
.gpio_id = KEY_GPIO_12,
|
||||||
}
|
.active_level = LOW_LEVEL_TRIGGER,
|
||||||
|
.short_event = POWER_ON,
|
||||||
void ai_agent_config()
|
//.double_event = TURN_ON_LOGHT,
|
||||||
{
|
.long_event = TURN_OFF_LOGHT}
|
||||||
// BK_LOGW(TAG, " ************TODO:AI Agent doesn't complete!\r\n");
|
// {
|
||||||
}
|
// .gpio_id = KEY_GPIO_13, //corresponding to the actual key
|
||||||
|
// .active_level = LOW_LEVEL_TRIGGER,
|
||||||
|
// .short_event = VOLUME_UP,
|
||||||
|
// .double_event = VOLUME_UP, //TRICK: at shutdown mode, it can't recognize double press,short_event is really power on.(but short event is used by VOLUME UP when system is active).
|
||||||
|
// .long_event = CONFIG_NETWORK
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// .gpio_id = KEY_GPIO_12,
|
||||||
|
// .active_level = LOW_LEVEL_TRIGGER,
|
||||||
|
// .short_event = POWER_ON,
|
||||||
|
// .double_event = POWER_ON,
|
||||||
|
// .long_event = SHUT_DOWN
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// .gpio_id = KEY_GPIO_8,
|
||||||
|
// .active_level = LOW_LEVEL_TRIGGER,
|
||||||
|
// .short_event = VOLUME_DOWN,
|
||||||
|
// .double_event = VOLUME_DOWN,
|
||||||
|
// .long_event = FACTORY_RESET
|
||||||
|
// }
|
||||||
|
};
|
||||||
|
|
||||||
/*Do not execute blocking or time-consuming long code in event handler
|
/*Do not execute blocking or time-consuming long code in event handler
|
||||||
functions. The reason is that key_thread processes messages in a
|
functions. The reason is that key_thread processes messages in a
|
||||||
@ -176,30 +202,7 @@ static void handle_system_event(key_event_t event)
|
|||||||
extern void bk_bt_app_avrcp_ct_vol_change(uint32_t platform_vol);
|
extern void bk_bt_app_avrcp_ct_vol_change(uint32_t platform_vol);
|
||||||
switch (event)
|
switch (event)
|
||||||
{
|
{
|
||||||
// case VOLUME_UP:
|
|
||||||
// {
|
|
||||||
// uint32_t old_volume = volume;
|
|
||||||
// volume_increase();
|
|
||||||
// if (old_volume != volume)
|
|
||||||
// {
|
|
||||||
// #if CONFIG_A2DP_SINK_DEMO
|
|
||||||
// bk_bt_app_avrcp_ct_vol_change(volume);
|
|
||||||
// #endif
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// break;
|
|
||||||
// case VOLUME_DOWN:
|
|
||||||
// {
|
|
||||||
// uint32_t old_volume = volume;
|
|
||||||
// volume_decrease();
|
|
||||||
// if (old_volume != volume)
|
|
||||||
// {
|
|
||||||
// #if CONFIG_A2DP_SINK_DEMO
|
|
||||||
// bk_bt_app_avrcp_ct_vol_change(volume);
|
|
||||||
// #endif
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// break;
|
|
||||||
// case SHUT_DOWN:
|
// case SHUT_DOWN:
|
||||||
// time = rtos_get_time(); // long press more than 6s
|
// time = rtos_get_time(); // long press more than 6s
|
||||||
// if (time < 9000)
|
// if (time < 9000)
|
||||||
@ -235,13 +238,16 @@ static void handle_system_event(key_event_t event)
|
|||||||
// bk_factory_reset();
|
// bk_factory_reset();
|
||||||
// bk_reboot();
|
// bk_reboot();
|
||||||
// break;
|
// break;
|
||||||
|
case POWER_ON:
|
||||||
|
bk_printf("POWER_KEY PRESS\n");
|
||||||
|
break;
|
||||||
case TURN_OFF_LOGHT:
|
case TURN_OFF_LOGHT:
|
||||||
bk_printf("ispoweron11 = %d\n", ispoweron);
|
bk_printf("current is power on = %d\n", ispoweron);
|
||||||
// clearallled();
|
// clearallled();
|
||||||
if (ispoweron == 1)
|
if (ispoweron == 1)
|
||||||
{
|
{
|
||||||
|
|
||||||
bk_printf("POWER OFFaaa~~~ \r\n");
|
bk_printf("POWER OFF!!\r\n");
|
||||||
poweroff_voice();
|
poweroff_voice();
|
||||||
ws2812_led_clear_all();
|
ws2812_led_clear_all();
|
||||||
ispoweron = 0;
|
ispoweron = 0;
|
||||||
@ -252,9 +258,10 @@ static void handle_system_event(key_event_t event)
|
|||||||
}
|
}
|
||||||
else if (ispoweron == 0)
|
else if (ispoweron == 0)
|
||||||
{
|
{
|
||||||
bk_printf("POWER ONaaaa~~~~~~~\r\n");
|
bk_printf("POWER ON \r\n");
|
||||||
|
power_on();
|
||||||
#if (CONFIG_SYS_CPU0)
|
#if (CONFIG_SYS_CPU0)
|
||||||
|
//打开电源供电
|
||||||
bk_gpio_enable_output(51);
|
bk_gpio_enable_output(51);
|
||||||
bk_gpio_set_output_high(51);
|
bk_gpio_set_output_high(51);
|
||||||
ispoweron = 1;
|
ispoweron = 1;
|
||||||
@ -272,37 +279,117 @@ static void handle_system_event(key_event_t event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
KeyConfig_t key_config[] = {
|
void power_off()
|
||||||
// zhanyu
|
|
||||||
|
|
||||||
{
|
{
|
||||||
.gpio_id = KEY_GPIO_12,
|
BK_LOGE(TAG, " power_off\r\n");
|
||||||
.active_level = LOW_LEVEL_TRIGGER,
|
BK_LOGW(TAG, " ************TODO:Just force deep sleep for Demo!\r\n");
|
||||||
//.short_event = TURN_ON_LOGHT,
|
// extern bk_err_t audio_turn_off(void);
|
||||||
//.double_event = TURN_ON_LOGHT,
|
// extern bk_err_t video_turn_off(void);
|
||||||
.long_event = TURN_OFF_LOGHT}
|
// audio_turn_off();
|
||||||
// {
|
// video_turn_off();
|
||||||
// .gpio_id = KEY_GPIO_13, //corresponding to the actual key
|
|
||||||
// .active_level = LOW_LEVEL_TRIGGER,
|
//zhanyu
|
||||||
// .short_event = VOLUME_UP,
|
// bk_reboot_ex(RESET_SOURCE_FORCE_DEEPSLEEP);
|
||||||
// .double_event = VOLUME_UP, //TRICK: at shutdown mode, it can't recognize double press,short_event is really power on.(but short event is used by VOLUME UP when system is active).
|
}
|
||||||
// .long_event = CONFIG_NETWORK
|
|
||||||
// },
|
void power_on()
|
||||||
// {
|
{
|
||||||
// .gpio_id = KEY_GPIO_12,
|
BK_LOGE(TAG, "power_on!!!!!!\r\n");
|
||||||
// .active_level = LOW_LEVEL_TRIGGER,
|
#if (CONFIG_SYS_CPU0)
|
||||||
// .short_event = POWER_ON,
|
bk_regist_factory_user_config((const struct factory_config_t *)&s_user_config,
|
||||||
// .double_event = POWER_ON,
|
sizeof(s_user_config) / sizeof(s_user_config[0]));
|
||||||
// .long_event = SHUT_DOWN
|
bk_factory_init();
|
||||||
// },
|
#endif
|
||||||
// {
|
// led init move before
|
||||||
// .gpio_id = KEY_GPIO_8,
|
#if (CONFIG_SYS_CPU0)
|
||||||
// .active_level = LOW_LEVEL_TRIGGER,
|
|
||||||
// .short_event = VOLUME_DOWN,
|
// No operation countdown 3 minutes to shut down
|
||||||
// .double_event = VOLUME_DOWN,
|
// start_countdown(countdown_ms);
|
||||||
// .long_event = FACTORY_RESET
|
// led init move before
|
||||||
|
led_driver_init();
|
||||||
|
led_app_set(LED_ON_GREEN, LED_LAST_FOREVER);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// media_service_init();
|
||||||
|
|
||||||
|
#if (CONFIG_SYS_CPU0)
|
||||||
|
//app_event_init();
|
||||||
|
|
||||||
|
#if CONFIG_AUD_INTF_SUPPORT_PROMPT_TONE
|
||||||
|
extern bk_err_t audio_turn_on(void);
|
||||||
|
int ret = audio_turn_on();
|
||||||
|
if (ret != BK_OK)
|
||||||
|
{
|
||||||
|
BK_LOGE(TAG, "%s, %d, audio turn on fail, ret:%d\n", __func__, __LINE__, ret);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (CONFIG_SYS_CPU1)
|
||||||
|
beken_rtc_cli_init();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (CONFIG_SYS_CPU0)
|
||||||
|
bk_pm_module_vote_boot_cp1_ctrl(PM_BOOT_CP1_MODULE_NAME_AUDP_AUDIO, PM_POWER_MODULE_STATE_ON);
|
||||||
|
|
||||||
|
bk_genie_core_init();
|
||||||
|
|
||||||
|
#if CONFIG_NETWORK_AUTO_RECONNECT
|
||||||
|
bk_genie_smart_config_init();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if CONFIG_BAT_MONITOR
|
||||||
|
extern void battery_monitor_init(void);
|
||||||
|
battery_monitor_init();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
bk_err_t result;
|
||||||
|
|
||||||
|
result = rtos_init_timer(&g_adckey_timer,
|
||||||
|
6000,
|
||||||
|
adc_key_ticks,
|
||||||
|
(void *)0);
|
||||||
|
|
||||||
|
if (result != 0)
|
||||||
|
{
|
||||||
|
bk_printf("rtos_init_timer fail\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
result = rtos_start_timer(&g_adckey_timer);
|
||||||
|
if (result != 0)
|
||||||
|
{
|
||||||
|
bk_printf("rtos_start_timer fail\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
#if (CONFIG_SYS_CPU0)
|
||||||
|
// bk_printf("ispoweron = %d bk_enter_deepsleep();\n",ispoweron);
|
||||||
|
// if(ispoweron == 0){
|
||||||
|
// bk_printf("bk_enter_deepsleep()aaa\n");
|
||||||
|
// bk_enter_deepsleep();
|
||||||
// }
|
// }
|
||||||
};
|
|
||||||
|
// poka
|
||||||
|
ws2812_init();
|
||||||
|
thing_init();
|
||||||
|
app_start();
|
||||||
|
init_bat_timer();
|
||||||
|
// spi_led_init();
|
||||||
|
bk_printf("VER:%s\r\n", APPLICATION_VERSION);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_USBD_MSC
|
||||||
|
extern void msc_storage_init(void);
|
||||||
|
msc_storage_init();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void ai_agent_config()
|
||||||
|
{
|
||||||
|
// BK_LOGW(TAG, " ************TODO:AI Agent doesn't complete!\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
static void bk_key_register_wakeup_source()
|
static void bk_key_register_wakeup_source()
|
||||||
{
|
{
|
||||||
@ -406,29 +493,10 @@ static void handle_system_event(key_event_t event)
|
|||||||
{
|
{
|
||||||
#if (CONFIG_SYS_CPU0)
|
#if (CONFIG_SYS_CPU0)
|
||||||
bk_pm_module_vote_cpu_freq(PM_DEV_ID_AUDIO, PM_CPU_FRQ_240M);
|
bk_pm_module_vote_cpu_freq(PM_DEV_ID_AUDIO, PM_CPU_FRQ_240M);
|
||||||
|
//beken_rtc_cli_init();
|
||||||
beken_rtc_cli_init();
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
beken_timer_t g_adckey_timer;
|
|
||||||
|
|
||||||
static void adc_key_ticks(void *param)
|
|
||||||
{
|
|
||||||
|
|
||||||
bk_printf("adc_key_ticks9\n");
|
|
||||||
|
|
||||||
#if (CONFIG_SYS_CPU0)
|
|
||||||
gsensor_demo_init();
|
|
||||||
// rtos_delay_milliseconds(100);
|
|
||||||
// gsensor_demo_open();
|
|
||||||
rtos_delay_milliseconds(300);
|
|
||||||
gsensor_demo_set_normal();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
rtos_stop_timer(&g_adckey_timer);
|
|
||||||
|
|
||||||
rtos_deinit_timer(&g_adckey_timer);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
@ -438,9 +506,6 @@ static void handle_system_event(key_event_t event)
|
|||||||
bk_gpio_enable_output(GPIO_0);
|
bk_gpio_enable_output(GPIO_0);
|
||||||
bk_gpio_set_output_low(GPIO_0);
|
bk_gpio_set_output_low(GPIO_0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (bk_misc_get_reset_reason() != RESET_SOURCE_FORCE_DEEPSLEEP)
|
if (bk_misc_get_reset_reason() != RESET_SOURCE_FORCE_DEEPSLEEP)
|
||||||
{
|
{
|
||||||
#if (CONFIG_SYS_CPU0)
|
#if (CONFIG_SYS_CPU0)
|
||||||
@ -448,6 +513,9 @@ static void handle_system_event(key_event_t event)
|
|||||||
#endif
|
#endif
|
||||||
bk_init();
|
bk_init();
|
||||||
|
|
||||||
|
media_service_init();
|
||||||
|
|
||||||
|
|
||||||
#if (CONFIG_SYS_CPU0)
|
#if (CONFIG_SYS_CPU0)
|
||||||
#ifdef CONFIG_LDO3V3_ENABLE
|
#ifdef CONFIG_LDO3V3_ENABLE
|
||||||
BK_LOG_ON_ERR(gpio_dev_unmap(LDO3V3_CTRL_GPIO));
|
BK_LOG_ON_ERR(gpio_dev_unmap(LDO3V3_CTRL_GPIO));
|
||||||
@ -455,113 +523,12 @@ static void handle_system_event(key_event_t event)
|
|||||||
bk_gpio_enable_output(LDO3V3_CTRL_GPIO);
|
bk_gpio_enable_output(LDO3V3_CTRL_GPIO);
|
||||||
bk_gpio_set_output_high(LDO3V3_CTRL_GPIO);
|
bk_gpio_set_output_high(LDO3V3_CTRL_GPIO);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (CONFIG_SYS_CPU0)
|
|
||||||
|
|
||||||
|
|
||||||
/*to judgement key is long press or short press; long press exit deepsleep*/
|
|
||||||
|
|
||||||
//zhanyu
|
|
||||||
// if (bk_misc_get_reset_reason() == RESET_SOURCE_DEEPPS_GPIO && (bk_gpio_get_wakeup_gpio_id() == KEY_GPIO_12))
|
|
||||||
// {
|
|
||||||
// // motor vibration
|
|
||||||
// motor_open(PWM_MOTOR_CH_3);
|
|
||||||
// bk_wait_power_on();
|
|
||||||
// motor_close(PWM_MOTOR_CH_3);
|
|
||||||
// }
|
|
||||||
|
|
||||||
bk_regist_factory_user_config((const struct factory_config_t *)&s_user_config,
|
|
||||||
sizeof(s_user_config) / sizeof(s_user_config[0]));
|
|
||||||
bk_factory_init();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// led init move before
|
|
||||||
#if (CONFIG_SYS_CPU0)
|
|
||||||
|
|
||||||
// No operation countdown 3 minutes to shut down
|
|
||||||
// start_countdown(countdown_ms);
|
|
||||||
// led init move before
|
|
||||||
led_driver_init();
|
|
||||||
led_app_set(LED_ON_GREEN, LED_LAST_FOREVER);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
media_service_init();
|
|
||||||
|
|
||||||
#if (CONFIG_SYS_CPU0)
|
|
||||||
app_event_init();
|
app_event_init();
|
||||||
|
|
||||||
#if CONFIG_AUD_INTF_SUPPORT_PROMPT_TONE
|
|
||||||
extern bk_err_t audio_turn_on(void);
|
|
||||||
int ret = audio_turn_on();
|
|
||||||
if (ret != BK_OK)
|
|
||||||
{
|
|
||||||
BK_LOGE(TAG, "%s, %d, audio turn on fail, ret:%d\n", __func__, __LINE__, ret);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (CONFIG_SYS_CPU1)
|
|
||||||
beken_rtc_cli_init();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (CONFIG_SYS_CPU0)
|
|
||||||
bk_pm_module_vote_boot_cp1_ctrl(PM_BOOT_CP1_MODULE_NAME_AUDP_AUDIO, PM_POWER_MODULE_STATE_ON);
|
|
||||||
|
|
||||||
bk_genie_core_init();
|
|
||||||
|
|
||||||
#if CONFIG_NETWORK_AUTO_RECONNECT
|
|
||||||
bk_genie_smart_config_init();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
register_event_handler(handle_system_event);
|
register_event_handler(handle_system_event);
|
||||||
bk_key_driver_init(key_config, sizeof(key_config) / sizeof(KeyConfig_t));
|
bk_key_driver_init(key_config, sizeof(key_config) / sizeof(KeyConfig_t));
|
||||||
|
|
||||||
#if CONFIG_BAT_MONITOR
|
|
||||||
extern void battery_monitor_init(void);
|
|
||||||
battery_monitor_init();
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bk_err_t result;
|
|
||||||
|
|
||||||
result = rtos_init_timer(&g_adckey_timer,
|
|
||||||
6000,
|
|
||||||
adc_key_ticks,
|
|
||||||
(void *)0);
|
|
||||||
|
|
||||||
if (result != 0)
|
|
||||||
{
|
|
||||||
bk_printf("rtos_init_timer fail\r\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
result = rtos_start_timer(&g_adckey_timer);
|
|
||||||
if (result != 0)
|
|
||||||
{
|
|
||||||
bk_printf("rtos_start_timer fail\r\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
#if (CONFIG_SYS_CPU0)
|
|
||||||
// bk_printf("ispoweron = %d bk_enter_deepsleep();\n",ispoweron);
|
|
||||||
// if(ispoweron == 0){
|
|
||||||
// bk_printf("bk_enter_deepsleep()aaa\n");
|
|
||||||
// bk_enter_deepsleep();
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
//poka
|
|
||||||
ws2812_init();
|
|
||||||
thing_init();
|
|
||||||
app_start();
|
|
||||||
init_bat_timer();
|
|
||||||
// spi_led_init();
|
|
||||||
bk_printf("VER:%s\r\n",APPLICATION_VERSION);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if CONFIG_USBD_MSC
|
|
||||||
extern void msc_storage_init(void);
|
|
||||||
msc_storage_init();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -65,11 +65,11 @@ bk_err_t bk_genie_send_msg(bk_genie_msg_t *msg)
|
|||||||
//helloyifa
|
//helloyifa
|
||||||
//static wifi_scan_result_t *scan_result = NULL;
|
//static wifi_scan_result_t *scan_result = NULL;
|
||||||
static wifi_scan_result_t scan_result = {0};
|
static wifi_scan_result_t scan_result = {0};
|
||||||
static wifi_scan_ap_info_t aps_tmps[15];
|
static wifi_scan_ap_info_t aps_tmps[20];
|
||||||
int ssid_count_in_scan_result(char * ssid){
|
int ssid_count_in_scan_result(char * ssid){
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
for(int i = 0 ;i<15 ;i++){
|
for(int i = 0 ;i<20 ;i++){
|
||||||
|
|
||||||
if (strcmp(ssid, aps_tmps[i].ssid) == 0) {
|
if (strcmp(ssid, aps_tmps[i].ssid) == 0) {
|
||||||
//printf("<22><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
//printf("<22><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||||
@ -107,11 +107,10 @@ void ble_set_wifi_scan_result(wifi_scan_result_t *result){
|
|||||||
if (strlen(scan_result->aps[i].ssid) > 0)
|
if (strlen(scan_result->aps[i].ssid) > 0)
|
||||||
{
|
{
|
||||||
// os_printf("WIFI_SCAN:%s\r\n",scan_result->aps[i].ssid);
|
// os_printf("WIFI_SCAN:%s\r\n",scan_result->aps[i].ssid);
|
||||||
// <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
if (ssid_count_in_scan_result(scan_result->aps[i].ssid) > 0)
|
if (ssid_count_in_scan_result(scan_result->aps[i].ssid) > 0)
|
||||||
{
|
{
|
||||||
// os_printf("%s alread in list\r\n",scan_result->aps[i].ssid);
|
os_printf("%s alread in list\r\n",scan_result->aps[i].ssid);
|
||||||
continue;
|
//continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// <20><><EFBFBD>浽<EFBFBD>б<EFBFBD>
|
// <20><><EFBFBD>浽<EFBFBD>б<EFBFBD>
|
||||||
|
@ -192,11 +192,12 @@ static uint16_t *const s_boarding_attr_handle_list[sizeof(s_gatts_attr_db_servic
|
|||||||
};
|
};
|
||||||
static boarding_state m_state = BOARDING_STATE_IDLE;
|
static boarding_state m_state = BOARDING_STATE_IDLE;
|
||||||
int ble_notify_boarding_state(boarding_state state){
|
int ble_notify_boarding_state(boarding_state state){
|
||||||
|
wboard_logi("ble_notify_boarding_state: %d \n", state);
|
||||||
if(m_state == state){
|
if(m_state == state){
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
//在没有配置wifi情况下,不发送状态AP_NOFOUND PASSWORD_ERROR
|
//在没有配置wifi情况下,不发送状态AP_NOFOUND PASSWORD_ERROR
|
||||||
if(state== BOARDING_STATE_AP_NOFOUND && m_state != BOARDING_STATE_SETWIFI){
|
if(state== BOARDING_STATE_AP_NOFOUND && m_state == BOARDING_STATE_SETWIFI){
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if(state== BOARDING_STATE_PASSWORD_ERROR && m_state != BOARDING_STATE_SETWIFI){
|
if(state== BOARDING_STATE_PASSWORD_ERROR && m_state != BOARDING_STATE_SETWIFI){
|
||||||
|
@ -329,6 +329,7 @@ void ws2812_init(){
|
|||||||
int close_led_timeout = APPLICATION_DEFULT_LIGHT_TIMEOUT;
|
int close_led_timeout = APPLICATION_DEFULT_LIGHT_TIMEOUT;
|
||||||
ret = bk_get_env_enhance(WS2812_CONFIG_BRIGHT_TIMEOUT, (void *)&close_led_timeout, 4);
|
ret = bk_get_env_enhance(WS2812_CONFIG_BRIGHT_TIMEOUT, (void *)&close_led_timeout, 4);
|
||||||
bk_printf("bk_get_env_enhance close_led_timeout:%d\n",close_led_timeout);
|
bk_printf("bk_get_env_enhance close_led_timeout:%d\n",close_led_timeout);
|
||||||
|
|
||||||
work_timeout = close_led_timeout*60*1000;
|
work_timeout = close_led_timeout*60*1000;
|
||||||
|
|
||||||
int brightness = APPLICATION_DEFULT_LIGHT_BRIGHTNESS;
|
int brightness = APPLICATION_DEFULT_LIGHT_BRIGHTNESS;
|
||||||
@ -337,8 +338,11 @@ void ws2812_init(){
|
|||||||
current_brightness = brightness;
|
current_brightness = brightness;
|
||||||
#endif
|
#endif
|
||||||
bk_printf("ws2812 init work_timeout:%d ms\n",work_timeout);
|
bk_printf("ws2812 init work_timeout:%d ms\n",work_timeout);
|
||||||
|
if(work_timeout > 0){
|
||||||
//初始化定时器
|
//初始化定时器
|
||||||
rtos_init_timer(&timer_close_handle, work_timeout, ws2812_close_timer_handle, 0);
|
rtos_init_timer(&timer_close_handle, work_timeout, ws2812_close_timer_handle, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
void ws2812_deinit(){
|
void ws2812_deinit(){
|
||||||
@ -481,18 +485,31 @@ int ws2812_get_brightness(){
|
|||||||
* 启动定时关闭
|
* 启动定时关闭
|
||||||
*/
|
*/
|
||||||
void ws2812_start_timer(){
|
void ws2812_start_timer(){
|
||||||
|
bk_printf("ws2812_reload_timer: %d ms\n",work_timeout);
|
||||||
//超时自动关闭
|
//超时自动关闭
|
||||||
rtos_start_timer(&timer_close_handle);
|
rtos_start_timer(&timer_close_handle);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ws2812_reload_timer(){
|
void ws2812_reload_timer(){
|
||||||
|
bk_printf("ws2812_reload_timer: %d ms\n",work_timeout);
|
||||||
|
|
||||||
|
if(work_timeout > 0){
|
||||||
|
if(!rtos_is_timer_init(&timer_close_handle)){
|
||||||
|
rtos_init_timer(&timer_close_handle, work_timeout, ws2812_close_timer_handle, 0);
|
||||||
|
}
|
||||||
|
bk_printf("ws2812_reload_time1r: %d ms\n",work_timeout);
|
||||||
|
if(rtos_is_timer_init(&timer_close_handle) && rtos_is_timer_running(&timer_close_handle)){
|
||||||
//复位定时器
|
//复位定时器
|
||||||
rtos_reload_timer(&timer_close_handle);
|
rtos_reload_timer(&timer_close_handle);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void ws2812_close_timer(){
|
void ws2812_close_timer(){
|
||||||
if(rtos_is_timer_init(&timer_close_handle) || rtos_is_timer_running(&timer_close_handle)){
|
if(rtos_is_timer_init(&timer_close_handle) && rtos_is_timer_running(&timer_close_handle)){
|
||||||
rtos_stop_timer(&timer_close_handle);
|
rtos_stop_timer(&timer_close_handle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -505,6 +522,10 @@ void ws2812_set_timeout(int timeout_m){
|
|||||||
bk_printf("ws2812_set_timeout: %d ms\n",work_timeout);
|
bk_printf("ws2812_set_timeout: %d ms\n",work_timeout);
|
||||||
|
|
||||||
if(work_timeout > 0){
|
if(work_timeout > 0){
|
||||||
|
|
||||||
|
if(!rtos_is_timer_init(&timer_close_handle)){
|
||||||
|
rtos_init_timer(&timer_close_handle, work_timeout, ws2812_close_timer_handle, 0);
|
||||||
|
}
|
||||||
rtos_change_period(&timer_close_handle, work_timeout);
|
rtos_change_period(&timer_close_handle, work_timeout);
|
||||||
ws2812_reload_timer();
|
ws2812_reload_timer();
|
||||||
}else{
|
}else{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user