diff --git a/src/monocoque/devices/serial/arduino.c b/src/monocoque/devices/serial/arduino.c index da76aa8..c9db551 100644 --- a/src/monocoque/devices/serial/arduino.c +++ b/src/monocoque/devices/serial/arduino.c @@ -42,7 +42,7 @@ int arduino_update(SerialDevice* serialdevice, void* data, size_t size) // return result; //} -int arduino_init(SerialDevice* serialdevice, const char* portdev) +int arduino_init(SerialDevice* serialdevice, const char* portdev, int baud) { slogi("initializing arduino serial device..."); int error = 0; @@ -59,7 +59,7 @@ int arduino_init(SerialDevice* serialdevice, const char* portdev) check(sp_open(serialdevice->port, SP_MODE_READ_WRITE)); slogd("Setting port to 9600 8N1, no flow control.\n"); - check(sp_set_baudrate(serialdevice->port, 9600)); + check(sp_set_baudrate(serialdevice->port, baud)); check(sp_set_bits(serialdevice->port, 8)); check(sp_set_parity(serialdevice->port, SP_PARITY_NONE)); check(sp_set_stopbits(serialdevice->port, 1)); diff --git a/src/monocoque/devices/serial/arduino.h b/src/monocoque/devices/serial/arduino.h index a348988..259ff55 100644 --- a/src/monocoque/devices/serial/arduino.h +++ b/src/monocoque/devices/serial/arduino.h @@ -6,7 +6,7 @@ int arduino_update(SerialDevice* serialdevice, void* data, size_t size); -int arduino_init(SerialDevice* serialdevice, const char* portdev); +int arduino_init(SerialDevice* serialdevice, const char* portdev, int baud); int arduino_free(SerialDevice* serialdevice); int check(enum sp_return result); diff --git a/src/monocoque/devices/serialdevice.c b/src/monocoque/devices/serialdevice.c index 0c720fc..8f15c84 100644 --- a/src/monocoque/devices/serialdevice.c +++ b/src/monocoque/devices/serialdevice.c @@ -128,7 +128,7 @@ int serialdev_free(SimDevice* this) return 0; } -int serialdev_init(SerialDevice* serialdevice, const char* portdev, int motorsposition) +int serialdev_init(SerialDevice* serialdevice, const char* portdev, int motorsposition, int baud) { slogi("initializing serial device..."); int error = 0; @@ -138,7 +138,7 @@ int serialdev_init(SerialDevice* serialdevice, const char* portdev, int motorspo serialdevice->motorsposition = motorsposition; - error = arduino_init(serialdevice, portdev); + error = arduino_init(serialdevice, portdev, baud); return error; } @@ -197,7 +197,7 @@ SerialDevice* new_serial_device(DeviceSettings* ds, MonocoqueSettings* ms) { this->m.hapticeffect.tyrediameterconfig = ms->tyre_diameter_config; } - int error = serialdev_init(this, ds->serialdevsettings.portdev, ds->serialdevsettings.motorsposition); + int error = serialdev_init(this, ds->serialdevsettings.portdev, ds->serialdevsettings.motorsposition, ds->serialdevsettings.baud); if (error != 0) { diff --git a/src/monocoque/helper/confighelper.c b/src/monocoque/helper/confighelper.c index faa5a8f..a698937 100644 --- a/src/monocoque/helper/confighelper.c +++ b/src/monocoque/helper/confighelper.c @@ -494,18 +494,16 @@ int devsetup(const char* device_type, const char* device_subtype, const char* co config_setting_lookup_int(device_settings, "motors", &motorposition); ds->serialdevsettings.motorsposition = motorposition; + int baud = 9600; + config_setting_lookup_int(device_settings, "baud", &baud); + ds->serialdevsettings.baud = baud; + double ampfactor = 1.0; ds->serialdevsettings.ampfactor = 1.0; int found = config_setting_lookup_float(device_settings, "ampfactor", &factor); - if(found == 0) - { - ds->serialdevsettings.ampfactor = 1.0; - } - else - { - ds->serialdevsettings.ampfactor = ampfactor; - slogt("Set ampflication factor for motors to %f", ampfactor); - } + ds->serialdevsettings.ampfactor = ampfactor; + + slogt("set port baud rate to %i, ampfactor %f", baud, ampfactor); } } @@ -526,8 +524,6 @@ int uiloadconfig(const char* config_file_str, int confignum, int configureddevic { slogi("Parsing config file"); - - config_setting_t* config = NULL; config = config_lookup(&cfg, "configs"); config_setting_t* selectedconfig = config_setting_get_elem(config, confignum); @@ -566,8 +562,6 @@ int uiloadconfig(const char* config_file_str, int confignum, int configureddevic i++; } - - } diff --git a/src/monocoque/helper/confighelper.h b/src/monocoque/helper/confighelper.h index b40265e..7d554ff 100644 --- a/src/monocoque/helper/confighelper.h +++ b/src/monocoque/helper/confighelper.h @@ -139,6 +139,7 @@ typedef struct char* portdev; MotorPosition motorsposition; float ampfactor; + int baud; } SerialDeviceSettings;