Added gametrak poti readout and range settings
This commit is contained in:
@@ -86,6 +86,15 @@ build_flags =
|
|||||||
-DDEFAULT_BREMSMAX=4000
|
-DDEFAULT_BREMSMAX=4000
|
||||||
-DFEATURE_BMS
|
-DFEATURE_BMS
|
||||||
-DFEATURE_GAMETRAK
|
-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]
|
[env:feedc0de_usb]
|
||||||
platform = ${common_env_data.platform}
|
platform = ${common_env_data.platform}
|
||||||
|
@@ -18,6 +18,10 @@ using pin_t = int;
|
|||||||
|
|
||||||
int16_t raw_gas, raw_brems;
|
int16_t raw_gas, raw_brems;
|
||||||
float gas, 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;
|
float avgSpeed, avgSpeedKmh, sumCurrent, sumAbsoluteCurrent;
|
||||||
|
|
||||||
Settings settings;
|
Settings settings;
|
||||||
|
@@ -73,6 +73,14 @@ constexpr Settings::BoardcomputerHardware defaultBoardcomputerHardware {
|
|||||||
.gasMax = DEFAULT_GASMAX,
|
.gasMax = DEFAULT_GASMAX,
|
||||||
.bremsMin = DEFAULT_BREMSMIN,
|
.bremsMin = DEFAULT_BREMSMIN,
|
||||||
.bremsMax = DEFAULT_BREMSMAX,
|
.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
|
.swapScreenBytes = DEFAULT_SWAPSCREENBYTES
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -38,6 +38,9 @@ struct Settings
|
|||||||
struct BoardcomputerHardware {
|
struct BoardcomputerHardware {
|
||||||
int16_t sampleCount;
|
int16_t sampleCount;
|
||||||
int16_t gasMin, gasMax, bremsMin, bremsMax;
|
int16_t gasMin, gasMax, bremsMin, bremsMax;
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
int16_t gametrakXMin, gametrakXMax, gametrakYMin, gametrakYMax, gametrakDistMin, gametrakDistMax;
|
||||||
|
#endif
|
||||||
bool swapScreenBytes;
|
bool swapScreenBytes;
|
||||||
} boardcomputerHardware;
|
} boardcomputerHardware;
|
||||||
|
|
||||||
@@ -105,6 +108,12 @@ void Settings::executeForEverySetting(T &&callable)
|
|||||||
callable("gasMax", boardcomputerHardware.gasMax);
|
callable("gasMax", boardcomputerHardware.gasMax);
|
||||||
callable("bremsMin", boardcomputerHardware.bremsMin);
|
callable("bremsMin", boardcomputerHardware.bremsMin);
|
||||||
callable("bremsMax", boardcomputerHardware.bremsMax);
|
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("swapScreenBytes", boardcomputerHardware.swapScreenBytes);
|
||||||
|
|
||||||
callable("default.ctrlTyp", defaultMode.ctrlTyp);
|
callable("default.ctrlTyp", defaultMode.ctrlTyp);
|
||||||
|
11
src/utils.h
11
src/utils.h
@@ -315,5 +315,16 @@ void readPotis()
|
|||||||
|
|
||||||
raw_brems = sampleMultipleTimes(PINS_BREMS);
|
raw_brems = sampleMultipleTimes(PINS_BREMS);
|
||||||
brems = scaleBetween<float>(raw_brems, settings.boardcomputerHardware.bremsMin, settings.boardcomputerHardware.bremsMax, 0., 1000.);
|
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