|
@@ -48,8 +48,8 @@ YC_DATA_T yc_data;
|
|
//ListNode *list_head = NULL;
|
|
//ListNode *list_head = NULL;
|
|
|
|
|
|
adc_oneshot_unit_handle_t adc1_handle;
|
|
adc_oneshot_unit_handle_t adc1_handle;
|
|
-QueueHandle_t left_screen_queue;
|
|
|
|
-QueueHandle_t right_screen_queue;
|
|
|
|
|
|
+
|
|
|
|
+QueueHandle_t screen_queue;
|
|
QueueHandle_t lora_data_queue;
|
|
QueueHandle_t lora_data_queue;
|
|
QueueHandle_t yc_data_queue;
|
|
QueueHandle_t yc_data_queue;
|
|
QueueHandle_t button_Data_queue;
|
|
QueueHandle_t button_Data_queue;
|
|
@@ -88,8 +88,9 @@ extern RINGBUF_st *lora_ringbuf;
|
|
// static void board_init(void);
|
|
// static void board_init(void);
|
|
// static void info_init(void);
|
|
// static void info_init(void);
|
|
|
|
|
|
-static void left_screen_task(void* arg);
|
|
|
|
-static void right_screen_task(void* arg);
|
|
|
|
|
|
+// static void left_screen_task(void* arg);
|
|
|
|
+// static void right_screen_task(void* arg);
|
|
|
|
+static void screen_task(void* arg);
|
|
static void unpack_task(void* arg);
|
|
static void unpack_task(void* arg);
|
|
static void lora_task(void* arg);
|
|
static void lora_task(void* arg);
|
|
static void button_task(void* arg);
|
|
static void button_task(void* arg);
|
|
@@ -355,8 +356,8 @@ void app_init()
|
|
//charge_init();
|
|
//charge_init();
|
|
//decection_charging_init();
|
|
//decection_charging_init();
|
|
|
|
|
|
- left_screen_queue = xQueueCreate(10, sizeof(Machine_info_t));
|
|
|
|
- right_screen_queue = xQueueCreate(10, sizeof(Machine_info_t));
|
|
|
|
|
|
+ screen_queue = xQueueCreate(10, sizeof(bool));
|
|
|
|
+
|
|
|
|
|
|
lora_data_queue = xQueueCreate(20, sizeof(LORA_DATA_T));
|
|
lora_data_queue = xQueueCreate(20, sizeof(LORA_DATA_T));
|
|
|
|
|
|
@@ -495,79 +496,16 @@ if(last_paint_buf_right!=NULL)
|
|
|
|
|
|
if(Machine_info.batt_precent <96)
|
|
if(Machine_info.batt_precent <96)
|
|
{
|
|
{
|
|
- user_compare_power_off(Machine_info.last_batt_precent,Machine_info.batt_precent);
|
|
|
|
- printf("charge_key is %s,batt=%d,last batt=%d\r\n",!charge_key?"charge in":"charge out",Machine_info.batt_precent,Machine_info.last_batt_precent);
|
|
|
|
-
|
|
|
|
- value_count++;
|
|
|
|
-
|
|
|
|
- if(value_count>60)
|
|
|
|
- {
|
|
|
|
- Machine_info.last_batt_precent = Machine_info.batt_precent;
|
|
|
|
- value_count = 0;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- #if 0
|
|
|
|
- power_key = gpio_get_level(4);
|
|
|
|
-
|
|
|
|
- vTaskDelay(4000 / portTICK_PERIOD_MS);
|
|
|
|
|
|
+ user_compare_power_off(Machine_info.last_batt_precent,Machine_info.batt_precent);
|
|
|
|
+ printf("charge_key is %s,batt=%d,last batt=%d\r\n",!charge_key?"charge in":"charge out",Machine_info.batt_precent,Machine_info.last_batt_precent);
|
|
|
|
|
|
- if( 0 == gpio_get_level(4))
|
|
|
|
- {
|
|
|
|
- uart_wait_tx_idle_polling(CONFIG_ESP_CONSOLE_UART_NUM);
|
|
|
|
- printf("power on\r\n");
|
|
|
|
-
|
|
|
|
- #if 1//USER_DEEP_SLEEP_ENABLE
|
|
|
|
- reson = is_wake_up_reson(); //返回唤醒的原因
|
|
|
|
- /* ULP Risc-V read and detected a temperature above the limit */
|
|
|
|
- if (reson == ESP_SLEEP_WAKEUP_EXT0)
|
|
|
|
- {
|
|
|
|
-
|
|
|
|
- if(Machine_info.power_status == 0)
|
|
|
|
- {
|
|
|
|
- Machine_info.power_status = 1; //开机
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- lora_set_power_level(1); //打开lora电源
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- // Set duty to 50%
|
|
|
|
- ESP_ERROR_CHECK(ledc_set_duty(LEDC_MODE, LEDC_CHANNEL, LEDC_DUTY));
|
|
|
|
- // Update duty to apply the new value
|
|
|
|
- ESP_ERROR_CHECK(ledc_update_duty(LEDC_MODE, LEDC_CHANNEL));
|
|
|
|
-
|
|
|
|
- vTaskDelay(1000/ portTICK_PERIOD_MS);
|
|
|
|
-
|
|
|
|
- ESP_ERROR_CHECK(ledc_set_duty(LEDC_MODE, LEDC_CHANNEL, 0));
|
|
|
|
- // Update duty to apply the new value
|
|
|
|
- ESP_ERROR_CHECK(ledc_update_duty(LEDC_MODE, LEDC_CHANNEL));
|
|
|
|
-
|
|
|
|
- Machine_info.left_current_Quick_refresh_time = 5;
|
|
|
|
- vTaskDelay(1000/ portTICK_PERIOD_MS);
|
|
|
|
-
|
|
|
|
- if(xQueueSend(left_screen_queue,&Machine_info,portMAX_DELAY) != true)
|
|
|
|
- {
|
|
|
|
- printf("left send fail\r\n");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }else if(Machine_info.power_status == 1)
|
|
|
|
- {
|
|
|
|
- printf("aready power on\r\n");
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- #endif
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- #endif
|
|
|
|
|
|
+ value_count++;
|
|
|
|
|
|
|
|
+ if(value_count>60)
|
|
|
|
+ {
|
|
|
|
+ Machine_info.last_batt_precent = Machine_info.batt_precent;
|
|
|
|
+ value_count = 0;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
}else //未充电
|
|
}else //未充电
|
|
@@ -620,7 +558,7 @@ if(last_paint_buf_right!=NULL)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-xTaskCreate( left_screen_task, "left_screen_task", 25*1024, NULL, configMAX_PRIORITIES - 1, NULL);
|
|
|
|
|
|
+// xTaskCreate( left_screen_task, "left_screen_task", 25*1024, NULL, configMAX_PRIORITIES - 1, NULL);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -751,11 +689,11 @@ extern uint32_t ulp_wakeup_result;
|
|
|
|
|
|
Machine_info.left_current_Quick_refresh_time = 5;
|
|
Machine_info.left_current_Quick_refresh_time = 5;
|
|
vTaskDelay(1000/ portTICK_PERIOD_MS);
|
|
vTaskDelay(1000/ portTICK_PERIOD_MS);
|
|
- printf("开机刷屏\r\n");
|
|
|
|
- if(xQueueSend(left_screen_queue,&Machine_info,portMAX_DELAY) != true)
|
|
|
|
- {
|
|
|
|
- printf("left send fail\r\n");
|
|
|
|
- }
|
|
|
|
|
|
+ // printf("开机刷屏\r\n");
|
|
|
|
+ // if(xQueueSend(screen_queue,&Machine_info,portMAX_DELAY) != true)
|
|
|
|
+ // {
|
|
|
|
+ // printf("left send fail\r\n");
|
|
|
|
+ // }
|
|
}else if(Machine_info.power_status == 1){
|
|
}else if(Machine_info.power_status == 1){
|
|
printf("aready power on\r\n");
|
|
printf("aready power on\r\n");
|
|
}
|
|
}
|
|
@@ -821,86 +759,74 @@ extern uint32_t ulp_wakeup_result;
|
|
printf("left key press power off\r\n");
|
|
printf("left key press power off\r\n");
|
|
uart_wait_tx_idle_polling(CONFIG_ESP_CONSOLE_UART_NUM);
|
|
uart_wait_tx_idle_polling(CONFIG_ESP_CONSOLE_UART_NUM);
|
|
|
|
|
|
- #if 1
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+#if 1
|
|
|
|
+ font_into_sleep();
|
|
|
|
+ #include "EPD.h"
|
|
|
|
+ epd_sleep(SCREEN_LEFT);
|
|
|
|
+ epd_sleep(SCREEN_RIGHT);
|
|
|
|
|
|
|
|
+ //gpio_hold_en(PIN_L_CS);
|
|
|
|
+ //gpio_hold_en(PIN_R_CS);
|
|
|
|
|
|
|
|
+ // gpio_set_level(PIN_L_CS,1);
|
|
|
|
+ // gpio_set_level(PIN_R_CS,1);
|
|
|
|
+ //gpio_reset_pin(46);
|
|
|
|
|
|
|
|
|
|
- font_into_sleep();
|
|
|
|
- #include "EPD.h"
|
|
|
|
- epd_sleep(SCREEN_LEFT);
|
|
|
|
- epd_sleep(SCREEN_RIGHT);
|
|
|
|
|
|
+ //uart_wait_tx_idle_polling(CONFIG_ESP_CONSOLE_UART_NUM);
|
|
|
|
+ //ESP_ERROR_CHECK(uart_wait_tx_done(UART_NUM_1,portMAX_DELAY));
|
|
|
|
+ esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_TIMER);
|
|
|
|
|
|
- //gpio_hold_en(PIN_L_CS);
|
|
|
|
- //gpio_hold_en(PIN_R_CS);
|
|
|
|
|
|
+ // gpio_set_level(LORA_TXD_PIN, 0);
|
|
|
|
+ // gpio_set_level(LORA_RXD_PIN, 0);
|
|
|
|
|
|
- // gpio_set_level(PIN_L_CS,1);
|
|
|
|
- // gpio_set_level(PIN_R_CS,1);
|
|
|
|
- //gpio_reset_pin(46);
|
|
|
|
|
|
+ //uart_sleep_in_config();
|
|
|
|
+ uart_driver_delete(UART_NUM_1);
|
|
|
|
+ gpio_reset_pin(LORA_TXD_PIN);
|
|
|
|
+ gpio_reset_pin(LORA_RXD_PIN);
|
|
|
|
|
|
-
|
|
|
|
- //uart_wait_tx_idle_polling(CONFIG_ESP_CONSOLE_UART_NUM);
|
|
|
|
- //ESP_ERROR_CHECK(uart_wait_tx_done(UART_NUM_1,portMAX_DELAY));
|
|
|
|
- esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_TIMER);
|
|
|
|
|
|
+ gpio_config_t io_conf = {};
|
|
|
|
+ io_conf.pin_bit_mask = (1<<LORA_TXD_PIN);
|
|
|
|
+ io_conf.mode = GPIO_MODE_OUTPUT;
|
|
|
|
+ io_conf.pull_up_en = false;
|
|
|
|
+ gpio_config(&io_conf);
|
|
|
|
|
|
- // gpio_set_level(LORA_TXD_PIN, 0);
|
|
|
|
- // gpio_set_level(LORA_RXD_PIN, 0);
|
|
|
|
-
|
|
|
|
- //uart_sleep_in_config();
|
|
|
|
- uart_driver_delete(UART_NUM_1);
|
|
|
|
- gpio_reset_pin(LORA_TXD_PIN);
|
|
|
|
- gpio_reset_pin(LORA_RXD_PIN);
|
|
|
|
-
|
|
|
|
- gpio_config_t io_conf = {};
|
|
|
|
- io_conf.pin_bit_mask = (1<<LORA_TXD_PIN);
|
|
|
|
- io_conf.mode = GPIO_MODE_OUTPUT;
|
|
|
|
- io_conf.pull_up_en = false;
|
|
|
|
- gpio_config(&io_conf);
|
|
|
|
-
|
|
|
|
- io_conf.pin_bit_mask = (1<<LORA_RXD_PIN);
|
|
|
|
- io_conf.mode = GPIO_MODE_OUTPUT;
|
|
|
|
- io_conf.pull_up_en = false;
|
|
|
|
- gpio_config(&io_conf);
|
|
|
|
-
|
|
|
|
- gpio_set_level(LORA_TXD_PIN, 0);
|
|
|
|
- gpio_set_level(LORA_RXD_PIN, 0);
|
|
|
|
- gpio_hold_en(LORA_TXD_PIN);
|
|
|
|
- gpio_hold_en(LORA_RXD_PIN);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- //电源按键
|
|
|
|
- // adc_oneshot_del_unit(adc1_handle);
|
|
|
|
- gpio_reset_pin(4);
|
|
|
|
- int ext_wakeup_pin_0 = 4;
|
|
|
|
- //printf("Enabling EXT0 wakeup on pin GPIO%d\n", ext_wakeup_pin_0);
|
|
|
|
- ESP_ERROR_CHECK(esp_sleep_enable_ext0_wakeup(ext_wakeup_pin_0, 0));
|
|
|
|
|
|
+ io_conf.pin_bit_mask = (1<<LORA_RXD_PIN);
|
|
|
|
+ io_conf.mode = GPIO_MODE_OUTPUT;
|
|
|
|
+ io_conf.pull_up_en = false;
|
|
|
|
+ gpio_config(&io_conf);
|
|
|
|
|
|
- // Configure pullup/downs via RTCIO to tie wakeup pins to inactive level during deepsleep.
|
|
|
|
- // EXT0 resides in the same power domain (RTC_PERIPH) as the RTC IO pullup/downs.
|
|
|
|
- // No need to keep that power domain explicitly, unlike EXT1.
|
|
|
|
- ESP_ERROR_CHECK(rtc_gpio_pullup_en(ext_wakeup_pin_0));
|
|
|
|
- ESP_ERROR_CHECK(rtc_gpio_pulldown_dis(ext_wakeup_pin_0));
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- //充电按键
|
|
|
|
- gpio_reset_pin(2);
|
|
|
|
- const int ext_wakeup_pin_1 = 2;
|
|
|
|
- const uint64_t ext_wakeup_pin_1_mask = 1ULL << ext_wakeup_pin_1;
|
|
|
|
- printf("Enabling EXT1 wakeup on pins GPIO%d\r\n",ext_wakeup_pin_1);
|
|
|
|
- ESP_ERROR_CHECK(esp_sleep_enable_ext1_wakeup(ext_wakeup_pin_1_mask, ESP_EXT1_WAKEUP_ALL_LOW));
|
|
|
|
|
|
+ gpio_set_level(LORA_TXD_PIN, 0);
|
|
|
|
+ gpio_set_level(LORA_RXD_PIN, 0);
|
|
|
|
+ gpio_hold_en(LORA_TXD_PIN);
|
|
|
|
+ gpio_hold_en(LORA_RXD_PIN);
|
|
|
|
+
|
|
|
|
+ //电源按键
|
|
|
|
+ // adc_oneshot_del_unit(adc1_handle);
|
|
|
|
+ gpio_reset_pin(4);
|
|
|
|
+ int ext_wakeup_pin_0 = 4;
|
|
|
|
+ //printf("Enabling EXT0 wakeup on pin GPIO%d\n", ext_wakeup_pin_0);
|
|
|
|
+ ESP_ERROR_CHECK(esp_sleep_enable_ext0_wakeup(ext_wakeup_pin_0, 0));
|
|
|
|
|
|
|
|
+ // Configure pullup/downs via RTCIO to tie wakeup pins to inactive level during deepsleep.
|
|
|
|
+ // EXT0 resides in the same power domain (RTC_PERIPH) as the RTC IO pullup/downs.
|
|
|
|
+ // No need to keep that power domain explicitly, unlike EXT1.
|
|
|
|
+ ESP_ERROR_CHECK(rtc_gpio_pullup_en(ext_wakeup_pin_0));
|
|
|
|
+ ESP_ERROR_CHECK(rtc_gpio_pulldown_dis(ext_wakeup_pin_0));
|
|
|
|
|
|
|
|
|
|
|
|
+ //充电按键
|
|
|
|
+ gpio_reset_pin(2);
|
|
|
|
+ const int ext_wakeup_pin_1 = 2;
|
|
|
|
+ const uint64_t ext_wakeup_pin_1_mask = 1ULL << ext_wakeup_pin_1;
|
|
|
|
+ printf("Enabling EXT1 wakeup on pins GPIO%d\r\n",ext_wakeup_pin_1);
|
|
|
|
+ ESP_ERROR_CHECK(esp_sleep_enable_ext1_wakeup(ext_wakeup_pin_1_mask, ESP_EXT1_WAKEUP_ALL_LOW));
|
|
|
|
|
|
- esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
|
|
|
- ESP_ERROR_CHECK( esp_sleep_enable_ulp_wakeup());
|
|
|
|
|
|
+ esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
|
|
|
+ ESP_ERROR_CHECK( esp_sleep_enable_ulp_wakeup());
|
|
|
|
|
|
|
|
|
|
- #endif
|
|
|
|
|
|
+#endif
|
|
esp_deep_sleep_start();
|
|
esp_deep_sleep_start();
|
|
}else
|
|
}else
|
|
{
|
|
{
|
|
@@ -922,7 +848,8 @@ extern uint32_t ulp_wakeup_result;
|
|
|
|
|
|
|
|
|
|
#if 1
|
|
#if 1
|
|
- if(xQueueSend(left_screen_queue,&Machine_info,portMAX_DELAY) != true)
|
|
|
|
|
|
+ bool is_left = true;
|
|
|
|
+ if(xQueueSend(screen_queue,&Machine_info,portMAX_DELAY) != true)
|
|
{
|
|
{
|
|
printf("left send fail\r\n");
|
|
printf("left send fail\r\n");
|
|
}
|
|
}
|
|
@@ -1030,8 +957,8 @@ extern uint32_t ulp_wakeup_result;
|
|
|
|
|
|
xTaskCreate( button_task,"button_task",5*2048, NULL, configMAX_PRIORITIES, NULL);
|
|
xTaskCreate( button_task,"button_task",5*2048, NULL, configMAX_PRIORITIES, NULL);
|
|
|
|
|
|
-xTaskCreate( right_screen_task, "right_screen_task",15*1024, NULL, configMAX_PRIORITIES - 2, NULL);
|
|
|
|
-
|
|
|
|
|
|
+// xTaskCreate( right_screen_task, "right_screen_task",15*1024, NULL, configMAX_PRIORITIES - 2, NULL);
|
|
|
|
+xTaskCreate( screen_task, "screen_task",40*1024, NULL, configMAX_PRIORITIES - 2, NULL);
|
|
|
|
|
|
printf("=================================UPDATE OK===========================\r\n");
|
|
printf("=================================UPDATE OK===========================\r\n");
|
|
|
|
|
|
@@ -1165,371 +1092,88 @@ print_systenInfo();
|
|
|
|
|
|
// }
|
|
// }
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-static void left_screen_task(void* arg)
|
|
|
|
|
|
+static void screen_task(void* arg)
|
|
{
|
|
{
|
|
-
|
|
|
|
- extern bool is_sleep;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- #if USER_NOT_SLEEP_ENABLE || USER_LIGHT_SLEEP_ENABLE
|
|
|
|
-
|
|
|
|
- int reson = is_wake_up_reson(); //返回唤醒的原因
|
|
|
|
- if ((reson != ESP_SLEEP_WAKEUP_ULP) && (reson != ESP_SLEEP_WAKEUP_TIMER)&&(reson != ESP_SLEEP_WAKEUP_EXT0))
|
|
|
|
- {
|
|
|
|
- Paint_leftScreen_main_powerOn();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- #endif
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- Machine_info_t info;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- // if(reson == ESP_SLEEP_WAKEUP_EXT0)
|
|
|
|
- // {
|
|
|
|
- // //开机刷新左屏慕
|
|
|
|
- // Paint_leftScreen_main_slow(&info);
|
|
|
|
- // }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ Machine_info.rssi = 100;//没有获取到真数据,默认100
|
|
|
|
+ int reson = is_wake_up_reson(); //返回唤醒的原因
|
|
|
|
+ ESP_LOGW(LOG_TAG,"screen_task %d",reson);
|
|
|
|
+ if ((reson != ESP_SLEEP_WAKEUP_ULP) && (reson != ESP_SLEEP_WAKEUP_TIMER)&&(reson != ESP_SLEEP_WAKEUP_EXT0))
|
|
|
|
+ {
|
|
|
|
+ Paint_leftScreen_main_powerOn();
|
|
|
|
+ Paint_rightScreen_main_powerON();
|
|
|
|
+ }
|
|
|
|
+ else if(reson == ESP_SLEEP_WAKEUP_EXT0)
|
|
|
|
+ {
|
|
|
|
+ //开机刷新左屏慕
|
|
|
|
+ Paint_leftScreen_main_slow(&Machine_info);
|
|
|
|
+ Paint_rightScreen_main_slow(&Machine_info);
|
|
|
|
+ }
|
|
|
|
+ bool is_left = false;
|
|
while(1)
|
|
while(1)
|
|
{
|
|
{
|
|
- if(xQueueReceive(left_screen_queue, &info,(TickType_t)portMAX_DELAY))
|
|
|
|
|
|
+ if(xQueueReceive(screen_queue, &is_left,(TickType_t)portMAX_DELAY))
|
|
{
|
|
{
|
|
-
|
|
|
|
font_exit_sleep();
|
|
font_exit_sleep();
|
|
-
|
|
|
|
- printf("left 拿锁\n");
|
|
|
|
- if(xSemaphoreTake(screen_semaphore, portMAX_DELAY) == true)
|
|
|
|
- // if(1)
|
|
|
|
|
|
+ ESP_LOGD(LOG_TAG,"%s",is_left?"左屏刷新":"右屏刷新");
|
|
|
|
+ if(is_left)//刷左屏
|
|
{
|
|
{
|
|
if(Machine_info.left_current_Quick_refresh_time >= Machine_info.left_max_Quick_refresh_time)
|
|
if(Machine_info.left_current_Quick_refresh_time >= Machine_info.left_max_Quick_refresh_time)
|
|
{
|
|
{
|
|
Machine_info.left_current_Quick_refresh_time = 0;
|
|
Machine_info.left_current_Quick_refresh_time = 0;
|
|
- Paint_leftScreen_main_slow(&info);
|
|
|
|
|
|
+ Paint_leftScreen_main_slow(&Machine_info);
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- // printf("left_current_Quick_refresh_time = %d,Machine_info.left_max_Quick_refresh_time= %d\r\n",Machine_info.left_current_Quick_refresh_time,Machine_info.left_max_Quick_refresh_time);
|
|
|
|
Machine_info.left_current_Quick_refresh_time++;
|
|
Machine_info.left_current_Quick_refresh_time++;
|
|
- Paint_leftScreen_main_quick(&info);
|
|
|
|
|
|
+ Paint_leftScreen_main_quick(&Machine_info);
|
|
}
|
|
}
|
|
- printf("left 还锁\n");
|
|
|
|
- xSemaphoreGive(screen_semaphore);
|
|
|
|
}
|
|
}
|
|
- else
|
|
|
|
|
|
+ else//刷右屏
|
|
{
|
|
{
|
|
- ESP_LOGE(LOG_TAG,"left 拿锁失败 \n");
|
|
|
|
|
|
+ Paint_rightScreen_main_slow(&Machine_info);
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- while(1)
|
|
|
|
- {
|
|
|
|
- if( (left_refresh_timer_isActive() == false) )
|
|
|
|
|
|
+ if((Machine_info.power_status == 1)&&(Machine_info.paired == 1))
|
|
{
|
|
{
|
|
- printf("7left refresh complete %s\r\n",left_refresh_timer_isActive()?"true":"false");
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- vTaskDelay(100/ portTICK_PERIOD_MS);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- if(
|
|
|
|
- (Machine_info.power_status == 1)&&
|
|
|
|
-
|
|
|
|
- (Machine_info.paired == 1) //已配对
|
|
|
|
-
|
|
|
|
- )
|
|
|
|
- {
|
|
|
|
-
|
|
|
|
|
|
+ ESP_LOGW(LOG_TAG,"刷屏进入休眠 %s",is_left?"左屏刷新":"右屏刷新");
|
|
sleep_timer_start(100); //进入睡眠
|
|
sleep_timer_start(100); //进入睡眠
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-if(Machine_info.power_status == 0)
|
|
|
|
-{
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- printf("=>deep sleep\r\n");
|
|
|
|
- uart_wait_tx_idle_polling(CONFIG_ESP_CONSOLE_UART_NUM);
|
|
|
|
- //vTaskDelay(100/ portTICK_PERIOD_MS);
|
|
|
|
-
|
|
|
|
|
|
+ if(Machine_info.power_status == 0)
|
|
|
|
+ {
|
|
|
|
+ printf("=>screen deep sleep\r\n");
|
|
|
|
+ uart_wait_tx_idle_polling(CONFIG_ESP_CONSOLE_UART_NUM);
|
|
#if 1 //电源按键
|
|
#if 1 //电源按键
|
|
- // adc_oneshot_del_unit(adc1_handle);
|
|
|
|
- gpio_reset_pin(4);
|
|
|
|
- int ext_wakeup_pin_0 = 4;
|
|
|
|
- printf("Enabling EXT0 wakeup on pin GPIO%d\n", ext_wakeup_pin_0);
|
|
|
|
- ESP_ERROR_CHECK(esp_sleep_enable_ext0_wakeup(ext_wakeup_pin_0, 0));
|
|
|
|
-
|
|
|
|
- // Configure pullup/downs via RTCIO to tie wakeup pins to inactive level during deepsleep.
|
|
|
|
- // EXT0 resides in the same power domain (RTC_PERIPH) as the RTC IO pullup/downs.
|
|
|
|
- // No need to keep that power domain explicitly, unlike EXT1.
|
|
|
|
- ESP_ERROR_CHECK(rtc_gpio_pullup_en(ext_wakeup_pin_0));
|
|
|
|
- ESP_ERROR_CHECK(rtc_gpio_pulldown_dis(ext_wakeup_pin_0));
|
|
|
|
-
|
|
|
|
|
|
+ gpio_reset_pin(4);
|
|
|
|
+ int ext_wakeup_pin_0 = 4;
|
|
|
|
+ printf("Enabling EXT0 wakeup on pin GPIO%d\n", ext_wakeup_pin_0);
|
|
|
|
+ ESP_ERROR_CHECK(esp_sleep_enable_ext0_wakeup(ext_wakeup_pin_0, 0));
|
|
|
|
|
|
- esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
|
|
|
- ESP_ERROR_CHECK( esp_sleep_enable_ulp_wakeup());
|
|
|
|
|
|
+ // Configure pullup/downs via RTCIO to tie wakeup pins to inactive level during deepsleep.
|
|
|
|
+ // EXT0 resides in the same power domain (RTC_PERIPH) as the RTC IO pullup/downs.
|
|
|
|
+ // No need to keep that power domain explicitly, unlike EXT1.
|
|
|
|
+ ESP_ERROR_CHECK(rtc_gpio_pullup_en(ext_wakeup_pin_0));
|
|
|
|
+ ESP_ERROR_CHECK(rtc_gpio_pulldown_dis(ext_wakeup_pin_0));
|
|
|
|
|
|
|
|
+ esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
|
|
|
+ ESP_ERROR_CHECK( esp_sleep_enable_ulp_wakeup());
|
|
#endif
|
|
#endif
|
|
- //adc_oneshot_del_unit(adc1_handle);
|
|
|
|
- esp_deep_sleep_start();
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- // if(Machine_info.paired == 1) //已配对
|
|
|
|
- // {
|
|
|
|
- // if(is_sleep == false) //已经进入sleep定时器
|
|
|
|
- // {
|
|
|
|
- // printf("已配对 进入睡眠\n");
|
|
|
|
- // sleep_timer_start(100); //进入睡眠
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- #if 0
|
|
|
|
- int reson = is_wake_up_reson(); //返回唤醒的原因
|
|
|
|
- /* ULP Risc-V read and detected a temperature above the limit */
|
|
|
|
- if (reson == ESP_SLEEP_WAKEUP_ULP || reson == ESP_SLEEP_WAKEUP_TIMER) {
|
|
|
|
- //lora_set_power_level(0);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- #if 0
|
|
|
|
- font_into_sleep(); //关闭外设电源
|
|
|
|
- epd_sleep(SCREEN_LEFT);
|
|
|
|
- epd_sleep(SCREEN_RIGHT);
|
|
|
|
- #endif
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- #if USER_LIGHT_SLEEP_ENABLE
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- if(is_sleep == true) //已经进入sleep定时器
|
|
|
|
- {
|
|
|
|
- printf("display refresh commplete ready sleep\r\n");
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- if(Machine_info.paired == 1) //已配对
|
|
|
|
- {
|
|
|
|
- //if(is_sleep == false) //已经进入sleep定时器
|
|
|
|
- {
|
|
|
|
- sleep_timer_start(100); //进入睡眠
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }else
|
|
|
|
- {
|
|
|
|
- printf("display refresh commplete not into sleep\r\n");
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- //esp_sleep_enable_timer_wakeup(TIMER_WAKEUP_TIME_US); //配置当前休眠的唤醒时间
|
|
|
|
- //esp_light_sleep_start();
|
|
|
|
- #endif
|
|
|
|
-
|
|
|
|
- #if USER_DEEP_SLEEP_ENABLE
|
|
|
|
- //esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_TIMER);
|
|
|
|
- //重新配置休眠唤醒时间
|
|
|
|
- //esp_sleep_enable_timer_wakeup(TIMER_WAKEUP_TIME_US); //配置当前休眠的唤醒时间
|
|
|
|
- //esp_deep_sleep_start();
|
|
|
|
- #endif
|
|
|
|
- }else
|
|
|
|
- {
|
|
|
|
- if(Machine_info.paired == 1) //已配对
|
|
|
|
- {
|
|
|
|
- if(is_sleep == false) //已经进入sleep定时器
|
|
|
|
- {
|
|
|
|
- printf("已配对 进入睡眠\n");
|
|
|
|
- sleep_timer_start(100); //进入睡眠
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- #endif
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static void right_screen_task(void* arg)
|
|
|
|
-{
|
|
|
|
-
|
|
|
|
- extern bool is_sleep;
|
|
|
|
-
|
|
|
|
- #if USER_DEEP_SLEEP_ENABLE
|
|
|
|
-
|
|
|
|
- int reson = is_wake_up_reson(); //返回唤醒的原因
|
|
|
|
- if ((reson != ESP_SLEEP_WAKEUP_ULP) && (reson != ESP_SLEEP_WAKEUP_TIMER))
|
|
|
|
- {
|
|
|
|
- vTaskDelay(1000 / portTICK_PERIOD_MS);
|
|
|
|
- Paint_rightScreen_main_powerON();
|
|
|
|
- }
|
|
|
|
- #endif
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- // #if USER_NOT_SLEEP_ENABLE || USER_LIGHT_SLEEP_ENABLE
|
|
|
|
-
|
|
|
|
- // //vTaskDelay(1000 / portTICK_PERIOD_MS);
|
|
|
|
- // Paint_rightScreen_main_powerON();
|
|
|
|
-
|
|
|
|
- // #endif
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- int reson = is_wake_up_reson(); //返回唤醒的原因
|
|
|
|
- //if ((reson != ESP_SLEEP_WAKEUP_ULP) && (reson != ESP_SLEEP_WAKEUP_TIMER)&&(reson != ESP_SLEEP_WAKEUP_EXT0))
|
|
|
|
- {
|
|
|
|
- Paint_rightScreen_main_powerON();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- vTaskDelay(3000 / portTICK_PERIOD_MS);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- Machine_info.rssi = 100;//没有获取到真数据,默认100
|
|
|
|
-
|
|
|
|
- Machine_info_t info;
|
|
|
|
- while(1)
|
|
|
|
- {
|
|
|
|
- if(xQueueReceive(right_screen_queue, &info, (TickType_t)portMAX_DELAY))
|
|
|
|
- {
|
|
|
|
- font_exit_sleep();
|
|
|
|
- ESP_LOGD(LOG_TAG,"right_screen_task");
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- // printf("refresh %d,max %d\r\n",Machine_info.right_current_Quick_refresh_time,Machine_info.right_max_Quick_refresh_time);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- printf("right 拿锁\n");
|
|
|
|
- if(xSemaphoreTake(screen_semaphore, portMAX_DELAY) == true)
|
|
|
|
- // if(1)
|
|
|
|
- {
|
|
|
|
- if(Machine_info.right_current_Quick_refresh_time >= Machine_info.right_max_Quick_refresh_time)
|
|
|
|
- {
|
|
|
|
- Machine_info.right_current_Quick_refresh_time = 0;
|
|
|
|
- Paint_rightScreen_main_slow(&info);
|
|
|
|
- }else
|
|
|
|
- {
|
|
|
|
- Machine_info.right_current_Quick_refresh_time++;
|
|
|
|
- // Paint_rightScreen_main_quick(&info);
|
|
|
|
- Paint_rightScreen_main_slow(&info);
|
|
|
|
- }
|
|
|
|
- printf("right 还锁\n");
|
|
|
|
- xSemaphoreGive(screen_semaphore);
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- ESP_LOGE(LOG_TAG,"right 拿锁失败 \n");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- while(1)
|
|
|
|
- {
|
|
|
|
- if( (right_refresh_timer_isActive() == false) )
|
|
|
|
- {
|
|
|
|
- printf("8left refresh complete %s\r\n",right_refresh_timer_isActive()?"true":"false");
|
|
|
|
- break;
|
|
|
|
|
|
+ esp_deep_sleep_start();
|
|
}
|
|
}
|
|
- vTaskDelay(100/ portTICK_PERIOD_MS);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- #if 1
|
|
|
|
- int reson = is_wake_up_reson(); //返回唤醒的原因
|
|
|
|
- /* ULP Risc-V read and detected a temperature above the limit */
|
|
|
|
- if (reson == ESP_SLEEP_WAKEUP_ULP || reson == ESP_SLEEP_WAKEUP_TIMER) {
|
|
|
|
- //lora_set_power_level(0);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- #if USER_LIGHT_SLEEP_ENABLE
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- if(is_sleep == true) //已经进入sleep定时器
|
|
|
|
- {
|
|
|
|
- printf("display right refresh commplete ready sleep\r\n");
|
|
|
|
-
|
|
|
|
- if(Machine_info.paired == 1) //已配对
|
|
|
|
- {
|
|
|
|
- //if(is_sleep == false) //已经进入sleep定时器
|
|
|
|
- {
|
|
|
|
- sleep_timer_start(100); //进入睡眠
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }else
|
|
|
|
- {
|
|
|
|
- printf("display right refresh commplete not into sleep\r\n");
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- //esp_sleep_enable_timer_wakeup(TIMER_WAKEUP_TIME_US); //配置当前休眠的唤醒时间
|
|
|
|
- //esp_light_sleep_start();
|
|
|
|
- #endif
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- #if 0
|
|
|
|
- font_into_sleep(); //关闭外设电源
|
|
|
|
- epd_sleep(SCREEN_LEFT);
|
|
|
|
- epd_sleep(SCREEN_RIGHT);
|
|
|
|
- #endif
|
|
|
|
-
|
|
|
|
- #if USER_LIGHT_SLEEP_ENABLE
|
|
|
|
- //esp_sleep_enable_timer_wakeup(TIMER_WAKEUP_TIME_US); //配置当前休眠的唤醒时间
|
|
|
|
- //esp_light_sleep_start();
|
|
|
|
- #endif
|
|
|
|
-
|
|
|
|
- #if USER_DEEP_SLEEP_ENABLE
|
|
|
|
- //重新配置休眠唤醒时间
|
|
|
|
- //esp_sleep_enable_timer_wakeup(TIMER_WAKEUP_TIME_US); //配置当前休眠的唤醒时间
|
|
|
|
- //esp_deep_sleep_start();
|
|
|
|
- #endif
|
|
|
|
- }else
|
|
|
|
- {
|
|
|
|
- if(Machine_info.paired == 1) //已配对
|
|
|
|
- {
|
|
|
|
- if(is_sleep == false) //已经进入sleep定时器
|
|
|
|
- {
|
|
|
|
- sleep_timer_start(100); //进入睡眠
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- printf("sleep = %d\r\n",is_sleep);
|
|
|
|
- }
|
|
|
|
- #endif
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
static void button_task(void* arg)
|
|
static void button_task(void* arg)
|
|
{
|
|
{
|
|
//update_last_button_info(Machine_info.current_button.button_info);//初始化上个按键为运行,用作paint0703计时
|
|
//update_last_button_info(Machine_info.current_button.button_info);//初始化上个按键为运行,用作paint0703计时
|
|
uint8_t button_info;
|
|
uint8_t button_info;
|
|
|
|
+ bool is_left = false;
|
|
while(1)
|
|
while(1)
|
|
{
|
|
{
|
|
if(xQueueReceive(button_Data_queue, &button_info, (TickType_t)portMAX_DELAY))
|
|
if(xQueueReceive(button_Data_queue, &button_info, (TickType_t)portMAX_DELAY))
|
|
{
|
|
{
|
|
-
|
|
|
|
|
|
+#if 1
|
|
ESP_LOGI(LOG_TAG,"btn_flag[%d][%d][%d][%d][%d][%d],button_info = [%d]%s ",Machine_info.btn_dis_flag[0],\
|
|
ESP_LOGI(LOG_TAG,"btn_flag[%d][%d][%d][%d][%d][%d],button_info = [%d]%s ",Machine_info.btn_dis_flag[0],\
|
|
Machine_info.btn_dis_flag[1],Machine_info.btn_dis_flag[2],Machine_info.btn_dis_flag[3],Machine_info.btn_dis_flag[4],\
|
|
Machine_info.btn_dis_flag[1],Machine_info.btn_dis_flag[2],Machine_info.btn_dis_flag[3],Machine_info.btn_dis_flag[4],\
|
|
Machine_info.btn_dis_flag[5],button_info,Machine_info.power_status?"开机":"关机");
|
|
Machine_info.btn_dis_flag[5],button_info,Machine_info.power_status?"开机":"关机");
|
|
@@ -1543,7 +1187,7 @@ static void button_task(void* arg)
|
|
Machine_info.Duration_time,\
|
|
Machine_info.Duration_time,\
|
|
Machine_info.rssi,\
|
|
Machine_info.rssi,\
|
|
Machine_info.paired?"已配网":"未配网");
|
|
Machine_info.paired?"已配网":"未配网");
|
|
-
|
|
|
|
|
|
+#endif
|
|
if(button_info < 0x12) //左屏慕按键
|
|
if(button_info < 0x12) //左屏慕按键
|
|
{
|
|
{
|
|
if(Machine_info.btn_dis_flag[button_info-1] == false)
|
|
if(Machine_info.btn_dis_flag[button_info-1] == false)
|
|
@@ -1557,102 +1201,102 @@ static void button_task(void* arg)
|
|
|
|
|
|
}
|
|
}
|
|
Machine_info .current_button.button_info = button_info;
|
|
Machine_info .current_button.button_info = button_info;
|
|
- //判断当前的按键状态 设置为当前状态后 再次按键不处理
|
|
|
|
- printf("last btn = %d ,curr btn = %d\n",Machine_info.last_button.button_info , Machine_info.current_button.button_info);
|
|
|
|
- if(Machine_info.last_button.button_info != Machine_info.current_button.button_info)
|
|
|
|
- {
|
|
|
|
- if(Machine_info.paired == 1)
|
|
|
|
- {
|
|
|
|
- printf("paired add data to list chanl = 0x%02x\r\n",Machine_info.lora_new_channel);
|
|
|
|
- getRtcTime(&Machine_info); //获取当前时间
|
|
|
|
- //更新当前时间
|
|
|
|
- Machine_info.current_button.button_info = button_info;
|
|
|
|
- Machine_info.current_button.Year = Machine_info.year;
|
|
|
|
- Machine_info.current_button.Month = Machine_info.month;
|
|
|
|
- Machine_info.current_button.Day = Machine_info.day;
|
|
|
|
- Machine_info.current_button.Hour = Machine_info.hour;
|
|
|
|
- Machine_info.current_button.Minute = Machine_info.min;
|
|
|
|
- Machine_info.current_button.Second = Machine_info.sec;
|
|
|
|
-
|
|
|
|
- long long current_Duration_time = calculate_minutes_difference
|
|
|
|
- (
|
|
|
|
- Machine_info.last_button.Year,
|
|
|
|
- Machine_info.last_button.Month ,
|
|
|
|
- Machine_info.last_button.Day ,
|
|
|
|
- Machine_info.last_button.Hour ,
|
|
|
|
- Machine_info.last_button.Minute ,
|
|
|
|
- Machine_info.last_button.Second ,
|
|
|
|
-
|
|
|
|
- Machine_info.current_button.Year,
|
|
|
|
- Machine_info.current_button.Month ,
|
|
|
|
- Machine_info.current_button.Day ,
|
|
|
|
- Machine_info.current_button.Hour ,
|
|
|
|
- Machine_info.current_button.Minute ,
|
|
|
|
- Machine_info.current_button.Second
|
|
|
|
- );
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- Machine_info.Duration_time = current_Duration_time;//持续时长
|
|
|
|
-
|
|
|
|
- printf("Machine_info.Duration_time = %ld\r\n",Machine_info.Duration_time);
|
|
|
|
-
|
|
|
|
- reset_btn_last_time();
|
|
|
|
- #if 0
|
|
|
|
- printf("list before\r\n");
|
|
|
|
- printList(Send_list);
|
|
|
|
|
|
+ //判断当前的按键状态 设置为当前状态后 再次按键不处理
|
|
|
|
+ printf("last btn = %d ,curr btn = %d\n",Machine_info.last_button.button_info , Machine_info.current_button.button_info);
|
|
|
|
+ if(Machine_info.last_button.button_info != Machine_info.current_button.button_info)
|
|
|
|
+ {
|
|
|
|
+ if(Machine_info.paired == 1)
|
|
|
|
+ {
|
|
|
|
+ printf("paired add data to list chanl = 0x%02x\r\n",Machine_info.lora_new_channel);
|
|
|
|
+ getRtcTime(&Machine_info); //获取当前时间
|
|
|
|
+ //更新当前时间
|
|
|
|
+ Machine_info.current_button.button_info = button_info;
|
|
|
|
+ Machine_info.current_button.Year = Machine_info.year;
|
|
|
|
+ Machine_info.current_button.Month = Machine_info.month;
|
|
|
|
+ Machine_info.current_button.Day = Machine_info.day;
|
|
|
|
+ Machine_info.current_button.Hour = Machine_info.hour;
|
|
|
|
+ Machine_info.current_button.Minute = Machine_info.min;
|
|
|
|
+ Machine_info.current_button.Second = Machine_info.sec;
|
|
|
|
+
|
|
|
|
+ long long current_Duration_time = calculate_minutes_difference
|
|
|
|
+ (
|
|
|
|
+ Machine_info.last_button.Year,
|
|
|
|
+ Machine_info.last_button.Month ,
|
|
|
|
+ Machine_info.last_button.Day ,
|
|
|
|
+ Machine_info.last_button.Hour ,
|
|
|
|
+ Machine_info.last_button.Minute ,
|
|
|
|
+ Machine_info.last_button.Second ,
|
|
|
|
+
|
|
|
|
+ Machine_info.current_button.Year,
|
|
|
|
+ Machine_info.current_button.Month ,
|
|
|
|
+ Machine_info.current_button.Day ,
|
|
|
|
+ Machine_info.current_button.Hour ,
|
|
|
|
+ Machine_info.current_button.Minute ,
|
|
|
|
+ Machine_info.current_button.Second
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Machine_info.Duration_time = current_Duration_time;//持续时长
|
|
|
|
+
|
|
|
|
+ printf("Machine_info.Duration_time = %ld\r\n",Machine_info.Duration_time);
|
|
|
|
+
|
|
|
|
+ reset_btn_last_time();
|
|
|
|
+ #if 0
|
|
|
|
+ printf("list before\r\n");
|
|
|
|
+ printList(Send_list);
|
|
|
|
|
|
- if(Machine_info.Duration_time == 0)
|
|
|
|
- {
|
|
|
|
- deleteNode_head(Send_list);
|
|
|
|
- }
|
|
|
|
|
|
+ if(Machine_info.Duration_time == 0)
|
|
|
|
+ {
|
|
|
|
+ deleteNode_head(Send_list);
|
|
|
|
+ }
|
|
|
|
|
|
- printf("list after\r\n");
|
|
|
|
- printList(Send_list);
|
|
|
|
- #endif
|
|
|
|
|
|
+ printf("list after\r\n");
|
|
|
|
+ printList(Send_list);
|
|
|
|
+ #endif
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
- set_status_heights();
|
|
|
|
- Machine_info.Duration_time = 0;
|
|
|
|
|
|
+ set_status_heights();
|
|
|
|
+ Machine_info.Duration_time = 0;
|
|
|
|
|
|
- //更新上次的状态
|
|
|
|
- update_last_button_info(Machine_info.last_button.button_info);
|
|
|
|
- }else
|
|
|
|
- {
|
|
|
|
- // f_send_get_chart_data();
|
|
|
|
- printf("not add data to list\r\n");
|
|
|
|
- }
|
|
|
|
|
|
+ //更新上次的状态
|
|
|
|
+ update_last_button_info(Machine_info.last_button.button_info);
|
|
|
|
+ }else
|
|
|
|
+ {
|
|
|
|
+ printf("not add data to list\r\n");
|
|
|
|
+ }
|
|
|
|
|
|
- Machine_info.last_button.button_info = Machine_info.current_button.button_info;
|
|
|
|
- // Machine_info.left_state = button_info;
|
|
|
|
- Machine_info.left_state = Machine_info.current_button.button_info;
|
|
|
|
- ESP_LOGE(LOG_TAG,"----Machine_info.left_state = %d",Machine_info.left_state);
|
|
|
|
-#if 1
|
|
|
|
- if(xQueueSend(left_screen_queue,&Machine_info,portMAX_DELAY) != true)
|
|
|
|
- {
|
|
|
|
- ESP_LOGE(LOG_TAG,"queue:left_screen_queue");
|
|
|
|
- }
|
|
|
|
-#endif
|
|
|
|
- // Set duty to 50%
|
|
|
|
- ESP_ERROR_CHECK(ledc_set_duty(LEDC_MODE, LEDC_CHANNEL, LEDC_DUTY));
|
|
|
|
- // Update duty to apply the new value
|
|
|
|
- ESP_ERROR_CHECK(ledc_update_duty(LEDC_MODE, LEDC_CHANNEL));
|
|
|
|
- vTaskDelay(30 / portTICK_PERIOD_MS);
|
|
|
|
- ESP_ERROR_CHECK(ledc_set_duty(LEDC_MODE, LEDC_CHANNEL, 0));
|
|
|
|
- // Update duty to apply the new value
|
|
|
|
- ESP_ERROR_CHECK(ledc_update_duty(LEDC_MODE, LEDC_CHANNEL));
|
|
|
|
|
|
+ Machine_info.last_button.button_info = Machine_info.current_button.button_info;
|
|
|
|
+ // Machine_info.left_state = button_info;
|
|
|
|
+ Machine_info.left_state = Machine_info.current_button.button_info;
|
|
|
|
+ ESP_LOGE(LOG_TAG,"----Machine_info.left_state = %d",Machine_info.left_state);
|
|
|
|
+ #if 1
|
|
|
|
+ bool is_left = true;
|
|
|
|
+ if(xQueueSend(screen_queue,&is_left,portMAX_DELAY) != true)
|
|
|
|
+ {
|
|
|
|
+ ESP_LOGE(LOG_TAG,"queue:screen_queue");
|
|
|
|
+ }
|
|
|
|
+ #endif
|
|
|
|
+ // Set duty to 50%
|
|
|
|
+ ESP_ERROR_CHECK(ledc_set_duty(LEDC_MODE, LEDC_CHANNEL, LEDC_DUTY));
|
|
|
|
+ // Update duty to apply the new value
|
|
|
|
+ ESP_ERROR_CHECK(ledc_update_duty(LEDC_MODE, LEDC_CHANNEL));
|
|
|
|
+ vTaskDelay(30 / portTICK_PERIOD_MS);
|
|
|
|
+ ESP_ERROR_CHECK(ledc_set_duty(LEDC_MODE, LEDC_CHANNEL, 0));
|
|
|
|
+ // Update duty to apply the new value
|
|
|
|
+ ESP_ERROR_CHECK(ledc_update_duty(LEDC_MODE, LEDC_CHANNEL));
|
|
|
|
|
|
|
|
|
|
- //printList(Send_list);
|
|
|
|
- //printList(list_head);
|
|
|
|
- }
|
|
|
|
- else//和上个按键重复,唤醒原因为ulp唤醒,不进入休眠
|
|
|
|
- {
|
|
|
|
- printf("和上个按键重复,唤醒原因为ulp唤醒,不进入休眠\r\n");
|
|
|
|
- sleep_timer_start(100); //开始进入倒计时休眠
|
|
|
|
- }
|
|
|
|
|
|
+ //printList(Send_list);
|
|
|
|
+ //printList(list_head);
|
|
|
|
+ }
|
|
|
|
+ else//和上个按键重复,唤醒原因为ulp唤醒,不进入休眠
|
|
|
|
+ {
|
|
|
|
+ printf("和上个按键重复,唤醒原因为ulp唤醒,不进入休眠\r\n");
|
|
|
|
+ sleep_timer_start(100); //开始进入倒计时休眠
|
|
|
|
+ }
|
|
}else //右屏幕按键触发
|
|
}else //右屏幕按键触发
|
|
{
|
|
{
|
|
|
|
|
|
@@ -1744,9 +1388,10 @@ static void button_task(void* arg)
|
|
|
|
|
|
if(button_info == POWER_ON_INTO_DIS_RIGHT)
|
|
if(button_info == POWER_ON_INTO_DIS_RIGHT)
|
|
{
|
|
{
|
|
- if(xQueueSend(right_screen_queue,&Machine_info,portMAX_DELAY) != true)
|
|
|
|
|
|
+ is_left = false;
|
|
|
|
+ if(xQueueSend(screen_queue,&is_left,portMAX_DELAY) != true)
|
|
{
|
|
{
|
|
- ESP_LOGE(LOG_TAG,"queue:right_screen_queue");
|
|
|
|
|
|
+ ESP_LOGE(LOG_TAG,"queue:screen_queue");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|