Add ability to specify baud rate in config file
This commit is contained in:
@@ -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));
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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++;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -139,6 +139,7 @@ typedef struct
|
||||
char* portdev;
|
||||
MotorPosition motorsposition;
|
||||
float ampfactor;
|
||||
int baud;
|
||||
}
|
||||
SerialDeviceSettings;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user