Add ampfactor to control final motor power

This commit is contained in:
Paul Dino Jones 2024-07-13 14:21:35 -04:00
parent e8e8b2495d
commit 45db6670c9
4 changed files with 17 additions and 1 deletions

View File

@ -66,6 +66,7 @@ int arduino_simhaptic_update(SimDevice* this, SimData* simdata)
double play = slipeffect(simdata, this->hapticeffect.effecttype, this->hapticeffect.tyre, this->hapticeffect.threshold, this->hapticeffect.useconfig, this->hapticeffect.configcheck, this->hapticeffect.tyrediameterconfig);
double rplay = play;
play = play * serialdevice->ampfactor;
if(play > 1.0)
{
play = 1.0;
@ -161,6 +162,7 @@ SerialDevice* new_serial_device(DeviceSettings* ds, MonocoqueSettings* ms) {
this->u.simhapticdata.effect3 = 0;
this->u.simhapticdata.effect4 = 0;
this->state = 0;
this->ampfactor = ds->serialdevsettings.ampfactor;
slogi("Initializing arduino device for haptic effects.");
break;
}

View File

@ -50,6 +50,7 @@ typedef struct
SerialDeviceType devicetype;
// move these two they only apply to the haptic device
int motorsposition;
double ampfactor;
double state;
union
{

View File

@ -415,6 +415,18 @@ int devsetup(const char* device_type, const char* device_subtype, const char* co
int motorposition = 8;
config_setting_lookup_int(device_settings, "motors", &motorposition);
ds->serialdevsettings.motorsposition = motorposition;
double ampfactor = 1.0;
ds->serialdevsettings.ampfactor = 1.0;
int found = config_setting_lookup_float(device_settings, "ampfactor", &ampfactor);
if(found == 0)
{
ds->serialdevsettings.ampfactor = 1.0;
}
else
{
ds->serialdevsettings.ampfactor = ampfactor;
}
}
}

View File

@ -118,6 +118,7 @@ typedef struct
{
char* portdev;
MotorPosition motorsposition;
float ampfactor;
}
SerialDeviceSettings;