失败的尝试

This commit is contained in:
jarvis 2025-03-25 14:26:24 +08:00
parent b82ade17b0
commit 4404c5faf8
8 changed files with 65 additions and 55 deletions

View File

@ -35,6 +35,7 @@
"fluxdisplayport.h": "c", "fluxdisplayport.h": "c",
"esp_lcd_panel_vendor.h": "c", "esp_lcd_panel_vendor.h": "c",
"float.h": "c", "float.h": "c",
"esp_log.h": "c" "esp_log.h": "c",
"fluxpower.h": "c"
} }
} }

View File

@ -5,15 +5,6 @@
static const char *TAG = "POWER_IO"; static const char *TAG = "POWER_IO";
/* Changes in power level cause changes in UI widget parameters */
// extern lv_obj_t * ui_pageBattery_barBattery;
// extern lv_obj_t * ui_pageBattery_spinboxBattery;
// extern lv_obj_t * ui_pageBattery_labelCurrentVoltage;
// extern lv_obj_t * ui_pageBattery_labelCurrentVolume;
// extern lv_obj_t * ui_pageHome_sliderBattery;
// extern lv_obj_t * ui_pageHome_labelBattery;
/* Power management task with no return value */ /* Power management task with no return value */
static int Bat_Adc_Value = 0; static int Bat_Adc_Value = 0;
static adc_oneshot_unit_handle_t adc1_handle; static adc_oneshot_unit_handle_t adc1_handle;

View File

@ -85,42 +85,23 @@ void on_buttonReadSDCard_clicked(lv_event_t * e)
/************************************ 测试流程函数 ******************************************* */ /************************************ 测试流程函数 ******************************************* */
/*pageHome 开始测试按键按下回调函数*/ /*pageHome 开始测试按键按下回调函数*/
int32_t timeS = 0;
void on_buttonStartTest_clicked(lv_event_t * e) void on_buttonStartTest_clicked(lv_event_t * e)
{ {
xEventGroupSetBitsFromISR(start_state_event_group,START_TEST_EVENT_BIT,pdFALSE);
//xEventGroupSetBits(start_state_event_group,START_TEST_EVENT_BIT);
/*下发积分时间*/ }
//comulateTimeSend();
#if 0
/*使用0306报文格式*/
uint8_t bytes[4];
float time = (float)lv_spinbox_get_value(ui_pageFluxRead_spinboxTime);
memcpy(bytes, &time, 4);
/*下发命令*/
flux_frame.ADDR = FLUX_ADDR;
flux_frame.FUNC = FLUX_FUNC_SET_SINGLE;
flux_frame.DATA[0] = 0x00; /*pageFluxRead 获取当前流量数据*/
flux_frame.DATA[1] = 0x02; void on_buttonReadFlux_clicked(lv_event_t * e)
flux_frame.DATA[2] = bytes[3]; {
flux_frame.DATA[3] = bytes[2]; flux_frame.DATA[1] = 0;
flux_frame.DATA[3] = 120;
flux_frame.FUNC = FLUX_FUNC_READ;
/*下发问询120个参数*/
ESP_ERROR_CHECK(ModbusRTU_Send_0306(ECHO_UART_PORT_NUM1,&flux_frame)); ESP_ERROR_CHECK(ModbusRTU_Send_0306(ECHO_UART_PORT_NUM1,&flux_frame));
#endif
timeS = lv_spinbox_get_value(ui_pageFluxRead_spinboxTime);
/*下发启动测试指令*/
FLUX_TEST_START;
lv_label_set_text(ui_pageHome_labelStartTest,"Testing...");
vTaskDelay(timeS*1000/portTICK_PERIOD_MS);
lv_event_send(ui_pageFluxRead_buttonReadFlux,LV_EVENT_CLICKED,NULL);
lv_label_set_text(ui_pageHome_labelStartTest,"Test Complete!");
} }
@ -203,19 +184,6 @@ static void standardVolumeRefresh(void)
} }
/*pageFluxRead 获取当前流量数据*/
void on_buttonReadFlux_clicked(lv_event_t * e)
{
flux_frame.DATA[1] = 0;
flux_frame.DATA[3] = 120;
flux_frame.FUNC = FLUX_FUNC_READ;
/*下发问询120个参数*/
ESP_ERROR_CHECK(ModbusRTU_Send_0306(ECHO_UART_PORT_NUM1,&flux_frame));
}
/*更新测试结果 —— 功能已屏蔽*/ /*更新测试结果 —— 功能已屏蔽*/
void on_labelTestVolume_valueChanged(lv_event_t * e) void on_labelTestVolume_valueChanged(lv_event_t * e)
{ {

View File

@ -1,7 +1,8 @@
#include <stdio.h> #include <stdio.h>
#include "FluxUart.h" #include "FluxUart.h"
#include "ui.h" #include "ui.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
static const char *TAG = "UART TEST"; static const char *TAG = "UART TEST";
@ -15,6 +16,9 @@ struct ModbusRTU_Frame flux_frame_start;
struct ModbusRTU_Frame2Reg flux_frame2Reg; struct ModbusRTU_Frame2Reg flux_frame2Reg;
/*创建用于记录开始测量事件的事件组*/
EventGroupHandle_t start_state_event_group;
#define RESULT_RIGHT lv_obj_set_style_bg_color(ui_pageHome_panelTestResult,lv_color_hex(0x00FF00),LV_PART_MAIN);\ #define RESULT_RIGHT lv_obj_set_style_bg_color(ui_pageHome_panelTestResult,lv_color_hex(0x00FF00),LV_PART_MAIN);\
lv_label_set_text(ui_pageHome_labelTestResult,"V"); lv_label_set_text(ui_pageHome_labelTestResult,"V");
@ -201,6 +205,43 @@ void uart1_echoTask(void* arg)
} }
/*测试任务*/
void test_task(void *arg)
{
start_state_event_group = xEventGroupCreate();
/*事件初始化*/
xEventGroupClearBits(start_state_event_group,START_TEST_EVENT_BIT);
int32_t timeS = 0;
while (1)
{
vTaskDelay(1000 / portTICK_PERIOD_MS);
if (xEventGroupGetBits(start_state_event_group)&START_TEST_EVENT_BIT)
{
/*开始测试*/
timeS = lv_spinbox_get_value(ui_pageFluxRead_spinboxTime);
/*下发启动测试指令*/
FLUX_TEST_START;
lv_label_set_text(ui_pageHome_labelStartTest,"Testing...");
vTaskDelay(timeS*1000/portTICK_PERIOD_MS);
lv_event_send(ui_pageFluxRead_buttonReadFlux,LV_EVENT_CLICKED,NULL);
lv_label_set_text(ui_pageHome_labelStartTest,"Test Complete!");
/*测试完毕后清空事件*/
xEventGroupClearBits(start_state_event_group,START_TEST_EVENT_BIT);
}
}
}
/*呼吸模拟器预留接口函数*/ /*呼吸模拟器预留接口函数*/
void uart2_echoTask(void* arg) void uart2_echoTask(void* arg)
{ {
@ -324,4 +365,5 @@ esp_err_t RefreshResult(void)
} }
return ESP_OK; return ESP_OK;
} }

