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);
sp_close(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].open = false;
monocoque_serial_devices[serialdevice->id].openfail = false;
free(monocoque_serial_devices[serialdevice->id].portname);
}
else
{
@ -208,7 +211,7 @@ int monocoque_serial_open(SerialDevice* serialdevice, const char* portdev)
free(monocoque_serial_devices[i].portname);
monocoque_serial_devices[i].portname = NULL;
monocoque_serial_devices[i].open = false;
monocoque_serial_devices[i].openfail = true;
monocoque_serial_devices[i].openfail = false;
return -1;
}

View File

@ -18,7 +18,7 @@ typedef struct
}
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_block(uint8_t serialdevicenum, void* data, size_t size, int timeout);

View File

@ -11,11 +11,8 @@
#include "gameloop.h"
#include "loopdata.h"
#include "../devices/sound.h"
#include "../helper/parameters.h"
#include "../helper/confighelper.h"
#include "../devices/simdevice.h"
#include "../devices/serialadapter.h"
#include "../simulatorapi/simapi/simapi/simdata.h"
#include "../simulatorapi/simapi/simapi/simmapper.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));
int initdevices = devinit(f->simdevices, configureddevices, ds, ms);
for(int d = 0; d < 10; d++)
for( int i = 0; i < configureddevices; i++)
{
monocoque_serial_devices[d].open = false;
monocoque_serial_devices[d].openfail = false;
monocoque_serial_devices[d].busy = false;
monocoque_serial_devices[d].refs = 0;
settingsfree(ds[i]);
}
free(ds);
int numdevices = f->numdevices;
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;
}
else
@ -361,13 +349,6 @@ void shmdatamapcallback(uv_timer_t* handle)
}
}
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++)
{
if (devices[x].initialized == true)