diff options
Diffstat (limited to 'client/main.c')
-rw-r--r-- | client/main.c | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/client/main.c b/client/main.c index 76e8197..b5af0e8 100644 --- a/client/main.c +++ b/client/main.c @@ -1 +1,33 @@ -int main() { return 0; } +#include "main.h" +#include "../shared/consts.h" +#include "../shared/errcatch.h" +#include "commands.h" +#include "serial.h" +#include "setup.h" +#include "time.h" +#include "ui.h" + +w2_s_client_state g_w2_state = {.ping_received = true}; + +int main(int argc, char **argv) { + w2_client_setup(argc, argv); + + while (1) { + w2_serial_main(); + w2_errcatch_main(); + w2_ui_main(); + + if (!g_w2_state.ping_received && w2_timer_end(W2_TIMER_PING) > W2_PING_TIMEOUT) { + g_w2_state.ping_timeout = true; + g_w2_state.connected = false; + w2_errcatch_throw(W2_E_WARN_PING_TIMEOUT); + } + + if ((g_w2_state.ping_received && w2_timer_end(W2_TIMER_PING) > W2_PING_FREQUENCY) || + g_w2_state.ping_timeout) { + g_w2_state.ping_timeout = false; + g_w2_state.ping_received = false; + w2_send_ping(); + } + } +} |