mirror of
https://github.com/okalachev/flix.git
synced 2025-07-28 20:08:53 +00:00
Improve pause function work
Fix disconnecting from qgc while pausing in the simulation. Consider total delay time in micros() in simulation to increase t while delaying. Simplify and get rid of ARDUINO macro check.
This commit is contained in:
parent
fd4bcbeb89
commit
85afe405cb
@ -53,7 +53,6 @@ void print(const char* format, ...) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void pause(float duration) {
|
void pause(float duration) {
|
||||||
#if ARDUINO
|
|
||||||
double start = t;
|
double start = t;
|
||||||
while (t - start < duration) {
|
while (t - start < duration) {
|
||||||
step();
|
step();
|
||||||
@ -61,11 +60,8 @@ void pause(float duration) {
|
|||||||
#if WIFI_ENABLED
|
#if WIFI_ENABLED
|
||||||
processMavlink();
|
processMavlink();
|
||||||
#endif
|
#endif
|
||||||
|
delay(50);
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
// Code above won't work in the simulation
|
|
||||||
delay(duration * 1000);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void doCommand(String str, bool echo = false) {
|
void doCommand(String str, bool echo = false) {
|
||||||
|
@ -156,8 +156,11 @@ public:
|
|||||||
void restart() { Serial.println("Ignore reboot in simulation"); }
|
void restart() { Serial.println("Ignore reboot in simulation"); }
|
||||||
} ESP;
|
} ESP;
|
||||||
|
|
||||||
|
unsigned long __delayTime = 0;
|
||||||
|
|
||||||
void delay(uint32_t ms) {
|
void delay(uint32_t ms) {
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(ms));
|
std::this_thread::sleep_for(std::chrono::milliseconds(ms));
|
||||||
|
__delayTime += ms * 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ledcAttach(uint8_t pin, uint32_t freq, uint8_t resolution) { return true; }
|
bool ledcAttach(uint8_t pin, uint32_t freq, uint8_t resolution) { return true; }
|
||||||
@ -167,5 +170,5 @@ unsigned long __micros;
|
|||||||
unsigned long __resetTime = 0;
|
unsigned long __resetTime = 0;
|
||||||
|
|
||||||
unsigned long micros() {
|
unsigned long micros() {
|
||||||
return __micros + __resetTime; // keep the time monotonic
|
return __micros + __resetTime + __delayTime; // keep the time monotonic
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user