Temporarily remove feature to ignore reattempting to open a serial device after it had failed once. Increase number of allowed serial device blocks to 20.

This commit is contained in:
Paul Dino Jones 2025-03-27 01:51:37 -04:00
parent 4e6bf4684a
commit df39832f4f
3 changed files with 10 additions and 26 deletions

View File

@ -57,10 +57,13 @@ int monocoque_serial_free(SerialDevice* serialdevice)
slogd("freeing physical device %s", monocoque_serial_devices[serialdevice->id].portname); slogd("freeing physical device %s", monocoque_serial_devices[serialdevice->id].portname);
sp_close(monocoque_serial_devices[serialdevice->id].port); sp_close(monocoque_serial_devices[serialdevice->id].port);
sp_free_port(monocoque_serial_devices[serialdevice->id].port); sp_free_port(monocoque_serial_devices[serialdevice->id].port);
free(monocoque_serial_devices[serialdevice->id].portname);
monocoque_serial_devices[serialdevice->id].port = NULL;
monocoque_serial_devices[serialdevice->id].portname = NULL;
monocoque_serial_devices[serialdevice->id].busy = false; monocoque_serial_devices[serialdevice->id].busy = false;
monocoque_serial_devices[serialdevice->id].open = false; monocoque_serial_devices[serialdevice->id].open = false;
monocoque_serial_devices[serialdevice->id].openfail = false; monocoque_serial_devices[serialdevice->id].openfail = false;
free(monocoque_serial_devices[serialdevice->id].portname);
} }
else else
{ {
@ -208,7 +211,7 @@ int monocoque_serial_open(SerialDevice* serialdevice, const char* portdev)
free(monocoque_serial_devices[i].portname); free(monocoque_serial_devices[i].portname);
monocoque_serial_devices[i].portname = NULL; monocoque_serial_devices[i].portname = NULL;
monocoque_serial_devices[i].open = false; monocoque_serial_devices[i].open = false;
monocoque_serial_devices[i].openfail = true; monocoque_serial_devices[i].openfail = false;
return -1; return -1;
} }

View File

@ -18,7 +18,7 @@ typedef struct
} }
monocoque_serial_device; monocoque_serial_device;
static monocoque_serial_device monocoque_serial_devices[10]; static monocoque_serial_device monocoque_serial_devices[20];
int monocoque_serial_write(uint8_t serialdevicenum, void* data, size_t size, int timeout); int monocoque_serial_write(uint8_t serialdevicenum, void* data, size_t size, int timeout);
int monocoque_serial_write_block(uint8_t serialdevicenum, void* data, size_t size, int timeout); int monocoque_serial_write_block(uint8_t serialdevicenum, void* data, size_t size, int timeout);

View File

@ -11,11 +11,8 @@
#include "gameloop.h" #include "gameloop.h"
#include "loopdata.h" #include "loopdata.h"
#include "../devices/sound.h"
#include "../helper/parameters.h"
#include "../helper/confighelper.h" #include "../helper/confighelper.h"
#include "../devices/simdevice.h" #include "../devices/simdevice.h"
#include "../devices/serialadapter.h"
#include "../simulatorapi/simapi/simapi/simdata.h" #include "../simulatorapi/simapi/simapi/simdata.h"
#include "../simulatorapi/simapi/simapi/simmapper.h" #include "../simulatorapi/simapi/simapi/simmapper.h"
#include "../slog/slog.h" #include "../slog/slog.h"
@ -252,15 +249,11 @@ void looprun(MonocoqueSettings* ms, loop_data* f, SimData* simdata)
f->simdevices = malloc(f->numdevices * sizeof(SimDevice)); f->simdevices = malloc(f->numdevices * sizeof(SimDevice));
int initdevices = devinit(f->simdevices, configureddevices, ds, ms); int initdevices = devinit(f->simdevices, configureddevices, ds, ms);
for( int i = 0; i < configureddevices; i++)
for(int d = 0; d < 10; d++)
{ {
monocoque_serial_devices[d].open = false; settingsfree(ds[i]);
monocoque_serial_devices[d].openfail = false;
monocoque_serial_devices[d].busy = false;
monocoque_serial_devices[d].refs = 0;
} }
free(ds);
int numdevices = f->numdevices; int numdevices = f->numdevices;
SimDevice* devices = f->simdevices; SimDevice* devices = f->simdevices;
@ -287,12 +280,7 @@ void looprun(MonocoqueSettings* ms, loop_data* f, SimData* simdata)
} }
} }
int i = 0;
for( i = 0; i < configureddevices; i++)
{
settingsfree(ds[i]);
}
free(ds);
doui = false; doui = false;
} }
else else
@ -361,13 +349,6 @@ void shmdatamapcallback(uv_timer_t* handle)
} }
} }
sleep(1); sleep(1);
for(int d = 0; d < 10; d++)
{
if(monocoque_serial_devices[d].portname != NULL)
{
free(monocoque_serial_devices[d].portname);
}
}
for (int x = 0; x < numdevices; x++) for (int x = 0; x < numdevices; x++)
{ {
if (devices[x].initialized == true) if (devices[x].initialized == true)