diff --git a/src/monocoque/devices/simdevice.c b/src/monocoque/devices/simdevice.c index 21006b4..a4d57e7 100644 --- a/src/monocoque/devices/simdevice.c +++ b/src/monocoque/devices/simdevice.c @@ -38,7 +38,7 @@ int devinit(SimDevice* simdevices, int numdevices, DeviceSettings* ds) if (sim != NULL) { simdevices[j] = sim->m; - simdevices[j].initialized = true; + //simdevices[j].initialized = true; simdevices[j].type = SIMDEV_USB; simdevices[j].tyre = ds[j].tyre; devices++; diff --git a/src/monocoque/devices/usbdevice.c b/src/monocoque/devices/usbdevice.c index d4a391a..5b285f3 100644 --- a/src/monocoque/devices/usbdevice.c +++ b/src/monocoque/devices/usbdevice.c @@ -92,5 +92,7 @@ USBDevice* new_usb_device(DeviceSettings* ds) { free(this); return NULL; } + + this->m.initialized = true; return this; } diff --git a/src/monocoque/monocoque.c b/src/monocoque/monocoque.c index 8d9ead3..79e53a5 100644 --- a/src/monocoque/monocoque.c +++ b/src/monocoque/monocoque.c @@ -124,7 +124,12 @@ int main(int argc, char** argv) } else { - error = devinit(tachdev, 1, ds); + int devices = 0; + devices = devinit(tachdev, 1, ds); + if(devices < 1) + { + error = MONOCOQUE_ERROR_INVALID_DEV; + } } if (error != MONOCOQUE_ERROR_NONE) @@ -136,7 +141,13 @@ int main(int argc, char** argv) slogi("configuring tachometer with max revs: %i, granularity: %i, saving to %s", p->max_revs, p->granularity, p->save_file); config_tachometer(p->max_revs, p->granularity, p->save_file, tachdev, sdata); } - devfree(tachdev, 1); + + slogt("freeing devices if necessary"); + if(tachdev->initialized == true) + { + slogt("freeing tachmoeter device"); + tachdev->free(tachdev); + } //free(tachdev); free(sdata); free(ds);