Index: firmware/App/Controllers/BloodLeak.c =================================================================== diff -u -r242ad36c7a1ec4ee5012c9f009899f9e0bd87628 -rd089b3bd30b565fb264817b6df70e083d8a9ec46 --- firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision 242ad36c7a1ec4ee5012c9f009899f9e0bd87628) +++ firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision d089b3bd30b565fb264817b6df70e083d8a9ec46) @@ -266,13 +266,6 @@ getNVRecord2Driver( GET_CAL_BLOOD_LEAK_SENSOR, (U08*)&bloodLeakCalRecord, length, 0, ALARM_ID_HD_BLOOD_LEAK_INVALID_CAL_RECORD ); } - if ( bloodLeakState >= BLOOD_LEAK_INIT_STATE ) - { - enqueueEmbModeCmd( I_EMB_MODE_CMD ); - enqueueEmbModeCmd( V_EMB_MODE_CMD ); - enqueueEmbModeCmd( D_EMB_MODE_CMD ); - } - switch( bloodLeakState ) { case BLOOD_LEAK_WAIT_FOR_POST_STATE: @@ -1210,6 +1203,15 @@ broadcastData( MSG_ID_HD_BLOOD_LEAK_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( BLOOD_LEAK_DATA_T ) ); bloodLeakDataPublicationTimerCounter = 0; + + if ( ( bloodLeakState >= BLOOD_LEAK_INIT_STATE ) && ( FALSE == bloodLeakEmbModeHasZeroBeenRqustd ) ) + { + // Once the previous data was broadcast, and the system is not in init and blood leak zero request has not been set, enqueue the data + // to be queried and read again. The data is queried here to make sure there is a second of time in between the queries for I, V, and D + enqueueEmbModeCmd( I_EMB_MODE_CMD ); + enqueueEmbModeCmd( V_EMB_MODE_CMD ); + enqueueEmbModeCmd( D_EMB_MODE_CMD ); + } } }