Merge pull request #49 from bobbycar-graz/47-mosfets-control
Implemented mosfet toggles
This commit is contained in:
@ -22,6 +22,7 @@ env:
|
||||
- BUILD_CONFIG=aveexy_usb
|
||||
- BUILD_CONFIG=testbench_usb
|
||||
- BUILD_CONFIG=mickdermack_usb
|
||||
- BUILD_CONFIG=peter_usb
|
||||
|
||||
script:
|
||||
- platformio run -e $BUILD_CONFIG
|
||||
|
@ -42,7 +42,7 @@ build_flags =
|
||||
-DDEFAULT_FIELDWEAKMAX=5
|
||||
-DDEFAULT_FIELDADVMAX=40
|
||||
|
||||
[peters_platine]
|
||||
[peters_platine_common]
|
||||
build_flags =
|
||||
-DILI9341_DRIVER=1
|
||||
-DTFT_MOSI=13
|
||||
@ -58,35 +58,30 @@ build_flags =
|
||||
-DPINS_TX1=5
|
||||
-DPINS_RX2=25
|
||||
-DPINS_TX2=26
|
||||
-DPINS_GAS=35
|
||||
-DPINS_BREMS=33
|
||||
-DFEATURE_OTA
|
||||
-DFEATURE_MOSFETS
|
||||
-DPINS_MOSFET0=18
|
||||
-DPINS_MOSFET1=19
|
||||
-DPINS_MOSFET2=21
|
||||
|
||||
[peters_platine]
|
||||
build_flags =
|
||||
${peters_platine_common.build_flags}
|
||||
-DPINS_GAS=35
|
||||
-DPINS_BREMS=33
|
||||
|
||||
[peters_platine_reversed]
|
||||
build_flags =
|
||||
-DILI9341_DRIVER=1
|
||||
-DTFT_MOSI=13
|
||||
-DTFT_SCLK=15
|
||||
-DTFT_CS=14
|
||||
-DTFT_DC=12
|
||||
-DTFT_RST=2
|
||||
-DSPI_FREQUENCY=27000000
|
||||
-DSPI_READ_FREQUENCY=20000000
|
||||
-DSPI_TOUCH_FREQUENCY=2500000
|
||||
-DDEFAULT_SWAPSCREENBYTES=false
|
||||
-DPINS_RX1=4
|
||||
-DPINS_TX1=5
|
||||
-DPINS_RX2=25
|
||||
-DPINS_TX2=26
|
||||
-DPINS_GAS=33
|
||||
-DPINS_BREMS=35
|
||||
-DFEATURE_OTA
|
||||
${peters_platine_common.build_flags}
|
||||
-DPINS_GAS=33
|
||||
-DPINS_BREMS=35
|
||||
|
||||
|
||||
[feedc0de]
|
||||
build_flags =
|
||||
${common_env_data.build_flags}
|
||||
${peters_platine.build_flags}
|
||||
${default_limits.build_flags}
|
||||
-DDEVICE_PREFIX=bobbyquad
|
||||
-DFEATURE_WEBSERVER
|
||||
-DFEATURE_3WIRESW
|
||||
@ -102,7 +97,6 @@ build_flags =
|
||||
; -DPINS_ROTARY_CLK=16
|
||||
; -DPINS_ROTARY_DT=27
|
||||
; -DPINS_ROTARY_SW=0
|
||||
${default_limits.build_flags}
|
||||
-DDEFAULT_GASMIN=800
|
||||
-DDEFAULT_GASMAX=3700
|
||||
-DDEFAULT_BREMSMIN=1300
|
||||
@ -202,6 +196,7 @@ upload_port = /dev/ttyUSB*
|
||||
build_flags =
|
||||
${common_env_data.build_flags}
|
||||
${peters_platine.build_flags}
|
||||
${default_limits.build_flags}
|
||||
-DDEVICE_PREFIX=bobbyquad
|
||||
-DFEATURE_WEBSERVER
|
||||
; -DFEATURE_3WIRESW
|
||||
@ -217,7 +212,6 @@ build_flags =
|
||||
; -DPINS_ROTARY_CLK=16
|
||||
; -DPINS_ROTARY_DT=27
|
||||
; -DPINS_ROTARY_SW=0
|
||||
${default_limits.build_flags}
|
||||
-DDEFAULT_GASMIN=800
|
||||
-DDEFAULT_GASMAX=3700
|
||||
-DDEFAULT_BREMSMIN=1300
|
||||
@ -289,6 +283,7 @@ build_flags =
|
||||
${common_env_data.build_flags}
|
||||
-DDEVICE_PREFIX=bobbyquad
|
||||
-DFEATURE_WEBSERVER
|
||||
${default_limits.build_flags}
|
||||
-DUSER_SETUP_LOADED=1
|
||||
-DRPI_DISPLAY_TYPE
|
||||
-DILI9486_DRIVER
|
||||
@ -319,7 +314,6 @@ build_flags =
|
||||
; -DPINS_ROTARY_CLK=4
|
||||
; -DPINS_ROTARY_DT=16
|
||||
; -DPINS_ROTARY_SW=17
|
||||
${default_limits.build_flags}
|
||||
-DDEFAULT_GASMIN=0
|
||||
-DDEFAULT_GASMAX=4095
|
||||
-DDEFAULT_BREMSMIN=0
|
||||
|
@ -25,6 +25,7 @@ class GraphsMenu;
|
||||
class BmsMenu;
|
||||
class SettingsMenu;
|
||||
class Lockscreen;
|
||||
class MosfetsMenu;
|
||||
class DemosMenu;
|
||||
class PoweroffDisplay;
|
||||
class DebugMenu;
|
||||
@ -45,6 +46,9 @@ class MainMenu :
|
||||
#endif
|
||||
makeComponent<MenuItem, StaticText<TEXT_SETTINGS>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&icons::settings>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_LOCKVEHICLE>, SwitchScreenAction<Lockscreen>, StaticMenuItemIcon<&icons::lock>>,
|
||||
#ifdef FEATURE_MOSFETS
|
||||
makeComponent<MenuItem, StaticText<TEXT_MOSFETS>, SwitchScreenAction<MosfetsMenu>, StaticMenuItemIcon<&icons::lock>>, // TODO icon
|
||||
#endif
|
||||
makeComponent<MenuItem, StaticText<TEXT_DEMOS>, SwitchScreenAction<DemosMenu>, StaticMenuItemIcon<&icons::demos>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_POWEROFF>, SwitchScreenAction<PoweroffDisplay>, StaticMenuItemIcon<&icons::poweroff>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_REBOOT>, RebootAction, StaticMenuItemIcon<&icons::reboot>>,
|
||||
|
43
src/displays/menus/mosfetsmenu.h
Normal file
43
src/displays/menus/mosfetsmenu.h
Normal file
@ -0,0 +1,43 @@
|
||||
#pragma once
|
||||
|
||||
#include "menudisplay.h"
|
||||
#include "staticmenudefinition.h"
|
||||
#include "utils.h"
|
||||
#include "menuitem.h"
|
||||
#include "actions/toggleboolaction.h"
|
||||
#include "actions/switchscreenaction.h"
|
||||
#include "checkboxicon.h"
|
||||
#include "icons/back.h"
|
||||
#include "texts.h"
|
||||
|
||||
namespace {
|
||||
class MainMenu;
|
||||
}
|
||||
|
||||
namespace {
|
||||
#ifdef FEATURE_MOSFETS
|
||||
template<pin_t PIN>
|
||||
class GPIOAccessor : public virtual AccessorInterface<bool>
|
||||
{
|
||||
public:
|
||||
bool getValue() const override { return digitalRead(PIN); }
|
||||
void setValue(bool value) override { digitalWrite(PIN, value ? HIGH : LOW); }
|
||||
};
|
||||
|
||||
using Mosfet0Accessor = GPIOAccessor<PINS_MOSFET0>;
|
||||
using Mosfet1Accessor = GPIOAccessor<PINS_MOSFET1>;
|
||||
using Mosfet2Accessor = GPIOAccessor<PINS_MOSFET2>;
|
||||
|
||||
class MosfetsMenu :
|
||||
public MenuDisplay,
|
||||
public StaticText<TEXT_MOSFETS>,
|
||||
public BackActionInterface<SwitchScreenAction<MainMenu>>,
|
||||
public StaticMenuDefinition<
|
||||
makeComponent<MenuItem, StaticText<TEXT_MOSFET0>, ToggleBoolAction, CheckboxIcon, Mosfet0Accessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_MOSFET1>, ToggleBoolAction, CheckboxIcon, Mosfet1Accessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_MOSFET2>, ToggleBoolAction, CheckboxIcon, Mosfet2Accessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&icons::back>>
|
||||
>
|
||||
{};
|
||||
#endif
|
||||
}
|
10
src/main.cpp
10
src/main.cpp
@ -57,6 +57,16 @@ void setup()
|
||||
initRotary();
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_MOSFETS
|
||||
pinMode(PINS_MOSFET0, OUTPUT);
|
||||
pinMode(PINS_MOSFET1, OUTPUT);
|
||||
pinMode(PINS_MOSFET2, OUTPUT);
|
||||
|
||||
digitalWrite(PINS_MOSFET0, LOW);
|
||||
digitalWrite(PINS_MOSFET1, LOW);
|
||||
digitalWrite(PINS_MOSFET2, LOW);
|
||||
#endif
|
||||
|
||||
settings = presets::defaultSettings;
|
||||
|
||||
if (settingsSaver.init())
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "displays/menus/mainmenu.h"
|
||||
#include "displays/menus/tempomatmodesettingsmenu.h"
|
||||
#include "displays/menus/modessettingsmenu.h"
|
||||
#include "displays/menus/mosfetsmenu.h"
|
||||
#include "displays/menus/motorfeedbackdebugmenu.h"
|
||||
#include "displays/menus/motorstatedebugmenu.h"
|
||||
#include "displays/menus/presetsmenu.h"
|
||||
@ -82,6 +83,9 @@ union X {
|
||||
MainMenu mainMenu;
|
||||
TempomatModeSettingsMenu tempomatModeSettingsMenu;
|
||||
ModesSettingsMenu modesSettingsMenu;
|
||||
#ifdef FEATURE_MOSFETS
|
||||
MosfetsMenu mosfetsMenu;
|
||||
#endif
|
||||
FrontLeftMotorStateDebugMenu frontLeftMotorStateDebugMenu;
|
||||
FrontRightMotorStateDebugMenu frontRightMotorStateDebugMenu;
|
||||
BackLeftMotorStateDebugMenu backLeftMotorStateDebugMenu;
|
||||
@ -221,6 +225,9 @@ template<> decltype(displays.limitsSettingsMenu) &
|
||||
template<> decltype(displays.mainMenu) &getRefByType<decltype(displays.mainMenu)>() { return displays.mainMenu; }
|
||||
template<> decltype(displays.tempomatModeSettingsMenu) &getRefByType<decltype(displays.tempomatModeSettingsMenu)>() { return displays.tempomatModeSettingsMenu; }
|
||||
template<> decltype(displays.modesSettingsMenu) &getRefByType<decltype(displays.modesSettingsMenu)>() { return displays.modesSettingsMenu; }
|
||||
#ifdef FEATURE_MOSFETS
|
||||
template<> decltype(displays.mosfetsMenu) &getRefByType<decltype(displays.mosfetsMenu)>() { return displays.mosfetsMenu; }
|
||||
#endif
|
||||
template<> decltype(displays.frontLeftMotorStateDebugMenu) &getRefByType<decltype(displays.frontLeftMotorStateDebugMenu)>() { return displays.frontLeftMotorStateDebugMenu; }
|
||||
template<> decltype(displays.frontRightMotorStateDebugMenu) &getRefByType<decltype(displays.frontRightMotorStateDebugMenu)>() { return displays.frontRightMotorStateDebugMenu; }
|
||||
template<> decltype(displays.backLeftMotorStateDebugMenu) &getRefByType<decltype(displays.backLeftMotorStateDebugMenu)>() { return displays.backLeftMotorStateDebugMenu; }
|
||||
|
@ -55,6 +55,7 @@ constexpr char TEXT_GRAPHS[] = "Graphs";
|
||||
//constexpr char TEXT_BMS[] = "BMS";
|
||||
constexpr char TEXT_SETTINGS[] = "Settings";
|
||||
constexpr char TEXT_LOCKVEHICLE[] = "Lock vehicle";
|
||||
constexpr char TEXT_MOSFETS[] = "Mosfets";
|
||||
constexpr char TEXT_DEMOS[] = "Demos";
|
||||
constexpr char TEXT_POWEROFF[] = "Poweroff";
|
||||
constexpr char TEXT_REBOOT[] = "Reboot";
|
||||
@ -209,6 +210,12 @@ constexpr char TEXT_TEMPOMATMODESETTINGS[] = "Tempomat mode settings";
|
||||
//constexpr char TEXT_GAMETRAKMODESETTINGS[] = "Gametrak mode settings";
|
||||
//constexpr char TEXT_BACK[] = "Back";
|
||||
|
||||
//MosfetsMenu
|
||||
//constexpr char TEXT_MOSFETS[] = "Mosfets";
|
||||
constexpr char TEXT_MOSFET0[] = "Mosfet0";
|
||||
constexpr char TEXT_MOSFET1[] = "Mosfet1";
|
||||
constexpr char TEXT_MOSFET2[] = "Mosfet2";
|
||||
|
||||
//TempomatModeSettingsMenu
|
||||
//constexpr char TEXT_TEMPOMATMODESETTINGS[] = "Tempomat mode settings";
|
||||
//constexpr char TEXT_SETCONTROLTYPE[] = "Set control type";
|
||||
|
Reference in New Issue
Block a user