Improved Feature Control
This commit is contained in:
parent
4843cc15c9
commit
01af8cba3c
@ -33,8 +33,12 @@ build_flags =
|
|||||||
-DWIFI_AP_IP_GW=10,0,0,1
|
-DWIFI_AP_IP_GW=10,0,0,1
|
||||||
-DFEATURE_ENABLE_WIFI_CLIENT
|
-DFEATURE_ENABLE_WIFI_CLIENT
|
||||||
-DFEATURE_ENABLE_REMOTE_DEBUG
|
-DFEATURE_ENABLE_REMOTE_DEBUG
|
||||||
|
;-DFEATURE_ENABLE_OLED
|
||||||
;-DFEATURE_ENABLE_CAN
|
;-DFEATURE_ENABLE_CAN
|
||||||
;-DFEATURE_ENABLE_GPS
|
;-DFEATURE_ENABLE_GPS
|
||||||
|
-DPCB_REV=2
|
||||||
|
|
||||||
|
build_type = debug
|
||||||
|
|
||||||
board_build.filesystem = littlefs
|
board_build.filesystem = littlefs
|
||||||
|
|
||||||
|
@ -4,11 +4,25 @@
|
|||||||
#define Q(x) #x
|
#define Q(x) #x
|
||||||
#define QUOTE(x) Q(x)
|
#define QUOTE(x) Q(x)
|
||||||
|
|
||||||
|
#ifndef PCB_REV
|
||||||
|
#error "You must define PCB_REV"
|
||||||
|
#elif PCB_REV == 2
|
||||||
|
#define GPIO_BUTTON D7
|
||||||
|
#define GPIO_LED D8
|
||||||
|
#define GPIO_TRIGGER D6
|
||||||
|
#define GPIO_PUMP D5
|
||||||
|
#elif PCB_REV == 1 || PCB_REV == 3
|
||||||
|
#define GPIO_BUTTON D5
|
||||||
|
#define GPIO_LED D6
|
||||||
|
#define GPIO_TRIGGER D4
|
||||||
|
#define GPIO_PUMP D3
|
||||||
|
#elif PCB_REV >= 4
|
||||||
#define GPIO_BUTTON D4
|
#define GPIO_BUTTON D4
|
||||||
#define GPIO_LED D3
|
#define GPIO_LED D3
|
||||||
#define GPIO_TRIGGER D6
|
#define GPIO_TRIGGER D6
|
||||||
#define GPIO_PUMP D0
|
#define GPIO_PUMP D0
|
||||||
#define GPIO_CS_CAN D8
|
#define GPIO_CS_CAN D8
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef HOST_NAME
|
#ifndef HOST_NAME
|
||||||
#define HOST_NAME "ChainLube_%06X" // Use printf-Formatting - Chip-ID (uin32_t) will be added
|
#define HOST_NAME "ChainLube_%06X" // Use printf-Formatting - Chip-ID (uin32_t) will be added
|
||||||
|
@ -54,6 +54,11 @@ void EEPROM_Process()
|
|||||||
GetPersistence_EEPROM();
|
GetPersistence_EEPROM();
|
||||||
globals.requestEEAction = EE_IDLE;
|
globals.requestEEAction = EE_IDLE;
|
||||||
break;
|
break;
|
||||||
|
case EE_ALL_SAVE:
|
||||||
|
StorePersistence_EEPROM();
|
||||||
|
StoreConfig_EEPROM();
|
||||||
|
globals.requestEEAction = EE_IDLE;
|
||||||
|
break;
|
||||||
case EE_IDLE:
|
case EE_IDLE:
|
||||||
default:
|
default:
|
||||||
globals.requestEEAction = EE_IDLE;
|
globals.requestEEAction = EE_IDLE;
|
||||||
|
@ -19,7 +19,8 @@ typedef enum eEERequest
|
|||||||
EE_CFG_SAVE,
|
EE_CFG_SAVE,
|
||||||
EE_CFG_LOAD,
|
EE_CFG_LOAD,
|
||||||
EE_PDS_SAVE,
|
EE_PDS_SAVE,
|
||||||
EE_PDS_LOAD
|
EE_PDS_LOAD,
|
||||||
|
EE_ALL_SAVE
|
||||||
} tEERequest;
|
} tEERequest;
|
||||||
|
|
||||||
typedef struct Globals_s
|
typedef struct Globals_s
|
||||||
|
@ -81,22 +81,22 @@ void RunLubeApp(uint32_t add_milimeters)
|
|||||||
switch (globals.systemStatus)
|
switch (globals.systemStatus)
|
||||||
{
|
{
|
||||||
case sysStat_Normal:
|
case sysStat_Normal:
|
||||||
strcpy(globals.systemStatustxt, PSTR("Normal"));
|
strcpy_P(globals.systemStatustxt, PSTR("Normal"));
|
||||||
break;
|
break;
|
||||||
case sysStat_Purge:
|
case sysStat_Purge:
|
||||||
strcpy(globals.systemStatustxt, PSTR("Purge"));
|
strcpy_P(globals.systemStatustxt, PSTR("Purge"));
|
||||||
break;
|
break;
|
||||||
case sysStat_Rain:
|
case sysStat_Rain:
|
||||||
strcpy(globals.systemStatustxt, PSTR("Rain"));
|
strcpy_P(globals.systemStatustxt, PSTR("Rain"));
|
||||||
break;
|
break;
|
||||||
case sysStat_Startup:
|
case sysStat_Startup:
|
||||||
strcpy(globals.systemStatustxt, PSTR("Startup"));
|
strcpy_P(globals.systemStatustxt, PSTR("Startup"));
|
||||||
break;
|
break;
|
||||||
case sysStat_Error:
|
case sysStat_Error:
|
||||||
strcpy(globals.systemStatustxt, PSTR("Error"));
|
strcpy_P(globals.systemStatustxt, PSTR("Error"));
|
||||||
break;
|
break;
|
||||||
case sysStat_Shutdown:
|
case sysStat_Shutdown:
|
||||||
strcpy(globals.systemStatustxt, PSTR("Shutdown"));
|
strcpy_P(globals.systemStatustxt, PSTR("Shutdown"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <Wire.h>
|
#include <Wire.h>
|
||||||
|
#ifdef FEATURE_ENABLE_OLED
|
||||||
#include <U8g2lib.h>
|
#include <U8g2lib.h>
|
||||||
|
#endif
|
||||||
#include <ESP8266WiFi.h>
|
#include <ESP8266WiFi.h>
|
||||||
#include <ArduinoOTA.h>
|
#include <ArduinoOTA.h>
|
||||||
|
|
||||||
@ -45,13 +47,15 @@ Globals_t globals;
|
|||||||
uint32_t TravelDistance_highRes;
|
uint32_t TravelDistance_highRes;
|
||||||
volatile uint32_t wheel_pulse = 0;
|
volatile uint32_t wheel_pulse = 0;
|
||||||
|
|
||||||
U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(-1);
|
|
||||||
CRGB leds[1];
|
CRGB leds[1];
|
||||||
|
|
||||||
// Function-Prototypes
|
// Function-Prototypes
|
||||||
void IRAM_ATTR trigger_ISR();
|
void IRAM_ATTR trigger_ISR();
|
||||||
void LED_Process(uint8_t override = false, CRGB setColor = CRGB::White);
|
void LED_Process(uint8_t override = false, CRGB setColor = CRGB::White);
|
||||||
|
#ifdef FEATURE_ENABLE_OLED
|
||||||
|
U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(-1);
|
||||||
void Display_Process();
|
void Display_Process();
|
||||||
|
#endif
|
||||||
void Button_Process();
|
void Button_Process();
|
||||||
void toggleWiFiAP(boolean shutdown = false);
|
void toggleWiFiAP(boolean shutdown = false);
|
||||||
void SystemShutdown();
|
void SystemShutdown();
|
||||||
@ -105,11 +109,11 @@ void setup()
|
|||||||
InitEEPROM();
|
InitEEPROM();
|
||||||
GetConfig_EEPROM();
|
GetConfig_EEPROM();
|
||||||
GetPersistence_EEPROM();
|
GetPersistence_EEPROM();
|
||||||
|
#ifdef FEATURE_ENABLE_OLED
|
||||||
u8x8.begin();
|
u8x8.begin();
|
||||||
u8x8.setFont(u8x8_font_chroma48medium8_r);
|
u8x8.setFont(u8x8_font_chroma48medium8_r);
|
||||||
|
#endif
|
||||||
FastLED.addLeds<WS2811, GPIO_LED, GRB>(leds, 1); // GRB ordering is assumed
|
FastLED.addLeds<WS2811, GPIO_LED, RGB>(leds, 1); // GRB ordering is assumed
|
||||||
|
|
||||||
switch (LubeConfig.SpeedSource)
|
switch (LubeConfig.SpeedSource)
|
||||||
{
|
{
|
||||||
@ -154,7 +158,7 @@ void setup()
|
|||||||
ArduinoOTA.setPort(8266);
|
ArduinoOTA.setPort(8266);
|
||||||
ArduinoOTA.setHostname(globals.DeviceName);
|
ArduinoOTA.setHostname(globals.DeviceName);
|
||||||
ArduinoOTA.setPassword(QUOTE(ADMIN_PASSWORD));
|
ArduinoOTA.setPassword(QUOTE(ADMIN_PASSWORD));
|
||||||
|
#ifdef FEATURE_ENABLE_OLED
|
||||||
ArduinoOTA.onStart([]()
|
ArduinoOTA.onStart([]()
|
||||||
{
|
{
|
||||||
u8x8.clearDisplay();
|
u8x8.clearDisplay();
|
||||||
@ -180,12 +184,14 @@ void setup()
|
|||||||
u8x8.clearDisplay();
|
u8x8.clearDisplay();
|
||||||
u8x8.drawString(0, 0, "OTA-Restart");
|
u8x8.drawString(0, 0, "OTA-Restart");
|
||||||
u8x8.refreshDisplay(); });
|
u8x8.refreshDisplay(); });
|
||||||
|
#endif
|
||||||
ArduinoOTA.begin();
|
ArduinoOTA.begin();
|
||||||
|
|
||||||
|
#ifdef FEATURE_ENABLE_OLED
|
||||||
u8x8.clearDisplay();
|
u8x8.clearDisplay();
|
||||||
u8x8.drawString(0, 0, "KTM ChainLube V1");
|
u8x8.drawString(0, 0, "KTM ChainLube V1");
|
||||||
u8x8.refreshDisplay();
|
u8x8.refreshDisplay();
|
||||||
|
#endif
|
||||||
|
|
||||||
initWebUI();
|
initWebUI();
|
||||||
initGlobals();
|
initGlobals();
|
||||||
@ -218,7 +224,9 @@ void loop()
|
|||||||
|
|
||||||
RunLubeApp(wheelDistance);
|
RunLubeApp(wheelDistance);
|
||||||
EEPROMCyclicPDSTicker.update();
|
EEPROMCyclicPDSTicker.update();
|
||||||
|
#ifdef FEATURE_ENABLE_OLED
|
||||||
Display_Process();
|
Display_Process();
|
||||||
|
#endif
|
||||||
Button_Process();
|
Button_Process();
|
||||||
LED_Process();
|
LED_Process();
|
||||||
EEPROM_Process();
|
EEPROM_Process();
|
||||||
@ -277,7 +285,7 @@ void processCmdRemoteDebug()
|
|||||||
else if (lastCmd == "dumpPDS")
|
else if (lastCmd == "dumpPDS")
|
||||||
RemoteDebug_dumpPersistance();
|
RemoteDebug_dumpPersistance();
|
||||||
else if (lastCmd == "saveEE")
|
else if (lastCmd == "saveEE")
|
||||||
StoreConfig_EEPROM();
|
globals.requestEEAction == EE_ALL_SAVE;
|
||||||
else if (lastCmd == "showdtc")
|
else if (lastCmd == "showdtc")
|
||||||
RemoteDebug_ShowDTCs();
|
RemoteDebug_ShowDTCs();
|
||||||
}
|
}
|
||||||
@ -572,7 +580,7 @@ void LED_Process(uint8_t override, CRGB SetColor)
|
|||||||
}
|
}
|
||||||
FastLED.show();
|
FastLED.show();
|
||||||
}
|
}
|
||||||
|
#ifdef FEATURE_ENABLE_OLED
|
||||||
void Display_Process()
|
void Display_Process()
|
||||||
{
|
{
|
||||||
static tSystem_Status oldSysStatus = sysStat_Startup;
|
static tSystem_Status oldSysStatus = sysStat_Startup;
|
||||||
@ -604,6 +612,7 @@ void Display_Process()
|
|||||||
}
|
}
|
||||||
u8x8.refreshDisplay();
|
u8x8.refreshDisplay();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void Button_Process()
|
void Button_Process()
|
||||||
{
|
{
|
||||||
@ -740,6 +749,7 @@ uint32_t Process_Impulse_WheelSpeed()
|
|||||||
return add_milimeters;
|
return add_milimeters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef FEATURE_ENABLE_REMOTE_DEBUG
|
||||||
void RemoteDebug_ShowDTCs()
|
void RemoteDebug_ShowDTCs()
|
||||||
{
|
{
|
||||||
char buff_timestamp[16]; // Format: DD-hh:mm:ss:xxx
|
char buff_timestamp[16]; // Format: DD-hh:mm:ss:xxx
|
||||||
@ -767,3 +777,4 @@ void RemoteDebug_ShowDTCs()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
Loading…
x
Reference in New Issue
Block a user