111 lines
2.3 KiB
C
111 lines
2.3 KiB
C
/**
|
||
* @file ui_event_debug.c
|
||
* @brief 此文件中专门实现Debug过程中的事件的处理
|
||
*
|
||
* 仅仅Debug模式下运行
|
||
*
|
||
* @author wang xiang en
|
||
* @date 2025-04-19
|
||
* @version 版本号
|
||
* @copyright 版权声明((C)2025, YUWELL MEDTECH Co.ltd)
|
||
*/
|
||
#include "ui.h"
|
||
#include "driver/ledc.h"
|
||
#include "esp_err.h"
|
||
#include "esp_log.h"
|
||
|
||
#include "FluxWifi.h"
|
||
#include "FluxUart.h"
|
||
#include "FluxSD.h"
|
||
|
||
|
||
#include "FluxProtocol.h"
|
||
|
||
|
||
/* 选择是否使能Debug页面的操作 */
|
||
#define MODE_TEST 0
|
||
|
||
/**
|
||
* @brief 流量读取按键按下事件
|
||
*
|
||
* 流量计当前示数回传函数——Debug模式
|
||
*
|
||
* @param[in] e not used
|
||
*/
|
||
void on_buttonFluxRead_clicked(lv_event_t * e)
|
||
{
|
||
/*选择是否使用Debug中的操作*/
|
||
#if MODE_TEST
|
||
flux_frame.DATA[1] = (unsigned char)lv_spinbox_get_value(ui_pageFluxDebug_spinboxAddr);
|
||
flux_frame.DATA[3] = (unsigned char)lv_spinbox_get_value(ui_pageFluxDebug_spinboxNum);
|
||
|
||
/*测试模式可手动设置功能码*/
|
||
if (lv_dropdown_get_selected(ui_pageFluxDebug_dropdownFunctionCode) == 0)
|
||
{
|
||
flux_frame.FUNC = FLUX_FUNC_READ;
|
||
}else{
|
||
flux_frame.FUNC = FLUX_FUNC_SET;
|
||
}
|
||
|
||
ESP_ERROR_CHECK(ModbusRTU_Send_0306(ECHO_UART_PORT_NUM1,&flux_frame));
|
||
#endif
|
||
}
|
||
|
||
|
||
/**
|
||
* @brief 清空文本域事件
|
||
*
|
||
* 清空文本域
|
||
*
|
||
* @param[in] e not used
|
||
*/
|
||
void on_buttonClearTextarea_clicked(lv_event_t * e)
|
||
{
|
||
#if MODE_TEST
|
||
lv_textarea_set_text(ui_pageFluxDebug_textAreaContent, "");
|
||
#endif
|
||
}
|
||
|
||
/**
|
||
* @brief 获取当前北京时间事件
|
||
*
|
||
* 获取当前北京时间
|
||
*
|
||
* @param[in] e not used
|
||
*/
|
||
void on_buttonGetTime_clicked(lv_event_t * e)
|
||
{
|
||
|
||
#if MODE_TEST
|
||
/*获取当前北京时间*/
|
||
/*当WiFi开启时进行时间获取*/
|
||
|
||
char strftime_buf[64];
|
||
|
||
time_t now = 0;
|
||
struct tm timeinfo = {0};
|
||
|
||
int retry = 0;
|
||
|
||
while(timeinfo.tm_year < (2022 - 1900)) {
|
||
ESP_LOGI("SNTP","Waiting for system time to be set... (%d)", ++retry);
|
||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||
time(&now);
|
||
localtime_r(&now, &timeinfo);
|
||
|
||
strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);
|
||
|
||
ESP_LOGI("SNTP","The current date/time in China is: %s", strftime_buf);
|
||
|
||
if (retry == 2)
|
||
{
|
||
break;
|
||
}
|
||
|
||
}
|
||
strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);
|
||
|
||
ESP_LOGI("SNTP","The current date/time in China is: %s", strftime_buf);
|
||
#endif
|
||
|
||
} |