失败的尝试

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",
"esp_lcd_panel_vendor.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";
/* 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 */
static int Bat_Adc_Value = 0;
static adc_oneshot_unit_handle_t adc1_handle;

View File

@ -85,42 +85,23 @@ void on_buttonReadSDCard_clicked(lv_event_t * e)
/************************************ 测试流程函数 ******************************************* */
/*pageHome 开始测试按键按下回调函数*/
int32_t timeS = 0;
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;
flux_frame.DATA[1] = 0x02;
flux_frame.DATA[2] = bytes[3];
flux_frame.DATA[3] = bytes[2];
/*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));
#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)
{

View File

@ -1,7 +1,8 @@
#include <stdio.h>
#include "FluxUart.h"
#include "ui.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
static const char *TAG = "UART TEST";
@ -15,6 +16,9 @@ struct ModbusRTU_Frame flux_frame_start;
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);\
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)
{
@ -324,4 +365,5 @@ esp_err_t RefreshResult(void)
}
return ESP_OK;
}
}

View File

@ -118,6 +118,11 @@ void uart1_echoTask(void* arg);
/* UART2 response task */
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 */
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%");
vTaskDelay(300/portTICK_PERIOD_MS);
/*创建测试任务*/
xTaskCreate(test_task,"Test_task", ECHO_TASK_STACK_SIZE, NULL, 10, NULL);
#if 0/*暂时不支持呼吸模拟器*/
/*创建UART2响应任务*/
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_UNICORE is not set
CONFIG_FREERTOS_HZ=100
CONFIG_FREERTOS_HZ=1000
# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set
# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y