View File

@ -118,6 +118,11 @@ void uart1_echoTask(void* arg);
/* UART2 response task */ /* UART2 response task */
void uart2_echoTask(void* arg); void uart2_echoTask(void* arg);
/*测试任务*/
void test_task(void *arg);
extern EventGroupHandle_t start_state_event_group;
#define START_TEST_EVENT_BIT BIT0
/* CRC16 checksum */ /* CRC16 checksum */
unsigned short CRC16(unsigned char* pchMsg, unsigned short wDataLen); unsigned short CRC16(unsigned char* pchMsg, unsigned short wDataLen);

View File

@ -65,6 +65,9 @@ extern "C" void app_main(void)
lv_label_set_text(ui_pageWelCome_labelStartInfo,"serial port task 90%"); lv_label_set_text(ui_pageWelCome_labelStartInfo,"serial port task 90%");
vTaskDelay(300/portTICK_PERIOD_MS); vTaskDelay(300/portTICK_PERIOD_MS);
/*创建测试任务*/
xTaskCreate(test_task,"Test_task", ECHO_TASK_STACK_SIZE, NULL, 10, NULL);
#if 0/*暂时不支持呼吸模拟器*/ #if 0/*暂时不支持呼吸模拟器*/
/*创建UART2响应任务*/ /*创建UART2响应任务*/
xTaskCreate(uart2_echoTask, "uart2_echo_task", ECHO_TASK_STACK_SIZE, NULL, 10, NULL); xTaskCreate(uart2_echoTask, "uart2_echo_task", ECHO_TASK_STACK_SIZE, NULL, 10, NULL);

View File

@ -1326,7 +1326,7 @@ CONFIG_FATFS_LINK_LOCK=y
# #
# CONFIG_FREERTOS_SMP is not set # CONFIG_FREERTOS_SMP is not set
# CONFIG_FREERTOS_UNICORE is not set # CONFIG_FREERTOS_UNICORE is not set
CONFIG_FREERTOS_HZ=100 CONFIG_FREERTOS_HZ=1000
# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set
# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y