From bfee598017a50c5b52a3f731becb5b1eab8157f9 Mon Sep 17 00:00:00 2001 From: Andrey Klimov Date: Sat, 12 May 2018 22:37:08 +0300 Subject: [PATCH] Default DMX_OUT pin for MEGA+5500 is USART1_TX now --- lighthub/dmx.cpp | 4 ++-- lighthub/dmx.h | 4 ++-- lighthub/main.cpp | 37 ++++++++++++++++++++++--------------- lighthub/options.h | 4 ++++ platformio.ini | 8 ++++---- 5 files changed, 34 insertions(+), 23 deletions(-) diff --git a/lighthub/dmx.cpp b/lighthub/dmx.cpp index efe9740..6b5df64 100644 --- a/lighthub/dmx.cpp +++ b/lighthub/dmx.cpp @@ -225,11 +225,11 @@ dmxin.begin(); #endif } -void DMXoutSetup(int channels,int pin) +void DMXoutSetup(int channels) { #ifdef _dmxout #if defined(__AVR__) - DmxSimple.usePin(pin); + DmxSimple.usePin(AVR_DMXOUT_PIN); DmxSimple.maxChannel(channels); #endif diff --git a/lighthub/dmx.h b/lighthub/dmx.h index 9109d11..f78ddb7 100644 --- a/lighthub/dmx.h +++ b/lighthub/dmx.h @@ -42,7 +42,7 @@ e-mail anklimov@gmail.com #include extern DMXESPSerial dmxout; #define DmxWrite dmxout.write -#endif +#endif #if defined(__SAM3X8E__) #include @@ -68,7 +68,7 @@ extern aJsonObject *dmxArr; void DMXput(void); void DMXinSetup(int channels); -void DMXoutSetup(int channels,int pin); +void DMXoutSetup(int channels); void ArtnetSetup(); void DMXCheck(void); int itemCtrl2(char* name,int r,int g, int b, int w); diff --git a/lighthub/main.cpp b/lighthub/main.cpp index 8244dd3..8aebf7f 100644 --- a/lighthub/main.cpp +++ b/lighthub/main.cpp @@ -113,7 +113,10 @@ byte mac[6]; PubSubClient mqttClient(ethClient); -void watchdogSetup(void) {} //Do not remove - strong re-definition WDT Init for DUE +void watchdogSetup(void) { +//Serial.begin(115200); +//Serial.println("Watchdog armed."); +} //Do not remove - strong re-definition WDT Init for DUE // MQTT Callback routine @@ -434,12 +437,14 @@ if((wifiMulti.run() == WL_CONNECTED)) lanStatus=1; case NO_LINK: Serial.println(F("No link")); if (mqttClient.connected()) mqttClient.disconnect(); + lanCheck = millis() + 30000; lanStatus = -10; break; case DHCP_CHECK_RENEW_FAIL: //renewed fail Serial.println(F("Error: renewed fail")); if (mqttClient.connected()) mqttClient.disconnect(); + lanCheck = millis() + 1000; lanStatus = -10; break; @@ -451,6 +456,7 @@ if((wifiMulti.run() == WL_CONNECTED)) lanStatus=1; case DHCP_CHECK_REBIND_FAIL: Serial.println(F("Error: rebind fail")); if (mqttClient.connected()) mqttClient.disconnect(); + lanCheck = millis() + 1000; lanStatus = -10; break; @@ -583,25 +589,25 @@ void cmdFunctionKill(int arg_cnt, char **args) { void applyConfig() { if (!root) return; + #ifdef _dmxin + int itemsCount; + dmxArr = aJson.getObjectItem(root, "dmxin"); + if (dmxArr && (itemsCount = aJson.getArraySize(dmxArr))) { + DMXinSetup(itemsCount * 4); + Serial.print(F("DMX in started. Channels:")); + Serial.println(itemsCount * 4); + } + #endif #ifdef _dmxout int maxChannels; aJsonObject *dmxoutArr = aJson.getObjectItem(root, "dmx"); - if (dmxoutArr && aJson.getArraySize(dmxoutArr) == 2) { - DMXoutSetup(maxChannels = aJson.getArrayItem(dmxoutArr, 1)->valueint, - aJson.getArrayItem(dmxoutArr, 0)->valueint); + if (dmxoutArr && aJson.getArraySize(dmxoutArr) >=1 ) { + DMXoutSetup(maxChannels = aJson.getArrayItem(dmxoutArr, 1)->valueint); + //,aJson.getArrayItem(dmxoutArr, 0)->valueint); Serial.print(F("DMX out started. Channels: ")); Serial.println(maxChannels); } #endif -#ifdef _dmxin - int itemsCount; - dmxArr = aJson.getObjectItem(root, "dmxin"); - if (dmxArr && (itemsCount = aJson.getArraySize(dmxArr))) { - DMXinSetup(itemsCount * 4); - Serial.print(F("DMX in started. Channels:")); - Serial.println(itemsCount * 4); - } -#endif #ifdef _modbus modbusArr = aJson.getObjectItem(root, "modbus"); #endif @@ -987,7 +993,7 @@ void postTransmission() { //#define PIO_SRC_REV commit 8034a6b765229d94a94d90fd08dd9588acf5f3da Author: livello Date: Wed Mar 28 02:35:50 2018 +0300 refactoring void setup_main() { - setupCmdArduino(); + setupCmdArduino(); printFirmwareVersionAndBuildOptions(); #ifdef SD_CARD_INSERTED @@ -1034,7 +1040,7 @@ pinMode(TXEnablePin, OUTPUT); SPI.begin(); while (Ethernet.maintain() == NO_LINK && millis()<3000UL) {delay(500);Serial.print(F("."));} */ -//delay(1000); //Wiz5500 +delay(500); //Wiz5500 //TODO: checkForRemoteSketchUpdate(); } @@ -1118,6 +1124,7 @@ void setupMacAddress() { void setupCmdArduino() { cmdInit(uint32_t(SERIAL_BAUD)); + Serial.println(F(">>>")); cmdAdd("help", cmdFunctionHelp); cmdAdd("save", cmdFunctionSave); cmdAdd("load", cmdFunctionLoad); diff --git a/lighthub/options.h b/lighthub/options.h index 9154f2a..c65fb9c 100644 --- a/lighthub/options.h +++ b/lighthub/options.h @@ -5,6 +5,10 @@ #define TXEnablePin 13 +#ifndef AVR_DMXOUT_PIN +#define AVR_DMXOUT_PIN 3 +#endif + #define T_ATTEMPTS 200 #define IET_TEMP 0 #define IET_ATTEMPTS 1 diff --git a/platformio.ini b/platformio.ini index 29db3bd..0df0f79 100644 --- a/platformio.ini +++ b/platformio.ini @@ -10,11 +10,11 @@ [platformio] src_dir = lighthub env_default = - controllino +; due-5500 +; controllino ; megaatmega2560 -; megaatmega2560-5500 + megaatmega2560-5500 ; due - ; esp8266 [env:due] @@ -117,7 +117,7 @@ board = megaatmega2560 framework = arduino lib_ldf_mode = chain+ build_flags = !echo -n "-DPIO_SRC_REV="$(git rev-parse --short HEAD) -build_flags = -D Wiz5500 +build_flags = -D Wiz5500 -D AVR_DMXOUT_PIN=18 lib_deps = https://github.com/anklimov/Arduino-Temperature-Control-Library.git https://github.com/anklimov/DS2482_OneWire