diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index 89aeea3e6..0a2df3e9a 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -76,8 +76,8 @@ int16_t mmu_version = -1; int16_t mmu_buildnr = -1; -uint32_t mmu_last_request = 0; -uint32_t mmu_last_response = 0; +ShortTimer mmu_last_request; +ShortTimer mmu_last_response; MmuCmd mmu_last_cmd = MmuCmd::None; uint16_t mmu_power_failures = 0; @@ -113,7 +113,7 @@ int mmu_puts_P(const char* str) { mmu_clr_rx_buf(); //clear rx buffer int r = fputs_P(str, uart2io); //send command - mmu_last_request = _millis(); + mmu_last_request.start(); return r; } @@ -125,7 +125,7 @@ int mmu_printf_P(const char* format, ...) mmu_clr_rx_buf(); //clear rx buffer int r = vfprintf_P(uart2io, format, args); //send command va_end(args); - mmu_last_request = _millis(); + mmu_last_request.start(); return r; } @@ -133,7 +133,7 @@ int mmu_printf_P(const char* format, ...) int8_t mmu_rx_ok(void) { int8_t res = uart2_rx_str_P(PSTR("ok\n")); - if (res == 1) mmu_last_response = _millis(); + if (res == 1) mmu_last_response.start(); return res; } @@ -141,7 +141,7 @@ int8_t mmu_rx_ok(void) int8_t mmu_rx_start(void) { int8_t res = uart2_rx_str_P(PSTR("start\n")); - if (res == 1) mmu_last_response = _millis(); + if (res == 1) mmu_last_response.start(); return res; } @@ -350,7 +350,7 @@ void mmu_loop(void) mmu_printf_P(PSTR("M%d\n"), SilentModeMenu_MMU); mmu_state = S::SwitchMode; } - else if ((mmu_last_response + 300) < _millis()) //request every 300ms + else if (mmu_last_response.expired(300)) //request every 300ms { #ifndef IR_SENSOR if(check_for_ir_sensor()) ir_sensor_detected = true; @@ -398,7 +398,7 @@ void mmu_loop(void) if (mmu_cmd == MmuCmd::None) mmu_ready = true; } - else if ((mmu_last_request + MMU_P0_TIMEOUT) < _millis()) + else if (mmu_last_request.expired(MMU_P0_TIMEOUT)) { //resend request after timeout (30s) mmu_state = S::Idle; } @@ -424,7 +424,7 @@ void mmu_loop(void) mmu_ready = true; mmu_state = S::Idle; } - else if ((mmu_last_request + MMU_CMD_TIMEOUT) < _millis()) + else if (mmu_last_request.expired(MMU_CMD_TIMEOUT)) { //resend request after timeout (5 min) if (mmu_last_cmd != MmuCmd::None) { @@ -467,7 +467,7 @@ void mmu_loop(void) mmu_ready = true; mmu_state = S::Idle; } - else if ((mmu_last_request + MMU_CMD_TIMEOUT) < _millis()) + else if (mmu_last_request.expired(MMU_CMD_TIMEOUT)) { //timeout 45 s mmu_state = S::Idle; } @@ -479,7 +479,7 @@ void mmu_loop(void) eeprom_update_byte((uint8_t*)EEPROM_MMU_STEALTH, SilentModeMenu_MMU); mmu_state = S::Idle; } - else if ((mmu_last_request + MMU_CMD_TIMEOUT) < _millis()) + else if (mmu_last_request.expired(MMU_CMD_TIMEOUT)) { //timeout 45 s mmu_state = S::Idle; }