Add haptic effect to serial haptic device type

This commit is contained in:
Paul Dino Jones 2024-07-01 22:45:54 +00:00
parent 1ebffa9f63
commit ea100ca2cf
3 changed files with 19 additions and 0 deletions

View File

@ -2,8 +2,16 @@
#define _HAPTICEFFECT_H #define _HAPTICEFFECT_H
#include <stdio.h> #include <stdio.h>
#include "../helper/confighelper.h"
#include "../simulatorapi/simapi/simapi/simdata.h" #include "../simulatorapi/simapi/simapi/simdata.h"
typedef struct
{
double threshold;
VibrationEffectType effecttype;
}
HapticEffect;
int slipeffect(SimData* simdata, int effecttype, int tyre, double threshold, int useconfig, int* configcheck, char* configfile); int slipeffect(SimData* simdata, int effecttype, int tyre, double threshold, int useconfig, int* configcheck, char* configfile);
#endif #endif

View File

@ -6,6 +6,7 @@
#include "simdevice.h" #include "simdevice.h"
#include "serialdevice.h" #include "serialdevice.h"
#include "hapticeffect.h"
#include "serial/arduino.h" #include "serial/arduino.h"
#include "../helper/parameters.h" #include "../helper/parameters.h"
#include "../simulatorapi/simapi/simapi/simdata.h" #include "../simulatorapi/simapi/simapi/simdata.h"
@ -59,6 +60,8 @@ int arduino_haptic_update(SimDevice* this, SimData* simdata)
SerialDevice* serialdevice = (void *) this->derived; SerialDevice* serialdevice = (void *) this->derived;
int result = 1; int result = 1;
int play = slipeffect(simdata, serialdevice->hapticeffect.effecttype, this->tyre, serialdevice->hapticeffect.threshold, this->useconfig, this->configcheck, this->tyrediameterconfig);
slogt("Updating arduino haptic device"); slogt("Updating arduino haptic device");
arduino_update(serialdevice, simdata, sizeof(SimData)); arduino_update(serialdevice, simdata, sizeof(SimData));
@ -122,6 +125,12 @@ SerialDevice* new_serial_device(DeviceSettings* ds) {
break; break;
} }
if(this->devicetype == ARDUINODEV__HAPTIC)
{
this->hapticeffect.threshold = ds->threshold;
this->hapticeffect.effecttype = ds->effect_type;
}
int error = serialdev_init(this, ds->serialdevsettings.portdev); int error = serialdev_init(this, ds->serialdevsettings.portdev);
if (error != 0) if (error != 0)

View File

@ -6,6 +6,7 @@
#include "usbdevice.h" #include "usbdevice.h"
#include "sounddevice.h" #include "sounddevice.h"
#include "serialdevice.h" #include "serialdevice.h"
#include "hapticeffect.h"
#include "../helper/confighelper.h" #include "../helper/confighelper.h"
#include "../simulatorapi/simapi/simapi/simdata.h" #include "../simulatorapi/simapi/simapi/simdata.h"
@ -50,6 +51,7 @@ typedef struct
SerialType type; SerialType type;
struct sp_port* port; struct sp_port* port;
SerialDeviceType devicetype; SerialDeviceType devicetype;
HapticEffect hapticeffect;
union union
{ {
SimWindData simwinddata; SimWindData simwinddata;