event事件不再卡滞的版本

This commit is contained in:
jarvis 2025-03-25 15:42:11 +08:00
parent b82ade17b0
commit 8fc4a01ff4
2 changed files with 64 additions and 9 deletions

View File

@ -18,8 +18,6 @@
#include "FluxProtocol.h" #include "FluxProtocol.h"
#define LOWERST_LIGHT_LEVEL (7222) #define LOWERST_LIGHT_LEVEL (7222)
/*更新当前测试标准*/ /*更新当前测试标准*/
@ -27,6 +25,20 @@ static void standardVolumeRefresh(void);
/*根据呼吸频率调整积分时间*/ /*根据呼吸频率调整积分时间*/
static void comulateTimeSend(void); static void comulateTimeSend(void);
/*创建定时器*/
static void comulateResultRead(lv_timer_t * timer)
{
/*下发数据获取指令*/
flux_frame.DATA[1] = 0;
flux_frame.DATA[3] = 120;
flux_frame.FUNC = 0x03;
/*下发问询120个参数*/
ESP_ERROR_CHECK(ModbusRTU_Send_0306(ECHO_UART_PORT_NUM1,&flux_frame));
lv_label_set_text(ui_pageHome_labelStartTest,"Test Complete!");
}
/*亮度调节回调函数*/ /*亮度调节回调函数*/
@ -90,9 +102,9 @@ void on_buttonStartTest_clicked(lv_event_t * e)
{ {
/*下发积分时间*/ /*下发积分时间*/
//comulateTimeSend();
#if 0 #if 0
/*使用0306报文格式*/
comulateTimeSend();
uint8_t bytes[4]; uint8_t bytes[4];
float time = (float)lv_spinbox_get_value(ui_pageFluxRead_spinboxTime); float time = (float)lv_spinbox_get_value(ui_pageFluxRead_spinboxTime);
memcpy(bytes, &time, 4); memcpy(bytes, &time, 4);
@ -107,20 +119,44 @@ void on_buttonStartTest_clicked(lv_event_t * e)
flux_frame.DATA[3] = bytes[2]; flux_frame.DATA[3] = bytes[2];
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 #endif
/*基于定时器进行任务调用*/
lv_timer_t * comulateResultReadTimer;
comulateResultReadTimer = lv_timer_create(comulateResultRead, 500, NULL);
lv_timer_set_repeat_count(comulateResultReadTimer, 1);
timeS = lv_spinbox_get_value(ui_pageFluxRead_spinboxTime); timeS = lv_spinbox_get_value(ui_pageFluxRead_spinboxTime);
lv_timer_set_period(comulateResultReadTimer, timeS*1000+500);
/*下发启动测试指令*/ /*下发启动测试指令*/
FLUX_TEST_START; flux_frame_start.ADDR = FLUX_ADDR;
flux_frame_start.FUNC = FLUX_FUNC_SET_SINGLE;
flux_frame_start.DATA[0] = 0x00;
flux_frame_start.DATA[1] = 0x01;
flux_frame_start.DATA[2] = 0x00;
flux_frame_start.DATA[3] = 0x01;
ESP_ERROR_CHECK(ModbusRTU_Send_0306(ECHO_UART_PORT_NUM1,&flux_frame_start));
lv_label_set_text(ui_pageHome_labelStartTest,"Testing..."); lv_label_set_text(ui_pageHome_labelStartTest,"Testing...");
vTaskDelay(timeS*1000/portTICK_PERIOD_MS); //vTaskDelay(timeS*1000/portTICK_PERIOD_MS);
lv_timer_enable(comulateResultReadTimer);
#if 0
/*下发数据获取指令*/
flux_frame.DATA[1] = 0;
flux_frame.DATA[3] = 120;
flux_frame.FUNC = FLUX_FUNC_READ;
lv_event_send(ui_pageFluxRead_buttonReadFlux,LV_EVENT_CLICKED,NULL); /*下发问询120个参数*/
ESP_ERROR_CHECK(ModbusRTU_Send_0306(ECHO_UART_PORT_NUM1,&flux_frame));
//lv_event_send(ui_pageFluxRead_buttonReadFlux,LV_EVENT_CLICKED,NULL);
lv_label_set_text(ui_pageHome_labelStartTest,"Test Complete!"); lv_label_set_text(ui_pageHome_labelStartTest,"Test Complete!");
#endif
} }
@ -162,6 +198,23 @@ void on_spinboxRate_valueChanged(lv_event_t * e)
/*下发测试时间*/ /*下发测试时间*/
comulateTimeSend(); comulateTimeSend();
#if 1
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];
ESP_ERROR_CHECK(ModbusRTU_Send_0306(ECHO_UART_PORT_NUM1,&flux_frame));
#endif
} }
@ -267,7 +320,7 @@ void on_spinboxTime_valueChanged(lv_event_t * e)
flux_frame2Reg.DATA[3] = bytes[0]; flux_frame2Reg.DATA[3] = bytes[0];
ESP_ERROR_CHECK(ModbusRTU_Send_0x10(ECHO_UART_PORT_NUM1,&flux_frame2Reg)); ESP_ERROR_CHECK(ModbusRTU_Send_0x10(ECHO_UART_PORT_NUM1,&flux_frame2Reg));
#elif 1 #elif 0
/*使用0306报文格式*/ /*使用0306报文格式*/
uint8_t bytes[4]; uint8_t bytes[4];
float time = (float)lv_spinbox_get_value(ui_pageFluxRead_spinboxTime); float time = (float)lv_spinbox_get_value(ui_pageFluxRead_spinboxTime);

View File

@ -258,7 +258,7 @@ esp_err_t ModbusRTU_Send_0306(uart_port_t uart_num, struct ModbusRTU_Frame *fram
return ESP_FAIL; return ESP_FAIL;
} }
#if 0 #if 1
sprintf(text,"%02X %02X %02X %02X %02X %02X %02X %02X \n",frame->ADDR,frame->FUNC,frame->DATA[0],frame->DATA[1],frame->DATA[2],frame->DATA[3],frame->CRC[0],frame->CRC[1]); sprintf(text,"%02X %02X %02X %02X %02X %02X %02X %02X \n",frame->ADDR,frame->FUNC,frame->DATA[0],frame->DATA[1],frame->DATA[2],frame->DATA[3],frame->CRC[0],frame->CRC[1]);
lv_textarea_add_char(ui_pageDebug_textAreaContent,'\n'); lv_textarea_add_char(ui_pageDebug_textAreaContent,'\n');
@ -321,6 +321,8 @@ esp_err_t RefreshResult(void)
}else{ }else{
RESULT_RIGHT; RESULT_RIGHT;
lv_label_set_text(ui_pageHome_labelResultCompare,"Pass!");
} }
return ESP_OK; return ESP_OK;