Compare commits
2 Commits
4843cc15c9
...
a6ae30d655
Author | SHA1 | Date | |
---|---|---|---|
a6ae30d655 | |||
01af8cba3c |
@ -33,8 +33,12 @@ build_flags =
|
||||
-DWIFI_AP_IP_GW=10,0,0,1
|
||||
-DFEATURE_ENABLE_WIFI_CLIENT
|
||||
-DFEATURE_ENABLE_REMOTE_DEBUG
|
||||
;-DFEATURE_ENABLE_OLED
|
||||
;-DFEATURE_ENABLE_CAN
|
||||
;-DFEATURE_ENABLE_GPS
|
||||
-DPCB_REV=2
|
||||
|
||||
build_type = debug
|
||||
|
||||
board_build.filesystem = littlefs
|
||||
|
||||
|
@ -4,11 +4,25 @@
|
||||
#define Q(x) #x
|
||||
#define QUOTE(x) Q(x)
|
||||
|
||||
#define GPIO_BUTTON D4
|
||||
#define GPIO_LED D3
|
||||
#define GPIO_TRIGGER D6
|
||||
#define GPIO_PUMP D0
|
||||
#define GPIO_CS_CAN D8
|
||||
#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_LED D3
|
||||
#define GPIO_TRIGGER D6
|
||||
#define GPIO_PUMP D0
|
||||
#define GPIO_CS_CAN D8
|
||||
#endif
|
||||
|
||||
#ifndef HOST_NAME
|
||||
#define HOST_NAME "ChainLube_%06X" // Use printf-Formatting - Chip-ID (uin32_t) will be added
|
||||
|
@ -54,6 +54,11 @@ void EEPROM_Process()
|
||||
GetPersistence_EEPROM();
|
||||
globals.requestEEAction = EE_IDLE;
|
||||
break;
|
||||
case EE_ALL_SAVE:
|
||||
StorePersistence_EEPROM();
|
||||
StoreConfig_EEPROM();
|
||||
globals.requestEEAction = EE_IDLE;
|
||||
break;
|
||||
case EE_IDLE:
|
||||
default:
|
||||
globals.requestEEAction = EE_IDLE;
|
||||
|
@ -19,7 +19,8 @@ typedef enum eEERequest
|
||||
EE_CFG_SAVE,
|
||||
EE_CFG_LOAD,
|
||||
EE_PDS_SAVE,
|
||||
EE_PDS_LOAD
|
||||
EE_PDS_LOAD,
|
||||
EE_ALL_SAVE
|
||||
} tEERequest;
|
||||
|
||||
typedef struct Globals_s
|
||||
|
@ -81,22 +81,22 @@ void RunLubeApp(uint32_t add_milimeters)
|
||||
switch (globals.systemStatus)
|
||||
{
|
||||
case sysStat_Normal:
|
||||
strcpy(globals.systemStatustxt, PSTR("Normal"));
|
||||
strcpy_P(globals.systemStatustxt, PSTR("Normal"));
|
||||
break;
|
||||
case sysStat_Purge:
|
||||
strcpy(globals.systemStatustxt, PSTR("Purge"));
|
||||
strcpy_P(globals.systemStatustxt, PSTR("Purge"));
|
||||
break;
|
||||
case sysStat_Rain:
|
||||
strcpy(globals.systemStatustxt, PSTR("Rain"));
|
||||
strcpy_P(globals.systemStatustxt, PSTR("Rain"));
|
||||
break;
|
||||
case sysStat_Startup:
|
||||
strcpy(globals.systemStatustxt, PSTR("Startup"));
|
||||
strcpy_P(globals.systemStatustxt, PSTR("Startup"));
|
||||
break;
|
||||
case sysStat_Error:
|
||||
strcpy(globals.systemStatustxt, PSTR("Error"));
|
||||
strcpy_P(globals.systemStatustxt, PSTR("Error"));
|
||||
break;
|
||||
case sysStat_Shutdown:
|
||||
strcpy(globals.systemStatustxt, PSTR("Shutdown"));
|
||||
strcpy_P(globals.systemStatustxt, PSTR("Shutdown"));
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
#include <Arduino.h>
|
||||
#include <Wire.h>
|
||||
#ifdef FEATURE_ENABLE_OLED
|
||||
#include <U8g2lib.h>
|
||||
#endif
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <ArduinoOTA.h>
|
||||
|
||||
@ -45,13 +47,15 @@ Globals_t globals;
|
||||
uint32_t TravelDistance_highRes;
|
||||
volatile uint32_t wheel_pulse = 0;
|
||||
|
||||
U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(-1);
|
||||
CRGB leds[1];
|
||||
|
||||
// Function-Prototypes
|
||||
void IRAM_ATTR trigger_ISR();
|
||||
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();
|
||||
#endif
|
||||
void Button_Process();
|
||||
void toggleWiFiAP(boolean shutdown = false);
|
||||
void SystemShutdown();
|
||||
@ -105,11 +109,11 @@ void setup()
|
||||
InitEEPROM();
|
||||
GetConfig_EEPROM();
|
||||
GetPersistence_EEPROM();
|
||||
|
||||
#ifdef FEATURE_ENABLE_OLED
|
||||
u8x8.begin();
|
||||
u8x8.setFont(u8x8_font_chroma48medium8_r);
|
||||
|
||||
FastLED.addLeds<WS2811, GPIO_LED, GRB>(leds, 1); // GRB ordering is assumed
|
||||
#endif
|
||||
FastLED.addLeds<WS2811, GPIO_LED, RGB>(leds, 1); // GRB ordering is assumed
|
||||
|
||||
switch (LubeConfig.SpeedSource)
|
||||
{
|
||||
@ -154,7 +158,7 @@ void setup()
|
||||
ArduinoOTA.setPort(8266);
|
||||
ArduinoOTA.setHostname(globals.DeviceName);
|
||||
ArduinoOTA.setPassword(QUOTE(ADMIN_PASSWORD));
|
||||
|
||||
#ifdef FEATURE_ENABLE_OLED
|
||||
ArduinoOTA.onStart([]()
|
||||
{
|
||||
u8x8.clearDisplay();
|
||||
@ -180,12 +184,14 @@ void setup()
|
||||
u8x8.clearDisplay();
|
||||
u8x8.drawString(0, 0, "OTA-Restart");
|
||||
u8x8.refreshDisplay(); });
|
||||
|
||||
#endif
|
||||
ArduinoOTA.begin();
|
||||
|
||||
#ifdef FEATURE_ENABLE_OLED
|
||||
u8x8.clearDisplay();
|
||||
u8x8.drawString(0, 0, "KTM ChainLube V1");
|
||||
u8x8.refreshDisplay();
|
||||
#endif
|
||||
|
||||
initWebUI();
|
||||
initGlobals();
|
||||
@ -218,7 +224,9 @@ void loop()
|
||||
|
||||
RunLubeApp(wheelDistance);
|
||||
EEPROMCyclicPDSTicker.update();
|
||||
#ifdef FEATURE_ENABLE_OLED
|
||||
Display_Process();
|
||||
#endif
|
||||
Button_Process();
|
||||
LED_Process();
|
||||
EEPROM_Process();
|
||||
@ -277,7 +285,7 @@ void processCmdRemoteDebug()
|
||||
else if (lastCmd == "dumpPDS")
|
||||
RemoteDebug_dumpPersistance();
|
||||
else if (lastCmd == "saveEE")
|
||||
StoreConfig_EEPROM();
|
||||
globals.requestEEAction == EE_ALL_SAVE;
|
||||
else if (lastCmd == "showdtc")
|
||||
RemoteDebug_ShowDTCs();
|
||||
}
|
||||
@ -572,7 +580,7 @@ void LED_Process(uint8_t override, CRGB SetColor)
|
||||
}
|
||||
FastLED.show();
|
||||
}
|
||||
|
||||
#ifdef FEATURE_ENABLE_OLED
|
||||
void Display_Process()
|
||||
{
|
||||
static tSystem_Status oldSysStatus = sysStat_Startup;
|
||||
@ -604,6 +612,7 @@ void Display_Process()
|
||||
}
|
||||
u8x8.refreshDisplay();
|
||||
}
|
||||
#endif
|
||||
|
||||
void Button_Process()
|
||||
{
|
||||
@ -740,6 +749,7 @@ uint32_t Process_Impulse_WheelSpeed()
|
||||
return add_milimeters;
|
||||
}
|
||||
|
||||
#ifdef FEATURE_ENABLE_REMOTE_DEBUG
|
||||
void RemoteDebug_ShowDTCs()
|
||||
{
|
||||
char buff_timestamp[16]; // Format: DD-hh:mm:ss:xxx
|
||||
@ -767,3 +777,4 @@ void RemoteDebug_ShowDTCs()
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
@ -98,20 +98,24 @@ String processor(const String &var)
|
||||
}
|
||||
if (var == "SHOW_IMPULSE_SETTINGS")
|
||||
return LubeConfig.SpeedSource == SOURCE_IMPULSE ? "" : "hidden";
|
||||
#ifdef FEATURE_ENABLE_CAN
|
||||
if (var == "SHOW_CAN_SETTINGS")
|
||||
#ifdef FEATURE_ENABLE_CAN
|
||||
return LubeConfig.SpeedSource == SOURCE_CAN ? "" : "hidden";
|
||||
#else
|
||||
return "hidden";
|
||||
#endif
|
||||
#ifdef FEATURE_ENABLE_GPS
|
||||
if (var == "SHOW_GPS_SETTINGS")
|
||||
#ifdef FEATURE_ENABLE_GPS
|
||||
return LubeConfig.SpeedSource == SOURCE_GPS ? "" : "hidden";
|
||||
#else
|
||||
return "hidden";
|
||||
#endif
|
||||
if (var == "SHOW_DTC_TABLE")
|
||||
return globals.systemStatus == sysStat_Error ? "" : "hidden";
|
||||
|
||||
if (var == "DTC_TABLE")
|
||||
{
|
||||
String temp;
|
||||
String temp = "";
|
||||
char buff_timestamp[16]; // Format: DD-hh:mm:ss:xxx
|
||||
|
||||
for (uint32_t i = 0; i < MAX_DTC_STORAGE; i++)
|
||||
@ -125,7 +129,7 @@ String processor(const String &var)
|
||||
DTCStorage[i].timestamp / 1000 % 60, // Seconds
|
||||
DTCStorage[i].timestamp % 1000); // milliseconds
|
||||
|
||||
temp = "<tr><td>" + String(buff_timestamp);
|
||||
temp = temp + "<tr><td>" + String(buff_timestamp);
|
||||
temp = temp + "</td><td>" + String(DTCStorage[i].Number) + "</td><td>";
|
||||
|
||||
if (DTCStorage[i].active == DTC_ACTIVE)
|
||||
|
Loading…
x
Reference in New Issue
Block a user