Added gametrak poti readout and range settings
This commit is contained in:
@@ -86,6 +86,15 @@ build_flags =
|
||||
-DDEFAULT_BREMSMAX=4000
|
||||
-DFEATURE_BMS
|
||||
-DFEATURE_GAMETRAK
|
||||
-DPINS_GAMETRAKX=31
|
||||
-DPINS_GAMETRAKY=32
|
||||
-DPINS_GAMETRAKDIST=34
|
||||
-DDEFAULT_GAMETRAKXMIN=0
|
||||
-DDEFAULT_GAMETRAKXMAX=4095
|
||||
-DDEFAULT_GAMETRAKYMIN=0
|
||||
-DDEFAULT_GAMETRAKYMAX=4095
|
||||
-DDEFAULT_GAMETRAKDISTMIN=0
|
||||
-DDEFAULT_GAMETRAKDISTMAX=4095
|
||||
|
||||
[env:feedc0de_usb]
|
||||
platform = ${common_env_data.platform}
|
||||
|
@@ -18,6 +18,10 @@ using pin_t = int;
|
||||
|
||||
int16_t raw_gas, raw_brems;
|
||||
float gas, brems;
|
||||
#ifdef FEATURE_GAMETRAK
|
||||
int16_t raw_gametrakX, raw_gametrakY, raw_gametrakDist;
|
||||
float gametrakX, gametrakY, gametrakDist;
|
||||
#endif
|
||||
float avgSpeed, avgSpeedKmh, sumCurrent, sumAbsoluteCurrent;
|
||||
|
||||
Settings settings;
|
||||
|
@@ -73,6 +73,14 @@ constexpr Settings::BoardcomputerHardware defaultBoardcomputerHardware {
|
||||
.gasMax = DEFAULT_GASMAX,
|
||||
.bremsMin = DEFAULT_BREMSMIN,
|
||||
.bremsMax = DEFAULT_BREMSMAX,
|
||||
#ifdef FEATURE_GAMETRAK
|
||||
.gametrakXMin = DEFAULT_GAMETRAKXMIN,
|
||||
.gametrakXMax = DEFAULT_GAMETRAKXMAX,
|
||||
.gametrakYMin = DEFAULT_GAMETRAKYMIN,
|
||||
.gametrakYMax = DEFAULT_GAMETRAKYMAX,
|
||||
.gametrakDistMin = DEFAULT_GAMETRAKDISTMIN,
|
||||
.gametrakDistMax = DEFAULT_GAMETRAKDISTMAX,
|
||||
#endif
|
||||
.swapScreenBytes = DEFAULT_SWAPSCREENBYTES
|
||||
};
|
||||
|
||||
|
@@ -38,6 +38,9 @@ struct Settings
|
||||
struct BoardcomputerHardware {
|
||||
int16_t sampleCount;
|
||||
int16_t gasMin, gasMax, bremsMin, bremsMax;
|
||||
#ifdef FEATURE_GAMETRAK
|
||||
int16_t gametrakXMin, gametrakXMax, gametrakYMin, gametrakYMax, gametrakDistMin, gametrakDistMax;
|
||||
#endif
|
||||
bool swapScreenBytes;
|
||||
} boardcomputerHardware;
|
||||
|
||||
@@ -105,6 +108,12 @@ void Settings::executeForEverySetting(T &&callable)
|
||||
callable("gasMax", boardcomputerHardware.gasMax);
|
||||
callable("bremsMin", boardcomputerHardware.bremsMin);
|
||||
callable("bremsMax", boardcomputerHardware.bremsMax);
|
||||
callable("gametrakXMin", boardcomputerHardware.gametrakXMin);
|
||||
callable("gametrakXMax", boardcomputerHardware.gametrakXMax);
|
||||
callable("gametrakYMin", boardcomputerHardware.gametrakYMin);
|
||||
callable("gametrakYMax", boardcomputerHardware.gametrakYMax);
|
||||
callable("gametrakDistMin", boardcomputerHardware.gametrakDistMin);
|
||||
callable("gametrakDistMax", boardcomputerHardware.gametrakDistMax);
|
||||
callable("swapScreenBytes", boardcomputerHardware.swapScreenBytes);
|
||||
|
||||
callable("default.ctrlTyp", defaultMode.ctrlTyp);
|
||||
|
11
src/utils.h
11
src/utils.h
@@ -315,5 +315,16 @@ void readPotis()
|
||||
|
||||
raw_brems = sampleMultipleTimes(PINS_BREMS);
|
||||
brems = scaleBetween<float>(raw_brems, settings.boardcomputerHardware.bremsMin, settings.boardcomputerHardware.bremsMax, 0., 1000.);
|
||||
|
||||
#ifdef FEATURE_GAMETRAK
|
||||
raw_gametrakX = sampleMultipleTimes(PINS_GAMETRAKX);
|
||||
gametrakX = scaleBetween<float>(raw_gametrakX, settings.boardcomputerHardware.gametrakXMin, settings.boardcomputerHardware.gametrakXMax, 0., 1000.);
|
||||
|
||||
raw_gametrakY = sampleMultipleTimes(PINS_GAMETRAKY);
|
||||
gametrakY = scaleBetween<float>(raw_gametrakY, settings.boardcomputerHardware.gametrakYMin, settings.boardcomputerHardware.gametrakYMax, 0., 1000.);
|
||||
|
||||
raw_gametrakDist = sampleMultipleTimes(PINS_GAMETRAKDIST);
|
||||
gametrakDist = scaleBetween<float>(raw_gametrakDist, settings.boardcomputerHardware.gametrakDistMin, settings.boardcomputerHardware.gametrakDistMax, 0., 1000.);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user