diff --git a/code/espurna/config/general.h b/code/espurna/config/general.h index 8bd98b62..7c1725d9 100644 --- a/code/espurna/config/general.h +++ b/code/espurna/config/general.h @@ -1080,7 +1080,7 @@ #define IR_BUTTON_COUNT 24 - const unsigned long IR_BUTTON[IR_BUTTON_COUNT][3] PROGMEM = { + const uint32_t IR_BUTTON[IR_BUTTON_COUNT][3] PROGMEM = { { 0xFF906F, IR_BUTTON_MODE_BRIGHTER, 1 }, { 0xFFB847, IR_BUTTON_MODE_BRIGHTER, 0 }, diff --git a/code/espurna/config/hardware.h b/code/espurna/config/hardware.h index 84e4b5dc..75cbe471 100644 --- a/code/espurna/config/hardware.h +++ b/code/espurna/config/hardware.h @@ -2629,6 +2629,11 @@ #define MANUFACTURER "TravisCI" #define DEVICE "Virtual board 02" + // Some buttons - pin 0 + #define BUTTON1_PIN 0 + #define BUTTON1_MODE BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH + #define BUTTON1_RELAY 1 + // A bit of CSE7766 - pin 1 #ifndef CSE7766_SUPPORT #define CSE7766_SUPPORT 1 @@ -2696,6 +2701,11 @@ #define MANUFACTURER "TravisCI" #define DEVICE "Virtual board 03" + // Some buttons - pin 0 + #define BUTTON1_PIN 0 + #define BUTTON1_MODE BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH + #define BUTTON1_RELAY 1 + // MY9231 Light - pins 1,2 #define RELAY_PROVIDER RELAY_PROVIDER_LIGHT #define LIGHT_PROVIDER LIGHT_PROVIDER_MY92XX diff --git a/code/espurna/eeprom.ino b/code/espurna/eeprom.ino index 2e79fcbb..2da7d631 100644 --- a/code/espurna/eeprom.ino +++ b/code/espurna/eeprom.ino @@ -8,7 +8,7 @@ EEPROM MODULE // ----------------------------------------------------------------------------- -bool eepromRotate(bool value) { +void eepromRotate(bool value) { // Enable/disable EEPROM rotation only if we are using more sectors than the // reserved by the memory layout if (EEPROMr.size() > EEPROMr.reserved()) { diff --git a/code/espurna/i2c.ino b/code/espurna/i2c.ino index 8300929a..b614c691 100644 --- a/code/espurna/i2c.ino +++ b/code/espurna/i2c.ino @@ -230,7 +230,7 @@ uint16_t i2c_read_uint16(uint8_t address, uint8_t reg) { void i2c_read_buffer(uint8_t address, uint8_t * buffer, size_t len) { Wire.beginTransmission((uint8_t) address); Wire.requestFrom(address, (uint8_t) len); - for (int i=0; iexpectedPower(0, value); setSetting("pwrRatioC", sensor->getCurrentRatio(0)); } @@ -819,17 +819,17 @@ void _sensorConfigure() { double value; CSE7766Sensor * sensor = (CSE7766Sensor *) _sensors[i]; - if (value = getSetting("pwrExpectedC", 0).toFloat()) { + if ((value = getSetting("pwrExpectedC", 0).toFloat())) { sensor->expectedCurrent(value); setSetting("pwrRatioC", sensor->getCurrentRatio()); } - if (value = getSetting("pwrExpectedV", 0).toInt()) { + if ((value = getSetting("pwrExpectedV", 0).toInt())) { sensor->expectedVoltage(value); setSetting("pwrRatioV", sensor->getVoltageRatio()); } - if (value = getSetting("pwrExpectedP", 0).toInt()) { + if ((value = getSetting("pwrExpectedP", 0).toInt())) { sensor->expectedPower(value); setSetting("pwrRatioP", sensor->getPowerRatio()); } @@ -1111,13 +1111,11 @@ void sensorLoop() { current = _magnitudeProcess(magnitude.type, current); _magnitudes[i].current = current; - unsigned char decimals = _magnitudeDecimals(magnitude.type); - // Debug #if SENSOR_DEBUG { char buffer[64]; - dtostrf(current, 1-sizeof(buffer), decimals, buffer); + dtostrf(current, 1-sizeof(buffer), _magnitudeDecimals(magnitude.type), buffer); DEBUG_MSG_P(PSTR("[SENSOR] %s - %s: %s%s\n"), magnitude.sensor->slot(magnitude.local).c_str(), magnitudeTopic(magnitude.type).c_str(), diff --git a/code/espurna/sensors/BaseSensor.h b/code/espurna/sensors/BaseSensor.h index 68c10cde..f261cd28 100644 --- a/code/espurna/sensors/BaseSensor.h +++ b/code/espurna/sensors/BaseSensor.h @@ -46,19 +46,19 @@ class BaseSensor { virtual void post() {} // Descriptive name of the sensor - virtual String description() {} + virtual String description() = 0; // Address of the sensor (it could be the GPIO or I2C address) - virtual String address(unsigned char index) {} + virtual String address(unsigned char index) = 0; // Descriptive name of the slot # index - virtual String slot(unsigned char index) {}; + virtual String slot(unsigned char index) = 0; // Type for slot # index - virtual unsigned char type(unsigned char index) {} + virtual unsigned char type(unsigned char index) = 0; // Current value for slot # index - virtual double value(unsigned char index) {} + virtual double value(unsigned char index) = 0; // Retrieve current instance configuration virtual void getConfig(JsonObject& root) {}; diff --git a/code/espurna/sensors/DHTSensor.h b/code/espurna/sensors/DHTSensor.h index 2651eadb..24559252 100644 --- a/code/espurna/sensors/DHTSensor.h +++ b/code/espurna/sensors/DHTSensor.h @@ -221,7 +221,7 @@ class DHTSensor : public BaseSensor { } - unsigned long _signal(int usTimeOut, bool state) { + unsigned long _signal(unsigned long usTimeOut, bool state) { unsigned long uSec = 1; while (digitalRead(_gpio) == state) { if (++uSec > usTimeOut) return 0; diff --git a/code/espurna/sensors/EmonSensor.h b/code/espurna/sensors/EmonSensor.h index 527a4bda..4bbfd276 100644 --- a/code/espurna/sensors/EmonSensor.h +++ b/code/espurna/sensors/EmonSensor.h @@ -146,7 +146,7 @@ class EmonSensor : public I2CSensor { #endif } - virtual unsigned int readADC(unsigned char channel) {} + virtual unsigned int readADC(unsigned char channel) = 0; void calculateFactors(unsigned char channel) { @@ -154,8 +154,8 @@ class EmonSensor : public I2CSensor { unsigned int s = 1; unsigned int i = 1; - unsigned int m = s * i; - unsigned int multiplier; + unsigned int m = 1; + unsigned int multiplier = 1; while (m * _current_factor[channel] < 1) { multiplier = m; i = (i == 1) ? 2 : (i == 2) ? 5 : 1; diff --git a/code/espurna/ssdp.ino b/code/espurna/ssdp.ino index 6ecf0f58..56b4dbb2 100644 --- a/code/espurna/ssdp.ino +++ b/code/espurna/ssdp.ino @@ -46,7 +46,7 @@ void ssdpSetup() { char response[strlen_P(_ssdp_template) + 100]; snprintf_P(response, sizeof(response), _ssdp_template, - WiFi.localIP().toString().c_str(), // ip + ip.toString().c_str(), // ip webPort(), // port SSDP_DEVICE_TYPE, // device type getSetting("hostname").c_str(), // friendlyName diff --git a/code/extra_scripts.py b/code/extra_scripts.py index 75fd5f9a..c4946f25 100644 --- a/code/extra_scripts.py +++ b/code/extra_scripts.py @@ -10,7 +10,7 @@ from platformio import util import distutils.spawn -Import("env") +Import("env", "projenv") # ------------------------------------------------------------------------------ # Utils @@ -86,6 +86,9 @@ def check_size(source, target, env): # Hooks # ------------------------------------------------------------------------------ +# Always show warnings for project code +projenv.ProcessUnFlags("-w") + remove_float_support() env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", check_size)