Compare commits

..

No commits in common. "485a3489a956588eedaf4afecd6f48487714969f" and "9325e207be8606d7d08f4897e9bdf8e7c8e9e251" have entirely different histories.

7 changed files with 61 additions and 149 deletions

View File

@ -33,35 +33,28 @@ int showstats(SimData* simdata)
int speed = simdata->velocity;
int digits = 0;
if (speed > 0)
while (speed > 0)
{
while (speed > 0)
{
int mod = speed % 10;
speed = speed / 10;
digits++;
}
speed = simdata->velocity;
int s[digits];
int digit = 0;
while (speed > 0)
{
int mod = speed % 10;
s[digit] = mod;
speed = speed / 10;
digit++;
}
speed = simdata->velocity;
digit = digits;
while (digit > 0)
{
fputc(s[digit-1]+'0', stdout);
digit--;
}
int mod = speed % 10;
speed = speed / 10;
digits++;
}
else
speed = simdata->velocity;
int s[digits];
int digit = 0;
while (speed > 0)
{
fputc('0', stdout);
int mod = speed % 10;
s[digit] = mod;
speed = speed / 10;
digit++;
}
speed = simdata->velocity;
digit = digits;
while (digit > 0)
{
fputc(s[digit-1]+'0', stdout);
digit--;
}
fputc(' ', stdout);
}
@ -76,35 +69,28 @@ int showstats(SimData* simdata)
int rpms = simdata->rpms;
int digits = 0;
if (rpms > 0)
while (rpms > 0)
{
while (rpms > 0)
{
int mod = rpms % 10;
rpms = rpms / 10;
digits++;
}
rpms = simdata->rpms;
int s[digits];
int digit = 0;
while (rpms > 0)
{
int mod = rpms % 10;
s[digit] = mod;
rpms = rpms / 10;
digit++;
}
rpms = simdata->rpms;
digit = digits;
while (digit > 0)
{
fputc(s[digit-1]+'0', stdout);
digit--;
}
int mod = rpms % 10;
rpms = rpms / 10;
digits++;
}
else
rpms = simdata->rpms;
int s[digits];
int digit = 0;
while (rpms > 0)
{
fputc('0', stdout);
int mod = rpms % 10;
s[digit] = mod;
rpms = rpms / 10;
digit++;
}
rpms = simdata->rpms;
digit = digits;
while (digit > 0)
{
fputc(s[digit-1]+'0', stdout);
digit--;
}
fputc(' ', stdout);
}
@ -129,35 +115,28 @@ int showstats(SimData* simdata)
int alt = simdata->altitude;
int digits = 0;
if (alt > 0)
while (alt > 0)
{
while (alt > 0)
{
int mod = alt % 10;
alt = alt / 10;
digits++;
}
alt = simdata->altitude;
int s[digits];
int digit = 0;
while (alt > 0)
{
int mod = alt % 10;
s[digit] = mod;
alt = alt / 10;
digit++;
}
alt = simdata->altitude;
digit = digits;
while (digit > 0)
{
fputc(s[digit-1]+'0', stdout);
digit--;
}
int mod = alt % 10;
alt = alt / 10;
digits++;
}
else
alt = simdata->altitude;
int s[digits];
int digit = 0;
while (alt > 0)
{
fputc('0', stdout);
int mod = alt % 10;
s[digit] = mod;
alt = alt / 10;
digit++;
}
alt = simdata->altitude;
digit = digits;
while (digit > 0)
{
fputc(s[digit-1]+'0', stdout);
digit--;
}
fputc(' ', stdout);
}
@ -229,8 +208,7 @@ int looper(SimDevice* devices[], int numdevices, Simulator simulator)
}
}
}
fprintf(stdout, "\n");
fflush(stdout);
tcsetattr(0, TCSANOW, &canonicalmode);
free(simdata);

View File

