From 25bfe2325c88306b844bc4eba7c7a7a30b770daa Mon Sep 17 00:00:00 2001 From: Paul Dino Jones Date: Thu, 11 Dec 2025 17:49:39 -0500 Subject: [PATCH] Add basic support for Live For Speed through OutGauge and Outsim protocols --- src/monocoque/gameloop/gameloop.c | 18 ++++++++++++++++++ src/monocoque/simulatorapi/CMakeLists.txt | 3 +++ src/monocoque/simulatorapi/simapi | 2 +- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/monocoque/gameloop/gameloop.c b/src/monocoque/gameloop/gameloop.c index 332dd52..171c9b4 100644 --- a/src/monocoque/gameloop/gameloop.c +++ b/src/monocoque/gameloop/gameloop.c @@ -420,6 +420,21 @@ static void on_udp_recv(uv_udp_t* handle, ssize_t nread, const uv_buf_t* rcvbuf, // help things spin down simdata->rpms = 0; simdata->velocity = 0; + + for (int x = 0; x < numdevices; x++) + { + if (devices[x].initialized == true) + { + uv_timer_t* dt = &f->device_timers[x]; + slogt("attempting device timer stop and release"); + slogt("timer active status %i", uv_is_active((uv_handle_t*) dt)); + uv_timer_stop(dt); + //uv_close((uv_handle_t*) dt, on_timer_close_complete); + } + } + free(f->device_batons); + free(f->device_timers); + slogt("stopped device timers"); for (int x = 0; x < numdevices; x++) { if (devices[x].initialized == true) @@ -427,6 +442,7 @@ static void on_udp_recv(uv_udp_t* handle, ssize_t nread, const uv_buf_t* rcvbuf, devices[x].update(&devices[x], simdata); } } + sleep(1); for (int x = 0; x < numdevices; x++) { if (devices[x].initialized == true) @@ -435,6 +451,7 @@ static void on_udp_recv(uv_udp_t* handle, ssize_t nread, const uv_buf_t* rcvbuf, } } free(devices); + int r = simfree(simdata, simmap, f->map); slogd("simfree returned %i", r); f->numdevices = 0; @@ -473,6 +490,7 @@ void udpstart(MonocoqueSettings* sms, loop_data* f, SimData* simdata, SimMap* si { if (appstate == 2) { + fprintf(stderr, "udpstart\n"); simdatamap(simdata, simmap, NULL, f->sim, true, NULL); if (doui == true) { diff --git a/src/monocoque/simulatorapi/CMakeLists.txt b/src/monocoque/simulatorapi/CMakeLists.txt index adc005b..91b3a89 100644 --- a/src/monocoque/simulatorapi/CMakeLists.txt +++ b/src/monocoque/simulatorapi/CMakeLists.txt @@ -7,6 +7,7 @@ set(simulatorapi_source_files simapi/include/rf2data.h simapi/include/pcars2data.h simapi/include/scs2data.h + simapi/include/outgauge.h simapi/simmap/basicmap.h simapi/simmap/mapacdata.c simapi/simmap/mapacdata.h @@ -14,10 +15,12 @@ set(simulatorapi_source_files simapi/simapi/rf2.h simapi/simapi/pcars2.h simapi/simapi/scs2.h + simapi/simapi/outgauge.h simapi/simapi/mapping/acmapper.c simapi/simapi/mapping/rf2mapper.c simapi/simapi/mapping/pcars2mapper.c simapi/simapi/mapping/scs2mapper.c + simapi/simapi/mapping/outgaugemapper.c simapi/simapi/getpid.c simapi/simapi/getpid.h ) diff --git a/src/monocoque/simulatorapi/simapi b/src/monocoque/simulatorapi/simapi index 8f46242..37bae71 160000 --- a/src/monocoque/simulatorapi/simapi +++ b/src/monocoque/simulatorapi/simapi @@ -1 +1 @@ -Subproject commit 8f462421dd1cb01df489eb06fc73c60c633e6312 +Subproject commit 37bae714a277336a203dafaf16929059077b5700