Add ability to specify baud rate in config file
This commit is contained in:
parent
2fb0383091
commit
f474027f0a
|
|
@ -42,7 +42,7 @@ int arduino_update(SerialDevice* serialdevice, void* data, size_t size)
|
||||||
// return result;
|
// 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...");
|
slogi("initializing arduino serial device...");
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
@ -59,7 +59,7 @@ int arduino_init(SerialDevice* serialdevice, const char* portdev)
|
||||||
check(sp_open(serialdevice->port, SP_MODE_READ_WRITE));
|
check(sp_open(serialdevice->port, SP_MODE_READ_WRITE));
|
||||||
|
|
||||||
slogd("Setting port to 9600 8N1, no flow control.\n");
|
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_bits(serialdevice->port, 8));
|
||||||
check(sp_set_parity(serialdevice->port, SP_PARITY_NONE));
|
check(sp_set_parity(serialdevice->port, SP_PARITY_NONE));
|
||||||
check(sp_set_stopbits(serialdevice->port, 1));
|
check(sp_set_stopbits(serialdevice->port, 1));
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
|
|
||||||
int arduino_update(SerialDevice* serialdevice, void* data, size_t size);
|
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 arduino_free(SerialDevice* serialdevice);
|
||||||
int check(enum sp_return result);
|
int check(enum sp_return result);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,7 @@ int serialdev_free(SimDevice* this)
|
||||||
return 0;
|
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...");
|
slogi("initializing serial device...");
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
@ -138,7 +138,7 @@ int serialdev_init(SerialDevice* serialdevice, const char* portdev, int motorspo
|
||||||
|
|
||||||
serialdevice->motorsposition = motorsposition;
|
serialdevice->motorsposition = motorsposition;
|
||||||
|
|
||||||
error = arduino_init(serialdevice, portdev);
|
error = arduino_init(serialdevice, portdev, baud);
|
||||||
|
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
@ -197,7 +197,7 @@ SerialDevice* new_serial_device(DeviceSettings* ds, MonocoqueSettings* ms) {
|
||||||
this->m.hapticeffect.tyrediameterconfig = ms->tyre_diameter_config;
|
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)
|
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);
|
config_setting_lookup_int(device_settings, "motors", &motorposition);
|
||||||
ds->serialdevsettings.motorsposition = motorposition;
|
ds->serialdevsettings.motorsposition = motorposition;
|
||||||
|
|
||||||
|
int baud = 9600;
|
||||||
|
config_setting_lookup_int(device_settings, "baud", &baud);
|
||||||
|
ds->serialdevsettings.baud = baud;
|
||||||
|
|
||||||
double ampfactor = 1.0;
|
double ampfactor = 1.0;
|
||||||
ds->serialdevsettings.ampfactor = 1.0;
|
ds->serialdevsettings.ampfactor = 1.0;
|
||||||
int found = config_setting_lookup_float(device_settings, "ampfactor", &factor);
|
int found = config_setting_lookup_float(device_settings, "ampfactor", &factor);
|
||||||
if(found == 0)
|
ds->serialdevsettings.ampfactor = ampfactor;
|
||||||
{
|
|
||||||
ds->serialdevsettings.ampfactor = 1.0;
|
slogt("set port baud rate to %i, ampfactor %f", baud, ampfactor);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ds->serialdevsettings.ampfactor = ampfactor;
|
|
||||||
slogt("Set ampflication factor for motors to %f", ampfactor);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -526,8 +524,6 @@ int uiloadconfig(const char* config_file_str, int confignum, int configureddevic
|
||||||
{
|
{
|
||||||
slogi("Parsing config file");
|
slogi("Parsing config file");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
config_setting_t* config = NULL;
|
config_setting_t* config = NULL;
|
||||||
config = config_lookup(&cfg, "configs");
|
config = config_lookup(&cfg, "configs");
|
||||||
config_setting_t* selectedconfig = config_setting_get_elem(config, confignum);
|
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++;
|
i++;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -139,6 +139,7 @@ typedef struct
|
||||||
char* portdev;
|
char* portdev;
|
||||||
MotorPosition motorsposition;
|
MotorPosition motorsposition;
|
||||||
float ampfactor;
|
float ampfactor;
|
||||||
|
int baud;
|
||||||
}
|
}
|
||||||
SerialDeviceSettings;
|
SerialDeviceSettings;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue