NOIP compilation option & some inits

This commit is contained in:
2024-02-19 16:07:13 +03:00
parent e7dfee51b1
commit 1133883b25
16 changed files with 287 additions and 82 deletions

View File

@@ -0,0 +1,44 @@
-DNOIP
-DDMX_DISABLE
-DMODBUS_DISABLE
-DMBUS_DISABLE
-DOWIRE_DISABLE
-DDHT_DISABLE
-DCOUNTER_DISABLE
-DNO_HOMIE
-DCSSHDC_DISABLE
-DSPILED_DISABLE
-DAC_DISABLE
-DPID_DISABLE
-DMULTIVENT_DISABLE
-DMOTOR_DISABLE
-DENABLE_HWSERIAL1
-DdebugSerialPort=Serial1
#-DFLASH_BASE_ADDRESS
#-DFLASH_DATA_SECTOR
#-DFLASH_PAGE_NUMBER
-D PIO_FRAMEWORK_ARDUINO_ENABLE_MASS_STORAGE
-D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC_AND_MSC
#-DdebugSerialPort=SerialUSB
#-DSerialPortType=USBSerial
#-DSERIAL_BAUD=0
#-DPIO_FRAMEWORK_ARDUINO_ENABLE_CDC
#-DUSBCON
#-DUSBD_VID=0x0483
#-DUSBD_PID=0x5740
#-DUSB_MANUFACTURER="Unknown"
#-DUSB_PRODUCT="\"BLUEPILL_F103C8\""
#-DHAL_PCD_MODULE_ENABLED
#-D USBD_USE_CDC
-D HAL_CAN_MODULE_ENABLED
#HAL_ETH_MODULE_DISABLED
#HAL_SD_MODULE_DISABLED
#HAL_DAC_MODULE_DISABLED
#-DMERCURY_ENABLE

View File

