compute sps/volume on load

This commit is contained in:
leo 2023-09-21 17:21:01 +02:00
parent 8a099f5c21
commit e017cb8a9d
Signed by: leo
GPG Key ID: 0DD993BFB2B307DB
2 changed files with 21 additions and 1 deletions

View File

@ -81,6 +81,26 @@ void load_units(pse_unit* units, pse_syringe* syringes, pse_stepper_conf* steppe
} }
f_close(&saveFile); f_close(&saveFile);
// compute prescalers/period for each units
for(int i = 0; i < unit_num; i++){
pse_unit* c_pse_unit = &units[i];
// update stepper pwm generation
pse_stepper_planer_compute_sps(c_pse_unit);
// compute volume delivered per steps
pse_unit_compute_volume_per_step(c_pse_unit);
// set limit if volume defined
if(c_pse_unit->set_volume != 0){
if(c_pse_unit->nL_per_step == 0) break; // TODO: alert popup / better resolution
if(c_pse_unit->flow == 0) break;
c_pse_unit->stepper_status->stop_at_limit = 1;
c_pse_unit->stepper_status->stop_steps = (uint64_t)1000 * c_pse_unit->set_volume / c_pse_unit->nL_per_step; }
else
c_pse_unit->stepper_status->stop_at_limit = 0;
}
} }
void load_units_short(pse_unit* units, uint8_t unit_num, uint16_t ws_ind){ void load_units_short(pse_unit* units, uint8_t unit_num, uint16_t ws_ind){

View File

@ -119,7 +119,7 @@ static void update_readouts_widgets(){
for(int i = 0; i < units_num; i++){ for(int i = 0; i < units_num; i++){
pse_unit* pse_unit = &units[i]; pse_unit* pse_unit = &units[i];
lv_label_set_text_fmt(pse_unit->home_display->flow, "%u.%03u\nmL/mn", pse_unit->flow / 1000, pse_unit->flow % 1000); lv_label_set_text_fmt(pse_unit->home_display->flow, "%u.%03u\nmL/mn", pse_unit->flow / 1000, pse_unit->flow % 1000);
// lv_label_set_text_fmt(pse_unit->home_display->volume, "%lu.%lu\nmL", pse_unit->volume / 1000, pse_unit->volume % 1000); volume_readout_update(NULL);
lv_obj_t* enabled = pse_unit->home_display->enabled; lv_obj_t* enabled = pse_unit->home_display->enabled;
lv_obj_t* enabled_label = lv_obj_get_child(enabled, 0); lv_obj_t* enabled_label = lv_obj_get_child(enabled, 0);