this should be removed. We need to wait for UI to send the request. Here you are manually sending the request where the timer does not countdown to 0 to send it.
I think these remaining 4 else ifs need to have another && condition that your service is in idle state so that we don't change back into one of these 4 states while a bolus is in progress.
I don't see these override message handler functions being added to table in Messages.c. And I don't see new Dialin message IDs added to enum in MsgDefs.h.
How about instead of taking U32 minValue and U32 maxValue as input, we take SYS_CONFIG_TREATMENT_PARAM_T minValue and SYS_CONFIG_TREATMENT_PARAM_T maxValue as input. Then you will not need all these repetitive functions: isSystolicBpLowAlarmLimitValid isSystolicBpHighAlarmLimitValid isHeartRateLowAlarmLimitValid isHeartRateHighAlarmLimitValid
Similarly, you can create another function with input as TREATMENT_PARAM_T minValue and TREATMENT_PARAM_T maxValue for isVitalsMeasurementIntervalValid()
For rejection text when/if we do test with translations I do not think we should hard code the rejection in English. We can read the Rejections.conf and store the data in some sort of map to get the correct rejection string... In the config repository configurationjs > Alarms > Rejections.conf is the file we can read and store for later use for all other test cases as well.