diff --git a/components/FluxProtocol/FluxProtocol.c b/components/FluxProtocol/FluxProtocol.c index 020dba7..bd443d3 100644 --- a/components/FluxProtocol/FluxProtocol.c +++ b/components/FluxProtocol/FluxProtocol.c @@ -46,12 +46,20 @@ struct FluxProtocol fluxProtocol; void nom_test_task(void* arg) { float time = 0; + uint16_t index = lv_dropdown_get_selected(ui_pageSetting_dropdownDeviceType); while (1) { + // if((index == YU_Lite8)&&(lv_spinbox_get_value(ui_pageHome_spinboxStage)!=8)) + // { + // lv_spinbox_set_value(ui_pageHome_spinboxRate,15); + // } + /* 开始测试前 下发积分时间,确保测试时间正确 */ comulate_time_set(); time = (float)lv_spinbox_get_value(ui_pageFluxRead_spinboxTime); + + flux_test_time_set(time); lv_label_set_text(ui_pageHome_labelStartTest,"Cancel Test Nom"); diff --git a/components/FluxProtocol/FluxProtocol.h b/components/FluxProtocol/FluxProtocol.h index 3ea70fe..f75d538 100644 --- a/components/FluxProtocol/FluxProtocol.h +++ b/components/FluxProtocol/FluxProtocol.h @@ -121,7 +121,10 @@ extern enum Bs_test_Rate currentTestRate; /* 导出三种流量计体积数据 */ extern float Spirit3_Volume[4]; extern float Spirit6_Volume[6]; -extern float YULite8_Volume[6]; +extern float YULite8_Volume[8]; + +extern float YULite8_UpperLimit[8]; +extern float YULite8_LowerLimit[8]; /* 导出呼吸模拟器控制地址 */ extern uint32_t bs_addr_all[6]; diff --git a/components/FluxProtocol/FluxProtocol_data.c b/components/FluxProtocol/FluxProtocol_data.c index c809a97..d27824e 100644 --- a/components/FluxProtocol/FluxProtocol_data.c +++ b/components/FluxProtocol/FluxProtocol_data.c @@ -24,7 +24,11 @@ char *device_name[3] = { /* 定义用于存储nominalVolume的数组 单位ml */ float Spirit3_Volume[4] = { 210,420,630,750}; float Spirit6_Volume[6] = { 210,420,630,840,1050,1200}; -float YULite8_Volume[6] = { 210,420,630,750,870,990,1110,990}; +float YULite8_Volume[8] = { 210,420,630,750,870,990,1110,990}; + +/* 定义用于存储YU-Lite8上下限的数组 */ +float YULite8_UpperLimit[8] = { 22,36,52.5,62.5,72.5,82.5,92.5,24.5}; +float YULite8_LowerLimit[8] = { 6,20,31.5,37.5,43.5,49.5,55.5,8.5}; /* 定义用于存储呼吸模拟器频率控制的Modbus寄存器地址 */ uint32_t bs_addr_all[6] = { BS_ADDR_15BPM,BS_ADDR_20BPM,BS_ADDR_25BPM,BS_ADDR_30BPM,BS_ADDR_35BPM,BS_ADDR_40BPM}; diff --git a/components/FluxSD/FluxSD.h b/components/FluxSD/FluxSD.h index 4de27bf..e2b87c3 100644 --- a/components/FluxSD/FluxSD.h +++ b/components/FluxSD/FluxSD.h @@ -55,7 +55,7 @@ extern "C" { #define NOM_RESULT_FILE_HEADER "timestamp,timeStr,is_nom,device type,stage,rate,volume\n" /* 配置是否选择记录数据到SD卡内 */ -#define LOG_RECORD_ENABLE (1) +#define LOG_RECORD_ENABLE (0) /* SD卡读写引脚编号 */ #define CONFIG_EXAMPLE_PIN_CLK (14) diff --git a/components/FluxUI/ui_event_homePage.c b/components/FluxUI/ui_event_homePage.c index 12988d4..c4c9c69 100644 --- a/components/FluxUI/ui_event_homePage.c +++ b/components/FluxUI/ui_event_homePage.c @@ -164,13 +164,16 @@ void comulate_time_set(void) lv_spinbox_set_value(ui_pageFluxRead_spinboxTime,20); break; case 35: - /*呼吸频率为35BPM时,积分时间设定为16秒*/ + /*呼吸频率为35BPM时,积分时间设定为17秒*/ lv_spinbox_set_value(ui_pageFluxRead_spinboxTime,18); break; case 40: /*呼吸频率为40BPM时,积分时间设定为15秒*/ lv_spinbox_set_value(ui_pageFluxRead_spinboxTime,15); break; + case 60: + lv_spinbox_set_value(ui_pageFluxRead_spinboxTime,10); + break; default: break; } @@ -295,6 +298,16 @@ void on_spinboxStage_valueChanged(lv_event_t * e) int32_t value = lv_spinbox_get_value(e->target); lv_label_set_text_fmt(ui_pageHome_labelResultStage,"%ld",value); + if(lv_spinbox_get_value(ui_pageHome_spinboxStage) == 8) + { + lv_spinbox_set_value(ui_pageHome_spinboxRate,60); + } + if ((lv_dropdown_get_selected(ui_pageSetting_dropdownDeviceType) == YU_Lite8)&&(lv_spinbox_get_value(ui_pageHome_spinboxStage)<=7)) + { + lv_spinbox_set_value(ui_pageHome_spinboxRate,15); + } + + standard_volume_refresh(); /* 更新当前挡位数据 */ @@ -336,14 +349,30 @@ static void standard_volume_refresh(void) /*判定当前测试设备为YU-Lite-8*/ fluxProtocol.nominalVolumeStage = YULite8_Volume[fluxProtocol.currentStage-1]; } - - float Volume_nominal = fluxProtocol.nominalVolumeStage /fluxProtocol.currentBPM*1.0; - float VolumeMax = Volume_nominal*1.15; - float VolumeMin = Volume_nominal*0.85; - lv_label_set_text_fmt(ui_pageHome_labelNominalVolume,"%.2f",Volume_nominal); - lv_label_set_text_fmt(ui_pageHome_labelNominalVolumeMax,"%.2f",VolumeMax); - lv_label_set_text_fmt(ui_pageHome_labelNominalVolumeMin,"%.2f",VolumeMin); + if (fluxProtocol.currentDevice == YU_Lite8) + { + float Volume_nominal = fluxProtocol.nominalVolumeStage /fluxProtocol.currentBPM*1.0; + float VolumeMax = YULite8_UpperLimit[fluxProtocol.currentStage-1]; + float VolumeMin = YULite8_LowerLimit[fluxProtocol.currentStage-1]; + + lv_label_set_text_fmt(ui_pageHome_labelNominalVolume,"%.2f",Volume_nominal); + lv_label_set_text_fmt(ui_pageHome_labelNominalVolumeMax,"%.2f",VolumeMax); + lv_label_set_text_fmt(ui_pageHome_labelNominalVolumeMin,"%.2f",VolumeMin); + + }else{ + + float Volume_nominal = fluxProtocol.nominalVolumeStage /fluxProtocol.currentBPM*1.0; + float VolumeMax = Volume_nominal*1.15; + float VolumeMin = Volume_nominal*0.85; + + lv_label_set_text_fmt(ui_pageHome_labelNominalVolume,"%.2f",Volume_nominal); + lv_label_set_text_fmt(ui_pageHome_labelNominalVolumeMax,"%.2f",VolumeMax); + lv_label_set_text_fmt(ui_pageHome_labelNominalVolumeMin,"%.2f",VolumeMin); + + } + + /* 更新BS界面中各频率值 */ diff --git a/components/FluxUI/ui_events.c b/components/FluxUI/ui_events.c index 372370a..481ad97 100644 --- a/components/FluxUI/ui_events.c +++ b/components/FluxUI/ui_events.c @@ -55,9 +55,18 @@ void on_dropdownDeviceType_valueChanged(lv_event_t * e) if (index == Spirit3) { lv_spinbox_set_range(ui_pageHome_spinboxStage,1,4); - }else{ + lv_spinbox_set_range(ui_pageHome_spinboxRate,15,40); + }else if(index == Spirit6) + { lv_spinbox_set_range(ui_pageHome_spinboxStage,1,6); + lv_spinbox_set_range(ui_pageHome_spinboxRate,15,40); + }else if (index == YU_Lite8) + { + lv_spinbox_set_range(ui_pageHome_spinboxStage,1,8); + lv_spinbox_set_value(ui_pageHome_spinboxRate,15); + lv_spinbox_set_range(ui_pageHome_spinboxRate,15,60); } + #if LOG_RECORD_ENABLE WRITE_LOG_TO_SD("常规测试设备类型修改成功");