Fixed compiler warnings. Added alpha-version of FSUpdater, not functioning yet.
This commit is contained in:
67
src/main.cpp
67
src/main.cpp
@@ -1,8 +1,13 @@
|
||||
/* Wemos8266RelaysLedDisplay/main.cpp
|
||||
* (C) Dirk Jahnke <dirk.jahnke@mailbox.org>
|
||||
*/
|
||||
|
||||
#define COMPDATE __DATE__ __TIME__
|
||||
#define APP_VERSION "0.2.18"
|
||||
// Following defines are set by build environment using -D parameter
|
||||
// #define APP_VERSION "0.2.18"
|
||||
// #define FS_UPDATE_BASE_URL "http://ota.iotjunkie.org/fc_client"
|
||||
// #define FS_UPDATE_AUTH_USER "fcclient"
|
||||
// #define FS_UPDATE_AUTH_PASSWORD "63Gs59PWveT6uQSh"
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <IOTAppStory.h>
|
||||
@@ -15,11 +20,12 @@
|
||||
#include "Relays.h"
|
||||
#include "Clock.h"
|
||||
#include "Display.h"
|
||||
#include "FSUpdater.h"
|
||||
|
||||
// Button pin on the esp for selecting modes. 0 for Generic devices!
|
||||
#define MODEBUTTON D3
|
||||
#define RELAY1_PIN D1
|
||||
#define RELAY2_PIN D2
|
||||
//#define RELAY1_PIN D1
|
||||
//#define RELAY2_PIN D2
|
||||
#define DEBUG_RELAYS false
|
||||
#define DEBUG_DISPLAY false
|
||||
#define STARTUP1_ANIMATION_DURATION_ms 2000
|
||||
@@ -38,21 +44,36 @@ Display D(&realTime, &modelTime);
|
||||
|
||||
WiFiUDP ntpUDP;
|
||||
NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", 3600, 60000);
|
||||
FSUpdater fsUpdater(FS_UPDATE_BASE_URL, APP_VERSION, FS_UPDATE_AUTH_USER, FS_UPDATE_AUTH_PASSWORD);
|
||||
|
||||
#define mkstring(x) #x
|
||||
|
||||
// Field default values
|
||||
char *clockName = "FREMO";
|
||||
char *clockSpeed_modelMsPerRealSec_String = "250";
|
||||
char *relay1Pin_String = mkstring(RELAY1_PIN);
|
||||
char *relay2Pin_String = mkstring(RELAY2_PIN);
|
||||
int relay1Pin = RELAY1_PIN, relay2Pin = RELAY2_PIN;
|
||||
char *relayHoldTime_ms_String = "200";
|
||||
char *relayMinOffTime_ms_String = "100";
|
||||
|
||||
#define CLOCK_NAME_LEN 8
|
||||
#define CLOCK_SPEED_LEN 4
|
||||
#define RELAY_PIN_LEN 2
|
||||
#define RELAY_TIMING_LEN 3
|
||||
#define CLOCK_NAME_DISPLAY_TIMING_LEN 5
|
||||
static char def_clockName[CLOCK_NAME_LEN+1] = "FREMO";
|
||||
static char def_clockSpeed_modelMsPerRealSec_String[CLOCK_SPEED_LEN+1] = "250";
|
||||
static char def_relay1Pin_String[RELAY_PIN_LEN+1] = mkstring(D1);
|
||||
static char def_relay2Pin_String[RELAY_PIN_LEN+1] = mkstring(D2);
|
||||
static int relay1Pin = D1, relay2Pin = D2;
|
||||
static char def_relayHoldTime_ms_String[RELAY_TIMING_LEN+1] = "200";
|
||||
static char def_relayMinOffTime_ms_String[RELAY_TIMING_LEN+1] = "100";
|
||||
// Clock Display Config Parameter
|
||||
static char * displayClockNameEvery_ms_String = "16000";
|
||||
static char * displayClockNameDuration_ms_String = "1200";
|
||||
static char def_displayClockNameEvery_ms_String[CLOCK_NAME_DISPLAY_TIMING_LEN+1] = "16000";
|
||||
static char def_displayClockNameDuration_ms_String[CLOCK_NAME_DISPLAY_TIMING_LEN+1] = "1200";
|
||||
|
||||
static char *clockName = def_clockName;
|
||||
static char *clockSpeed_modelMsPerRealSec_String = def_clockSpeed_modelMsPerRealSec_String;
|
||||
static char *relay1Pin_String = def_relay1Pin_String;
|
||||
static char *relay2Pin_String = def_relay2Pin_String;
|
||||
static char *relayHoldTime_ms_String = def_relayHoldTime_ms_String;
|
||||
static char *relayMinOffTime_ms_String = def_relayMinOffTime_ms_String;
|
||||
static char *displayClockNameEvery_ms_String = def_displayClockNameEvery_ms_String;
|
||||
static char *displayClockNameDuration_ms_String = def_displayClockNameDuration_ms_String;
|
||||
|
||||
|
||||
void setupIAS(void) {
|
||||
#if defined ESP8266
|
||||
@@ -69,14 +90,14 @@ void setupIAS(void) {
|
||||
IAS.preSetAutoUpdate(true);
|
||||
|
||||
// define fields
|
||||
IAS.addField(clockName, "Clock Name", 8, 'T');
|
||||
IAS.addField(clockSpeed_modelMsPerRealSec_String, "Model MilliSec per Real Sec", 8, 'N');
|
||||
IAS.addField(displayClockNameEvery_ms_String, "Display clock name every (ms)", 5, 'N');
|
||||
IAS.addField(displayClockNameDuration_ms_String, "Display clock name duration (ms)", 5, 'N');
|
||||
IAS.addField(relay1Pin_String, "Pin Relay 1", 2, 'P');
|
||||
IAS.addField(relay2Pin_String, "Pin Relay 2", 2, 'P');
|
||||
IAS.addField(relayHoldTime_ms_String, "Relay hold time (ms)", 3, 'N');
|
||||
IAS.addField(relayMinOffTime_ms_String, "Relay min off time (ms)", 3, 'N');
|
||||
IAS.addField(clockName, "Clock Name", CLOCK_NAME_LEN, 'T');
|
||||
IAS.addField(clockSpeed_modelMsPerRealSec_String, "Model MilliSec per Real Sec", CLOCK_SPEED_LEN, 'N');
|
||||
IAS.addField(displayClockNameEvery_ms_String, "Display clock name every (ms)", CLOCK_NAME_DISPLAY_TIMING_LEN, 'N');
|
||||
IAS.addField(displayClockNameDuration_ms_String, "Display clock name duration (ms)", CLOCK_NAME_DISPLAY_TIMING_LEN, 'N');
|
||||
IAS.addField(relay1Pin_String, "Pin Relay 1", RELAY_PIN_LEN, 'P');
|
||||
IAS.addField(relay2Pin_String, "Pin Relay 2", RELAY_PIN_LEN, 'P');
|
||||
IAS.addField(relayHoldTime_ms_String, "Relay hold time (ms)", RELAY_TIMING_LEN, 'N');
|
||||
IAS.addField(relayMinOffTime_ms_String, "Relay min off time (ms)", RELAY_TIMING_LEN, 'N');
|
||||
|
||||
IAS.onModeButtonShortPress([]() {
|
||||
Serial.println(F(" If mode button is released, I will enter firmware update mode."));
|
||||
@@ -176,7 +197,7 @@ static unsigned long lastTimeOutput_ms = 0;
|
||||
|
||||
void loop(void)
|
||||
{
|
||||
static int lastMinutes = 0;
|
||||
static unsigned int lastMinutes = 0;
|
||||
|
||||
static unsigned long firstLoop_ts = 0;
|
||||
if (firstLoop_ts == 0) firstLoop_ts = millis();
|
||||
@@ -213,7 +234,7 @@ void loop(void)
|
||||
|
||||
D.loop();
|
||||
|
||||
// toggle relays
|
||||
// toggle relays on minute change
|
||||
if (lastMinutes != realTime.getMinutes()) {
|
||||
R.toggle();
|
||||
lastMinutes = realTime.getMinutes();
|
||||
|
||||
Reference in New Issue
Block a user