@@ -1,13 +1,18 @@
#include "abstractch.h"
#if not defined (NOIP)
#include <PubSubClient.h>
#endif
#include "utils.h"
#include <aJSON.h>
#include "main.h"
extern lan_status lanStatus;
#if not defined (NOIP)
extern PubSubClient mqttClient;
extern int8_t ethernetIdleCount;
#endif
int abstractCh::publishTopic(const char* topic, long value, const char* subtopic)
{
@@ -25,6 +30,7 @@ int abstractCh::publishTopic(const char* topic, float value, const char* subtopi
int abstractCh::publishTopic(const char* topic, const char * value, const char* subtopic)
{
#if not defined (NOIP)
char addrstr[MQTT_TOPIC_LENGTH];
if (!isNotRetainingStatus()) return 0;
if (topic)
@@ -38,5 +44,6 @@ int abstractCh::publishTopic(const char* topic, const char * value, const char*
return 1;
}
}
#endif
return 0;
};

View File

@@ -1,14 +1,17 @@
#include "abstractin.h"
#include "abstractch.h"
#if not defined (NOIP)
#include <PubSubClient.h>
extern PubSubClient mqttClient;
#endif
#include "utils.h"
#include <aJSON.h>
#include "inputs.h"
#include "main.h"
extern lan_status lanStatus;
extern PubSubClient mqttClient;
int abstractIn::publish(long value, const char* subtopic)
{

View File

@@ -56,7 +56,7 @@ unsigned int startPos;
char openmode ;
public:
flashStream():seekableStream(MAX_STREAM_SIZE){openmode = '\0';};
flashStream():seekableStream(MAX_STREAM_SIZE),pos(0),startPos(0),openmode('\0'){};
void setSize(unsigned int _size);
int open(short fileNum, char mode='\0') ;
virtual int open(String _filename, char mode='\0') override;

View File

@@ -21,7 +21,9 @@ e-mail anklimov@gmail.com
#include "inputs.h"
#include "item.h"
#include "utils.h"
#if not defined (NOIP)
#include <PubSubClient.h>
#endif
#include "main.h"
#include "itemCmd.h"
@@ -37,8 +39,9 @@ e-mail anklimov@gmail.com
#include "Adafruit_MCP23X17.h"
Adafruit_MCP23X17 mcp;
#endif
#if not defined (NOIP)
extern PubSubClient mqttClient;
#endif
extern aJsonObject *root;
extern int8_t ethernetIdleCount;
extern int8_t configLocked;
@@ -966,6 +969,7 @@ void Input::onContactChanged(int newValue) {
} else
#endif
{
#if not defined (NOIP)
char addrstr[MQTT_TOPIC_LENGTH];
strncpy(addrstr,emit->valuestring,sizeof(addrstr));
if (mqttClient.connected() && !ethernetIdleCount)
@@ -980,6 +984,7 @@ if (!strchr(addrstr,'/')) setTopic(addrstr,sizeof(addrstr),T_OUT,emit->valuestri
else if (strlen(rcmd->valuestring))mqttClient.publish(addrstr, rcmd->valuestring, true);
}
}
#endif //NOIP
}
} // emit
if (item && item->type == aJson_String) {
@@ -1011,7 +1016,7 @@ void Input::onAnalogChanged(itemCmd newValue) {
aJsonObject *item = aJson.getObjectItem(inputObj, "item");
aJsonObject *emit = aJson.getObjectItem(inputObj, "emit");
#if not defined (NOIP)
if (emit && emit->type == aJson_String) {
//#ifdef WITH_DOMOTICZ
@@ -1029,7 +1034,7 @@ void Input::onAnalogChanged(itemCmd newValue) {
if (mqttClient.connected() && !ethernetIdleCount)
mqttClient.publish(addrstr, strVal, true);
}
#endif //NOIP
if (item && item->type == aJson_String) {
Item it(item->valuestring);
if (it.isValid()) it.Ctrl(newValue);
@@ -1073,6 +1078,7 @@ readCache::readCache()
{
addr=0;
type=0;
cached_data = 0;
}
uint16_t readCache::analogReadCached (uint8_t _pin)

View File

@@ -40,8 +40,9 @@ e-mail anklimov@gmail.com
#ifndef MODBUS_DISABLE
#include <ModbusMaster.h>
#endif
#if not defined (NOIP)
#include <PubSubClient.h>
#endif
#include "modules/out_spiled.h"
#include "modules/out_ac.h"
#include "modules/out_motor.h"
@@ -70,7 +71,9 @@ short modbusBusy = 0;
//bool isPendedModbusWrites = false;
extern aJsonObject *pollingItem;
#if not defined (NOIP)
extern PubSubClient mqttClient;
#endif
extern int8_t ethernetIdleCount;
extern int8_t configLocked;
extern lan_status lanStatus;
@@ -1470,10 +1473,16 @@ if ((!driver || driver->isAllowed(cmd)) && (!getFlag(FLAG_FREEZED)))
{
thermostatStore tStore;
tStore.asint=getExt();
if (!tStore.timestamp16) mqttClient.publish("/alarmoff/snsr", itemArr->name);
if (!tStore.timestamp16)
{
infoSerial<<F("Cleaning alarm ")<<itemArr->name<<endl;
#if not defined (NOIP)
mqttClient.publish("/alarmoff/snsr", itemArr->name);
#endif
}
tStore.tempX100=cmd.getFloat()*100.; //Save measurement
tStore.timestamp16=millisNZ(8) & 0xFFFF; //And timestamp
//debugSerial<<F(" T:")<<tStore.tempX100<<F(" TS:")<<tStore.timestamp16<<endl;
debugSerial<<F("THERM:")<<itemArr->name<<F(" T:")<<tStore.tempX100<<F(" TS:")<<tStore.timestamp16<<endl;
setExt(tStore.asint);
res=1;
}
@@ -1762,7 +1771,7 @@ int Item::SendStatus(int sendFlags) {
// publish to MQTT - OpenHab Legacy style to
// myhome/s_out/item - mix: value and command
#if not defined (NOIP)
if (mqttClient.connected() && !ethernetIdleCount)
{
if (!subItem )
@@ -1787,6 +1796,7 @@ int Item::SendStatus(int sendFlags) {
}
} //!subItem
}
#endif //NOIP
else
{
setFlag(sendFlags);
@@ -1835,6 +1845,7 @@ int Item::SendStatus(int sendFlags) {
debugSerial<<F("Pub: ")<<addrstr<<F("->")<<valstr<<endl;
#if not defined (NOIP)
if (mqttClient.connected() && !ethernetIdleCount)
{
mqttClient.publish(addrstr, valstr,true);
@@ -1845,6 +1856,7 @@ int Item::SendStatus(int sendFlags) {
setFlag(sendFlags);
return 0;
}
#endif
}
@@ -1890,6 +1902,7 @@ int Item::SendStatus(int sendFlags) {
strncat_P(addrstr, suffix_P[S_CMD], sizeof(addrstr)-1);
debugSerial<<F("Pub: ")<<addrstr<<F("->")<<cmdstr<<endl;
#if not defined (NOIP)
if (mqttClient.connected() && !ethernetIdleCount)
{
mqttClient.publish(addrstr, cmdstr,true);
@@ -1900,6 +1913,7 @@ int Item::SendStatus(int sendFlags) {
setFlag(sendFlags);
return 0;
}
#endif
}
// Send ctrl
if (sendFlags & FLAG_FLAGS)
@@ -1928,6 +1942,7 @@ int Item::SendStatus(int sendFlags) {
strncat_P(addrstr, suffix_P[S_CTRL], sizeof(addrstr)-1);
debugSerial<<F("Pub: ")<<addrstr<<F("->")<<cmdstr<<endl;
#if not defined (NOIP)
if (mqttClient.connected() && !ethernetIdleCount)
{
mqttClient.publish(addrstr, cmdstr,true);
@@ -1938,6 +1953,7 @@ int Item::SendStatus(int sendFlags) {
setFlag(sendFlags);
return 0;
}
#endif
}
return 1;
}

View File

@@ -596,7 +596,7 @@ itemCmd itemCmd::assignFrom(itemCmd from, short chanType)
{
long coldPercent = map (colorT,0,100,100,30);
long hotPercent = map (colorT,0,100,30,100);
int rgbvLevel;
int rgbvLevel = 0;
if (rgbSaturation < 128) { // Using white
param.w=map((127 - rgbSaturation) * rgbValue *hotPercent, 0, 127*255*100, 0, 255);

View File

@@ -76,8 +76,10 @@ WiFiClient ethClient;
#endif
#else
#if not defined (NOIP)
#include <Dhcp.h>
EthernetClient ethClient;
#endif //NOIP
#endif
#if defined(OTA)
@@ -156,7 +158,9 @@ volatile int8_t configLocked = 0;
ModbusMaster node;
#endif
#if not defined (NOIP)
PubSubClient mqttClient(ethClient);
#endif
bool wifiInitialized;
@@ -401,6 +405,7 @@ int intopic;
return 0;
}
#if not defined (NOIP)
void mqttCallback(char *topic, byte *payload, unsigned int length)
{
if (!payload || !length) {debugSerial<<F("\n")<<F("Empty: [")<<topic<<F("]")<<endl;return;}
@@ -489,6 +494,8 @@ void printMACAddress() {
}
}
#endif //NOIP
char* getStringFromConfig(aJsonObject * a, int i)
{
aJsonObject * element = NULL;
@@ -568,7 +575,7 @@ void setupSyslog()
#endif
}
#if not defined (NOIP)
lan_status lanLoop() {
#ifdef NOETHER
@@ -1257,6 +1264,18 @@ if (WiFi.status() == WL_CONNECTED) {
#endif //Ethernet
}
void printCurentLanConfig() {
infoSerial << F("Current LAN config(ip,dns,gw,subnet):");
printIPAddress(Ethernet.localIP());
#if not defined(ESP8266) and not defined(ESP32)
printIPAddress(Ethernet.dnsServerIP());
#endif
printIPAddress(Ethernet.gatewayIP());
printIPAddress(Ethernet.subnetMask());
}
#endif //NOIP
void resetHard() {
#ifdef RESET_PIN
@@ -1275,7 +1294,9 @@ void resetHard() {
int cmdFunctionHelp(int arg_cnt, char **args)
{
printFirmwareVersionAndBuildOptions();
#if not defined (NOIP)
printCurentLanConfig();
#endif
// printFreeRam();
infoSerial<<F("\nUse these commands: 'help' - this text\n"
"'mac de:ad:be:ef:fe:00' set and store MAC-address in EEPROM\n"
@@ -1296,16 +1317,7 @@ int cmdFunctionHelp(int arg_cnt, char **args)
return 200;
}
void printCurentLanConfig() {
infoSerial << F("Current LAN config(ip,dns,gw,subnet):");
printIPAddress(Ethernet.localIP());
#if not defined(ESP8266) and not defined(ESP32)
printIPAddress(Ethernet.dnsServerIP());
#endif
printIPAddress(Ethernet.gatewayIP());
printIPAddress(Ethernet.subnetMask());
}
int cmdFunctionKill(int arg_cnt, char **args) {
for (byte i = 1; i < 20; i++) {
@@ -1453,11 +1465,15 @@ setupSyslog();
printConfigSummary();
configLoaded=true;
#if not defined (NOIP)
if (ethClient.connected())
{
ethClient.stop(); //Refresh MQTT connection
lanStatus=IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER;
}
#else
lanStatus=IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER; ///change
#endif
if (lanStatus == OPERATION_NO_MQTT) lanStatus=IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER;
configLocked--;
@@ -1597,6 +1613,7 @@ infoSerial<<F("Serial debug level:")<<serialDebugLevel<<F("\nSyslog debug level:
return res;
}
#if not defined (NOIP)
int cmdFunctionIp(int arg_cnt, char **args)
{
IPAddress ip0(0, 0, 0, 0);
@@ -1651,31 +1668,6 @@ int cmdFunctionIp(int arg_cnt, char **args)
return 200;
}
int cmdFunctionClearEEPROM(int arg_cnt, char **args){
#ifdef FS_STORAGE
if (SPIFFS.format()) infoSerial<<F("FS Formatted\n");
#endif
if (sysConf.clear()) infoSerial<<F("EEPROM cleared\n");
#if defined(FS_STORAGE)
sysConfStream.open("/config.json",'r');
#else
sysConfStream.open(FN_CONFIG_JSON,'r');
#endif
sysConfStream.putEOF();
sysConfStream.close();
return 200;
}
int cmdFunctionPwd(int arg_cnt, char **args)
{ //char empty[]="";
if (arg_cnt)
sysConf.setMQTTpwd(args[1]);
else sysConf.setMQTTpwd();
infoSerial<<F("MQTT Password updated\n");
return 200;
}
int cmdFunctionOTAPwd(int arg_cnt, char **args)
{ //char empty[]="";
if (arg_cnt)
@@ -1742,6 +1734,34 @@ errorSerial<<F("No IP adress")<<endl;
return 500;
}
#endif //NOIP
int cmdFunctionClearEEPROM(int arg_cnt, char **args){
#ifdef FS_STORAGE
if (SPIFFS.format()) infoSerial<<F("FS Formatted\n");
#endif
if (sysConf.clear()) infoSerial<<F("EEPROM cleared\n");
#if defined(FS_STORAGE)
sysConfStream.open("/config.json",'r');
#else
sysConfStream.open(FN_CONFIG_JSON,'r');
#endif
sysConfStream.putEOF();
sysConfStream.close();
return 200;
}
int cmdFunctionPwd(int arg_cnt, char **args)
{ //char empty[]="";
if (arg_cnt)
sysConf.setMQTTpwd(args[1]);
else sysConf.setMQTTpwd();
infoSerial<<F("MQTT Password updated\n");
return 200;
}
void printBool(bool arg) { (arg) ? infoSerial<<F("+") : infoSerial<<F("-"); }
const char * headerKeys[]={"ETag"};
@@ -1756,6 +1776,8 @@ void headerHandlerProc(String header)
}
}
#if not defined(NOIP)
int loadConfigFromHttp()
{
//macAddress * mac = sysConf.getMAC();
@@ -2013,6 +2035,8 @@ if (!sysConf.getServer(configServer,sizeof(configServer)))
#endif
}
#endif //NOIP
void preTransmission() {
#ifdef CONTROLLINO
// set DE and RE on HIGH
@@ -2313,7 +2337,10 @@ while ((digitalRead(CONFIG_CLEAN_PIN)==LOW) && !needClean)
#endif
// Serial.print("Sig4=");
// Serial.println(FLASH_START[0],HEX);
#if not defined(NOIP)
setupMacAddress(); //тут почему-то не считывается из флэш
#endif
#ifdef _modbus
#ifdef CONTROLLINO
@@ -2334,7 +2361,7 @@ while ((digitalRead(CONFIG_CLEAN_PIN)==LOW) && !needClean)
//owReady = 0;
#if not defined (NOIP)
mqttClient.setCallback(mqttCallback);
//#ifdef _artnet
@@ -2366,6 +2393,7 @@ WiFi.onEvent(WiFiEvent);
infoSerial<<QUOTE(W5500_CS_PIN)<<endl;
#endif
#endif //NOIP
loadConfigFromEEPROM();
}
@@ -2582,6 +2610,7 @@ void publishStat(){
char topic[64];
char intbuf[16];
uint32_t ut = millis()/1000UL;
#if not defined (NOIP)
if (!mqttClient.connected() || ethernetIdleCount) return;
setTopic(topic,sizeof(topic),T_DEV);
strncat_P(topic, stats_P, sizeof(topic)-1);
@@ -2601,7 +2630,7 @@ void publishStat(){
strncat_P(topic, state_P, sizeof(topic)-1);
strncpy_P(intbuf, ready_P, sizeof(intbuf)-1);
mqttClient.publish(topic,intbuf,true);
#endif //NOIP
#ifdef CRYPT
RNG.rand((uint8_t *) &cryptoSalt,sizeof(cryptoSalt));
setTopic(topic,sizeof(topic),T_DEV);
@@ -2613,6 +2642,7 @@ void publishStat(){
#endif
}
#if not defined (NOIP)
void setupMacAddress() {
//Check MAC, stored in NVRAM
@@ -2645,6 +2675,7 @@ if (!sysConf.getMAC()) {
}
printMACAddress();
}
#endif //NOIP
void setupCmdArduino() {
//cmdInit(uint32_t(SERIAL_BAUD));
@@ -2653,15 +2684,19 @@ void setupCmdArduino() {
cmdAdd("help", cmdFunctionHelp);
cmdAdd("save", cmdFunctionSave);
cmdAdd("load", cmdFunctionLoad);
#if not defined (NOIP)
cmdAdd("get", cmdFunctionGet);
#ifndef FLASH_64KB
cmdAdd("mac", cmdFunctionSetMac);
#endif
cmdAdd("ip", cmdFunctionIp);
cmdAdd("otapwd", cmdFunctionOTAPwd);
#endif //NOIP
cmdAdd("kill", cmdFunctionKill);
//cmdAdd("req", cmdFunctionReq);
cmdAdd("ip", cmdFunctionIp);
cmdAdd("pwd", cmdFunctionPwd);
cmdAdd("otapwd", cmdFunctionOTAPwd);
cmdAdd("clear",cmdFunctionClearEEPROM);
cmdAdd("reboot",cmdFunctionReboot);
cmdAdd("log",cmdFunctionLoglevel);
@@ -2683,6 +2718,8 @@ void loop_main() {
wdt_res();
yield();
cmdPoll();
#if not defined (NOIP)
if (lanLoop() > HAVE_IP_ADDRESS) {
mqttClient.loop();
@@ -2704,6 +2741,8 @@ void loop_main() {
#endif
#endif
}
#endif //NOIP
#ifdef _owire
yield();
@@ -2776,6 +2815,8 @@ inputLoop(CHECK_INPUT);
if (initializedListeners) ipmodbusLoop();
#endif
}
#if not defined (NOIP)
void ethernetIdle(void){
ethernetIdleCount++;
wdt_res();
@@ -2785,7 +2826,7 @@ ethernetIdleCount++;
cmdPoll();
ethernetIdleCount--;
};
#endif
void modbusIdle(void) {
@@ -2796,6 +2837,7 @@ void modbusIdle(void) {
yield();
inputLoop(CHECK_INPUT);
#if not defined (NOIP)
if (lanLoop() > HAVE_IP_ADDRESS)
{ // Begin network runners
yield();
@@ -2816,6 +2858,8 @@ void modbusIdle(void) {
#endif
} //End network runners
#endif
#ifdef _dmxin
DMXCheck();
#endif
@@ -3027,14 +3071,18 @@ void thermoLoop(void) {
if (isTimeOver(tStore.timestamp16,millisNZ(8) & 0xFFFF,PERIOD_THERMOSTAT_FAILED >> 8,0xFFFF))
{
errorSerial<<thermoItem->name<<F(" Alarm Expired\n");
#if not defined (NOIP)
mqttClient.publish("/alarm/snsr", thermoItem->name);
#endif
tStore.timestamp16=0; //Stop termostat
thermostat.setExt(tStore.asint);
thermoRelay(thermoPin,HEATER_ERROR);
}
else
{ // Not expired yet
#if not defined(NOIP)
if (curTemp > overHeatTemp) mqttClient.publish("/alarm/ovrht", thermoItem->name);
#endif
if (!active) thermoRelay(thermoPin,HEATER_OFF);//OFF
else if (curTemp < thermoSetting - THERMO_GIST_CELSIUS) thermoRelay(thermoPin,HEATER_HEAT);//ON

View File

@@ -8,13 +8,17 @@
#if defined(__SAM3X8E__)
#include <watchdog.h>
#include <ArduinoHttpClient.h>
#if not defined (NOIP)
#include <ArduinoHttpClient.h>
#endif
//#include "TimerInterrupt_Generic.h"
#endif
#if defined(ARDUINO_ARCH_AVR)
#include "HTTPClient.h"
//#include <ArduinoHttpClient.h>
#if not defined (NOIP)
#include "HTTPClient.h"
#endif
#include <avr/pgmspace.h>
#include <avr/wdt.h>
#endif
@@ -35,7 +39,7 @@
//#define Ethernet WiFi
#endif
#if defined ARDUINO_ARCH_ESP32
#if defined (ARDUINO_ARCH_ESP32)
#include <FS.h> //this needs to be first, or it all crashes and burns...
//#include "SPIFFS.h"
//#include <EEPROM.h>
@@ -58,7 +62,7 @@
#include <ArduinoHttpClient.h>
#endif
#ifdef ARDUINO_ARCH_STM32
#if defined (ARDUINO_ARCH_STM32) and not defined (NOIP)
#include "HttpClient.h"
//#include "UIPEthernet.h"
//#include <NRFFlashStorage.h>
@@ -156,7 +160,8 @@ extern Streamlog errorSerial;
#include <ESP8266mDNS.h>
#endif
#define Ethernet WiFi
#else //Wired connection
#else
#if not defined (NOIP) //Wired connection
#ifdef Wiz5500
#include <Ethernet2.h>
#else
@@ -167,6 +172,7 @@ extern Streamlog errorSerial;
#endif
#endif
#endif
#endif
#ifdef _artnet
@@ -190,7 +196,9 @@ extern Streamlog errorSerial;
#include "Arduino.h"
#include "utils.h"
#include "textconst.h"
#include <PubSubClient.h>
#if not defined (NOIP)
#include <PubSubClient.h>
#endif
#include <SPI.h>
#include <string.h>
#include "aJSON.h"
@@ -233,11 +241,16 @@ typedef union {
bool isNotRetainingStatus();
#if not defined (NOIP)
void mqttCallback(char *topic, byte *payload, unsigned int length);
void printMACAddress();
lan_status lanLoop();
int loadConfigFromHttp();
void onInitialStateInitLAN();
void onMQTTConnect();
void ip_ready_config_loaded_connecting_to_broker();
void setupMacAddress();
#endif
#ifndef OWIRE_DISABLE
void Changed(int i, DeviceAddress addr, float currentTemp);
@@ -274,7 +287,7 @@ void saveFlash(short n, IPAddress& ip);
int ipLoadFromFlash(short n, IPAddress &ip);
*/
int loadConfigFromHttp();
void preTransmission();
@@ -306,8 +319,6 @@ void printConfigSummary();
void setupCmdArduino();
void setupMacAddress();
void printFirmwareVersionAndBuildOptions();
bool IsThermostat(const aJsonObject *item);
@@ -316,14 +327,9 @@ bool disabledDisconnected(const aJsonObject *thermoExtensionArray, int thermoLat
void resetHard();
void onInitialStateInitLAN();
void ip_ready_config_loaded_connecting_to_broker();
void printCurentLanConfig();
void onMQTTConnect();
int16_t attachMaturaTimer();
//void printFreeRam();

View File

@@ -125,10 +125,13 @@ switch (cmd.getCmd()){
switch (cType)
{
case CH_PWM:
{ short k;
{ short k ;
if (authorized || !isProtectedPin(iaddr))
{
analogWrite(iaddr, k=cmd.getPercents255(inverse));
debugSerial<<F("Pin:")<<iaddr<<F("=")<<k<<endl;
}
else errorSerial<<F("Pin:")<<iaddr<<F(" protected")<<endl;
return 1;
}
case CH_RGB:

View File

@@ -43,7 +43,7 @@ if (item) item->setExt(0);
//if (item->getCmd()) item->setFlag(FLAG_COMMAND);
//if (item->itemVal) item->setFlag(FLAG_PARAMETERS);
setStatus(CST_INITIALIZED);
if (item->isActive()>0) ///????
if (item && (item->isActive()>0)) ///????
{
item->setExt(millisNZ());
}

View File

@@ -14,7 +14,7 @@ bool textMode;
uint16_t contentType;
public:
seekableStream(unsigned int size):Stream(),streamSize(size) {};
seekableStream(unsigned int size):Stream(),streamSize(size),textMode(false),contentType(0) {};
virtual bool checkPermissions(char mode) {return true;};
unsigned int getSize() {return streamSize;}
void setSize (unsigned int size) {streamSize = size;};

View File

@@ -28,6 +28,7 @@ Streamlog::Streamlog (SerialPortType * _serialPort, uint8_t _severity, uint8_t
{
serialPort=_serialPort;
severity=_severity;
ledPattern=_ledPattern;
}
#endif
/*

View File

@@ -10,7 +10,7 @@ extern aJsonObject * topics;
class templateStream : public Stream
{
public:
templateStream(char *s, short sfx=0) : str(s), pos(0), val(NULL), valpos(0), bucket(0),suffix(sfx) { }
templateStream(char *s, short sfx=0) : str(s), pos(0), val(NULL), valpos(0), bucket(0),suffix(sfx) {buffer[0]='\0'; }
// Stream methods
virtual int available() { return str[pos]; }

View File

@@ -25,7 +25,11 @@ e-mail anklimov@gmail.com
#include "main.h"
#include "item.h"
#if not defined (NOIP)
#include <PubSubClient.h>
extern PubSubClient mqttClient;
extern int8_t ethernetIdleCount;
#endif
#include <HardwareSerial.h>
#include "templateStr.h"
@@ -38,10 +42,6 @@ e-mail anklimov@gmail.com
#endif
extern int8_t configLocked;
extern int8_t ethernetIdleCount;
extern PubSubClient mqttClient;
#if defined(__SAM3X8E__) || defined(ARDUINO_ARCH_STM32)
#include <malloc.h>
@@ -742,12 +742,13 @@ switch (cmdType)
//strncpy(addrstr,emit->valuestring,sizeof(addrstr));
#if not defined (NOIP)
if (mqttClient.connected() && !ethernetIdleCount)
{
if (!strchr(addrstr,'/')) setTopic(addrstr,sizeof(addrstr),T_OUT,emit->valuestring);
mqttClient.publish(addrstr, emitCommand , true);
}
#endif
} // emit
if (item && item->type == aJson_String) {
@@ -827,7 +828,7 @@ serialParamType str2SerialParam(char * str)
{
//debugSerial<< i << F(" ") << pgm_read_word_near(&serialModes_P[i].mode)<< endl;
if (sizeof(serialModesNum)==4)
if (sizeof(serialParamType)==4)
return pgm_read_dword_near(&serialModes_P[i].mode);
else
return pgm_read_word_near(&serialModes_P[i].mode);

View File

@@ -911,6 +911,76 @@ lib_deps =
monitor_speed = 115200
[env:stm32-noip]
platform = ststm32
board = genericSTM32F103RB
;olimexino
board_build.mcu = stm32f103rbt6
;STM32Duino
;generic_stm32f103r
;board_build.ldscript=ldscripts\stm32f103rb_bootloader.ld
board_build.f_cpu = 72000000L
framework = arduino
;board_build.core = maple
;board_build.core = maple // STM32Duino (DEFAULT) // STM32L0
;board_build.core = stm32lo
;monitor_dtr = 1
upload_protocol = serial
;debug_tool = cmsis-dap
build_flags = !python get_build_flags.py stm32-noip
lib_ignore =
;DS2482_OneWire //UNCOMMENT for software 1-wire driver
DHT sensor library for ESPx
DmxDue
DueFlashStorage
ESPDMX
ESP-Dmx
WifiManager
FastLED
UIPEthernet
DMXSerial
DmxSimple
httpClient
SD
PrintEx
Ethernet2
Artnet
Ethernet3
WebServer
ESP_EEPROM
DHT sensor library
DallasTemperature
Adafruit Unified Sensor
DS2482_OneWire
ModbusMaster
Syslog
NRFFlashStorage
ClosedCube HDC1080
SparkFun CCS811 Arduino Library
M5Stack
ArduinoOTA
lib_deps =
EEPROM
https://github.com/anklimov/aJson
https://github.com/anklimov/CmdArduino
; ArduinoHttpClient
; https://github.com/anklimov/pubsubclient.git
Streaming
; Ethernet
Adafruit NeoPixel
Adafruit MCP23017 Arduino Library
Adafruit BusIO
SPI
br3ttb/PID@^1.2.1
; ArduinoMDNS
https://github.com/khoih-prog/TimerInterrupt_Generic.git
;https://github.com/anklimov/ModbusMaster
monitor_speed = 115200
; Run the following command to upload with this environment
; pio run -e Upload_ISP -t upload
[env:Upload_ISP]