@ -19,11 +19,6 @@ int strtogame(const char* game, MonocoqueSettings* ms)
slogd("Setting simulator to Assetto Corsa");
ms->sim_name = SIMULATOR_ASSETTO_CORSA;
}
else if (strcmp(game, "rf2") == 0)
{
slogd("Setting simulator to RFactor 2");
ms->sim_name = SIMULATOR_RFACTOR2;
}
else
if (strcmp(game, "test") == 0)
{

View File

@ -29,9 +29,7 @@ DeviceSubType;
typedef enum
{
SIMULATOR_MONOCOQUE_TEST = 0,
SIMULATOR_ASSETTO_CORSA = 1,
SIMULATOR_RFACTOR = 2,
SIMULATOR_RFACTOR2 = 3
SIMULATOR_ASSETTO_CORSA = 1
}
Simulator;

View File

@ -1,21 +0,0 @@
#ifndef _RF2_H
#define _RF2_H
#include <stdbool.h>
#include "simapi/rf2data.h"
#define RF2_TELEMETRY_FILE "rFactor2SMMP_Telemetry"
#define RF2_SCORING_FILE "rFactor2SMMP_Scoring"
typedef struct
{
bool has_telemetry;
bool has_scoring;
void* telemetry_map_addr;
void* scoring_map_addr;
struct rF2Telemetry rf2_telemetry;
//struct rF2Scoring rf2_scoring;
}
RF2Map;
#endif

@ -1 +1 @@
Subproject commit 04fd2ca8ed590f562ad6423d9cf9f076daa28b95
Subproject commit 5faf120d84378cdbe3bd8a0347f38fb9d0e9a87e

View File

@ -2,19 +2,15 @@
#include <sys/mman.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include "simmapper.h"
#include "simdata.h"
#include "test.h"
#include "ac.h"
#include "rf2.h"
#include "../helper/confighelper.h"
#include "../slog/slog.h"
#include "simapi/acdata.h"
#include "simapi/rf2data.h"
int simdatamap(SimData* simdata, SimMap* simmap, Simulator simulator)
@ -36,18 +32,9 @@ int simdatamap(SimData* simdata, SimMap* simmap, Simulator simulator)
simdata->velocity = simmap->d.ac.ac_physics.speedKmh;
simdata->altitude = 1;
break;
case SIMULATOR_RFACTOR2 :
memcpy(&simmap->d.rf2.rf2_telemetry, simmap->d.rf2.telemetry_map_addr, sizeof(simmap->d.rf2.rf2_telemetry));
simdata->velocity = abs(ceil(simmap->d.rf2.rf2_telemetry.mVehicles[0].mLocalVel.z * 3.6));
simdata->rpms = ceil(simmap->d.rf2.rf2_telemetry.mVehicles[0].mEngineRPM);
simdata->gear = simmap->d.rf2.rf2_telemetry.mVehicles[0].mGear;
simdata->maxrpm - ceil(simmap->d.rf2.rf2_telemetry.mVehicles[0].mEngineMaxRPM);
break;
}
}
int siminit(SimData* simdata, SimMap* simmap, Simulator simulator)
{
slogi("searching for simulator data...");
@ -104,28 +91,6 @@ int siminit(SimData* simdata, SimMap* simmap, Simulator simulator)
slogi("found data for Assetto Corsa...");
break;
case SIMULATOR_RFACTOR2 :
simmap->d.rf2.has_telemetry=false;
simmap->d.rf2.has_scoring=false;
simmap->fd = shm_open(RF2_TELEMETRY_FILE, O_RDONLY, S_IRUSR | S_IWUSR);
if (simmap->fd == -1)
{
slogd("could not open RFactor2 Telemetry engine");
return MONOCOQUE_ERROR_NODATA;
}
simmap->d.rf2.telemetry_map_addr = mmap(NULL, sizeof(simmap->d.rf2.rf2_telemetry), PROT_READ, MAP_SHARED, simmap->fd, 0);
if (simmap->d.rf2.telemetry_map_addr == MAP_FAILED)
{
slogd("could not retrieve RFactor2 telemetry data");
return 30;
}
simmap->d.rf2.has_telemetry=true;
slogi("found data for RFactor2...");
break;
}
return error;

View File

@ -1,14 +1,12 @@
#ifndef _SIMMAPPER_H
#define _SIMMAPPER_H
#define _SIMMAPPEE_H
#include "ac.h"
#include "rf2.h"
#include "simdata.h"
#include "../helper/confighelper.h"
#include "simapi/acdata.h"
#include "simapi/rf2data.h"
typedef struct
{
@ -17,7 +15,6 @@ typedef struct
union
{
ACMap ac;
RF2Map rf2;
} d;
}
SimMap;