mirror of
https://github.com/anklimov/lighthub
synced 2025-12-06 19:59:50 +03:00
SlatusLed & reverting to Ethernet2 wiznet lib
This commit is contained in:
@@ -5,3 +5,4 @@
|
|||||||
-DMODBUS_SERIAL_BAUD=9600
|
-DMODBUS_SERIAL_BAUD=9600
|
||||||
-DOTA
|
-DOTA
|
||||||
-DSYSLOG_ENABLE
|
-DSYSLOG_ENABLE
|
||||||
|
-DWiz5500
|
||||||
|
|||||||
@@ -643,6 +643,259 @@ short Item::cmd2changeActivity(int lastActivity, short defaultCmd)
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
int Ctrl(itemCmd cmd, int suffixCode, char* subItem)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
char stringBuffer[16];
|
||||||
|
bool operation = isNotRetainingStatus() ;
|
||||||
|
|
||||||
|
if ((!subItem || !strlen(subItem)) && strlen(defaultSubItem))
|
||||||
|
subItem = defaultSubItem; /// possible problem here with truncated default
|
||||||
|
|
||||||
|
if (!suffixCode && subItem && strlen(subItem))
|
||||||
|
suffixCode = retrieveCode(&subItem);
|
||||||
|
|
||||||
|
if (!suffixCode && defaultSuffixCode)
|
||||||
|
suffixCode = defaultSuffixCode;
|
||||||
|
|
||||||
|
|
||||||
|
debugSerial<<F("RAM=")<<freeRam()<<F(" Item=")<<itemArr->name<<F(" Sub=")<<subItem<<F(" Suff=")<<suffixCode<<F(" Cmd=")<<cmd.toCmd()<<F(" Par=")<<cmd.toString(stringBuffer, sizeof(stringBuffer));
|
||||||
|
if (!itemArr) return -1;
|
||||||
|
|
||||||
|
|
||||||
|
if (itemType != CH_GROUP )
|
||||||
|
{
|
||||||
|
//Check if subitem is some sort of command
|
||||||
|
int subitemCmd = subitem2cmd(subItem);
|
||||||
|
if (subitemCmd && subitemCmd != getCmd())
|
||||||
|
{
|
||||||
|
debugSerial<<F("Ignored, channel cmd=")<<getCmd()<<endl;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
// Group channel
|
||||||
|
if (! operation) return -1;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int iaddr = getArg();
|
||||||
|
bool chActive =(isActive()>0);
|
||||||
|
|
||||||
|
switch (cmd.toCmd()) {
|
||||||
|
int t;
|
||||||
|
case CMD_TOGGLE:
|
||||||
|
if (chActive) cmd.Cmd(CMD_OFF);
|
||||||
|
else cmd.Cmd(CMD_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMD_RESTORE:
|
||||||
|
if (itemType != CH_GROUP) //individual threating of channels. Ignore restore command for groups
|
||||||
|
switch (t = getCmd()) {
|
||||||
|
case CMD_HALT: //previous command was HALT ?
|
||||||
|
debugSerial << F("Restored from:") << t << endl;
|
||||||
|
if (itemType == CH_THERMO) cmd.Cmd(CMD_AUTO);
|
||||||
|
else cmd.Cmd(CMD_ON); //turning on
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return -3;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CMD_XOFF:
|
||||||
|
if (itemType != CH_GROUP) //individual threating of channels. Ignore restore command for groups
|
||||||
|
switch (t = getCmd()) {
|
||||||
|
case CMD_XON: //previous command was CMD_XON ?
|
||||||
|
debugSerial << F("Turned off from:") << t << endl;
|
||||||
|
cmd.Cmd(CMD_OFF); //turning Off
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
debugSerial<<F("XOFF skipped. Prev cmd:")<<t<<endl;
|
||||||
|
return -3;
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CMD_DN:
|
||||||
|
case CMD_UP:
|
||||||
|
{
|
||||||
|
if (itemType == CH_GROUP) break; ////bug here
|
||||||
|
if (!n || !Par[0]) Par[0] = DEFAULT_INC_STEP;
|
||||||
|
if (cmd == CMD_DN) Par[0]=-Par[0];
|
||||||
|
st.aslong = getVal();
|
||||||
|
int cType=getChanType();
|
||||||
|
|
||||||
|
debugSerial<<"from: h="<<st.h<<" s="<<st.s <<" v="<<st.v<<endl;
|
||||||
|
switch (suffixCode)
|
||||||
|
{
|
||||||
|
case S_NOTFOUND:
|
||||||
|
case S_SET:
|
||||||
|
Par[0] += st.v;
|
||||||
|
if (Par[0]>100) Par[0]=100;
|
||||||
|
if (Par[0]<0) Par[0]=0;
|
||||||
|
n=1;
|
||||||
|
cmd=CMD_NUM;
|
||||||
|
debugSerial<<" to v="<<Par[0]<<endl;
|
||||||
|
break;
|
||||||
|
case S_HUE:
|
||||||
|
case S_SAT:
|
||||||
|
if ( cType != CH_RGB && cType != CH_RGBW && cType != CH_GROUP) return 0; //HUE and SAT only applicable for RGBx channels
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( cType == CH_RGB || cType == CH_RGBW)
|
||||||
|
{
|
||||||
|
bool modified = false;
|
||||||
|
switch (suffixCode)
|
||||||
|
{
|
||||||
|
case S_HSV:
|
||||||
|
Par[0] += st.h;
|
||||||
|
Par[1] += st.s;
|
||||||
|
Par[2] += st.v;
|
||||||
|
modified = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case S_HUE:
|
||||||
|
Par[0] += st.h;
|
||||||
|
Par[1] = st.s;
|
||||||
|
Par[2] = st.v;
|
||||||
|
|
||||||
|
modified = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case S_SAT:
|
||||||
|
Par[1] = st.s + Par[0];
|
||||||
|
Par[0] = st.h;
|
||||||
|
Par[2] = st.v;
|
||||||
|
|
||||||
|
modified = true;
|
||||||
|
break;
|
||||||
|
} //switch suffix
|
||||||
|
|
||||||
|
if (modified)
|
||||||
|
{
|
||||||
|
if (Par[0]>365 ) Par[0]=0;
|
||||||
|
if (Par[0]<0) Par[0]=365;
|
||||||
|
if (Par[1]>100) Par[1]=100;
|
||||||
|
if (Par[1]<0) Par[1]=0;
|
||||||
|
if (Par[2]>100) Par[2]=100;
|
||||||
|
if (Par[2]<0) Par[2]=0;
|
||||||
|
|
||||||
|
n=3;
|
||||||
|
cmd=CMD_NUM;
|
||||||
|
suffixCode=S_SET;
|
||||||
|
debugSerial<<"to: h="<<Par[0]<<" s="<<Par[1] <<" v="<<Par[2]<<endl;
|
||||||
|
} // if modified
|
||||||
|
} //RGBx channel
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CMD_NUM:
|
||||||
|
//if (itemType == CH_GROUP || n!=1) break;
|
||||||
|
if (n!=1) break;
|
||||||
|
int cType=getChanType();
|
||||||
|
if ( cType == CH_RGB || cType == CH_RGBW || cType == CH_GROUP )
|
||||||
|
{
|
||||||
|
st.aslong = getVal();
|
||||||
|
st.hsv_flag=1;
|
||||||
|
switch (suffixCode)
|
||||||
|
{
|
||||||
|
case S_SAT:
|
||||||
|
st.s = Par[0];
|
||||||
|
|
||||||
|
Par[0] = st.h;
|
||||||
|
Par[1] = st.s;
|
||||||
|
Par[2] = st.v;
|
||||||
|
|
||||||
|
n=3;
|
||||||
|
setVal(st.aslong);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case S_HUE:
|
||||||
|
st.h = Par[0];
|
||||||
|
Par[1] = st.s;
|
||||||
|
Par[2] = st.v;
|
||||||
|
|
||||||
|
n=3;
|
||||||
|
setVal(st.aslong);
|
||||||
|
}
|
||||||
|
//if (itemType == CH_GROUP) break;
|
||||||
|
}
|
||||||
|
else // Non-color channel
|
||||||
|
if (suffixCode == S_SAT || suffixCode == S_HUE) return -3;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=========
|
||||||
|
int chActive = item->isActive();
|
||||||
|
bool toExecute = (chActive>0);
|
||||||
|
long st;
|
||||||
|
if (cmd>0 && !suffixCode) suffixCode=S_CMD; //if some known command find, but w/o correct suffix - got it
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
switch(suffixCode)
|
||||||
|
{
|
||||||
|
case S_NOTFOUND:
|
||||||
|
// turn on and set
|
||||||
|
toExecute = true;
|
||||||
|
debugSerial<<F("Forced execution");
|
||||||
|
case S_SET:
|
||||||
|
if (!Parameters || n==0) return 0;
|
||||||
|
item->setVal(st=Parameters[0]); //Store
|
||||||
|
if (!suffixCode)
|
||||||
|
{
|
||||||
|
if (chActive>0 && !st) item->setCmd(CMD_OFF);
|
||||||
|
if (chActive==0 && st) item->setCmd(CMD_ON);
|
||||||
|
item->SendStatus(SEND_COMMAND | SEND_PARAMETERS | SEND_DEFFERED);
|
||||||
|
if (item->getExt()) item->setExt(millis()+maxOnTime); //Extend motor time
|
||||||
|
}
|
||||||
|
else item->SendStatus(SEND_PARAMETERS | SEND_DEFFERED);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
//break;
|
||||||
|
|
||||||
|
case S_CMD:
|
||||||
|
item->setCmd(cmd);
|
||||||
|
switch (cmd)
|
||||||
|
{
|
||||||
|
case CMD_ON:
|
||||||
|
//retrive stored values
|
||||||
|
st = item->getVal();
|
||||||
|
|
||||||
|
|
||||||
|
if (st && (st<MIN_VOLUME) ) st=INIT_VOLUME; // & send
|
||||||
|
item->setVal(st);
|
||||||
|
|
||||||
|
if (st) //Stored smthng
|
||||||
|
{
|
||||||
|
item->SendStatus(SEND_COMMAND | SEND_PARAMETERS);
|
||||||
|
debugSerial<<F("Restored: ")<<st<<endl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
debugSerial<<st<<F(": No stored values - default\n");
|
||||||
|
// Store
|
||||||
|
st=100;
|
||||||
|
item->setVal(st);
|
||||||
|
item->SendStatus(SEND_COMMAND | SEND_PARAMETERS );
|
||||||
|
}
|
||||||
|
if (item->getExt()) item->setExt(millis()+maxOnTime); //Extend motor time
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
case CMD_OFF:
|
||||||
|
item->SendStatus(SEND_COMMAND);
|
||||||
|
if (item->getExt()) item->setExt(millis()+maxOnTime); //Extend motor time
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
} //switch cmd
|
||||||
|
|
||||||
|
break;
|
||||||
|
} //switch suffix
|
||||||
|
debugSerial<<F("Unknown cmd")<<endl;
|
||||||
|
return 0;
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
int Item::Ctrl(short cmd, short n, int *Parameters, int suffixCode, char *subItem) {
|
int Item::Ctrl(short cmd, short n, int *Parameters, int suffixCode, char *subItem) {
|
||||||
bool send = isNotRetainingStatus() ;
|
bool send = isNotRetainingStatus() ;
|
||||||
if ((!subItem || !strlen(subItem)) && strlen(defaultSubItem))
|
if ((!subItem || !strlen(subItem)) && strlen(defaultSubItem))
|
||||||
|
|||||||
@@ -200,6 +200,7 @@ public:
|
|||||||
itemCmd Int(uint32_t i);
|
itemCmd Int(uint32_t i);
|
||||||
itemCmd Cmd(uint8_t i);
|
itemCmd Cmd(uint8_t i);
|
||||||
char * toString(char * Buffer, int bufLen);
|
char * toString(char * Buffer, int bufLen);
|
||||||
|
short toCmd();
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
@@ -219,6 +220,7 @@ class Item
|
|||||||
boolean Setup();
|
boolean Setup();
|
||||||
void Stop();
|
void Stop();
|
||||||
int Ctrl(short cmd, short n=0, int * Parameters=NULL, int suffixCode=0, char* subItem=NULL);
|
int Ctrl(short cmd, short n=0, int * Parameters=NULL, int suffixCode=0, char* subItem=NULL);
|
||||||
|
int Ctrl(itemCmd cmd, int suffixCode=0, char* subItem=NULL);
|
||||||
int Ctrl(char * payload, char * subItem=NULL);
|
int Ctrl(char * payload, char * subItem=NULL);
|
||||||
|
|
||||||
int getArg(short n=0);
|
int getArg(short n=0);
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ Streamlog errorSerial(&debugSerialPort,LOG_ERROR);
|
|||||||
Streamlog infoSerial (&debugSerialPort,LOG_INFO);
|
Streamlog infoSerial (&debugSerialPort,LOG_INFO);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
statusLED LED(ledRED);
|
||||||
|
|
||||||
|
|
||||||
lan_status lanStatus = INITIAL_STATE;
|
lan_status lanStatus = INITIAL_STATE;
|
||||||
@@ -172,6 +172,7 @@ aJsonObject *pollingItem = NULL;
|
|||||||
|
|
||||||
bool owReady = false;
|
bool owReady = false;
|
||||||
bool configOk = false;
|
bool configOk = false;
|
||||||
|
bool configLoaded = false;
|
||||||
int8_t ethernetIdleCount =0;
|
int8_t ethernetIdleCount =0;
|
||||||
int8_t configLocked = 0;
|
int8_t configLocked = 0;
|
||||||
|
|
||||||
@@ -258,6 +259,7 @@ void mqttCallback(char *topic, byte *payload, unsigned int length) {
|
|||||||
debugSerial<<F("OOM!");
|
debugSerial<<F("OOM!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
LED.flash(ledBLUE);
|
||||||
for (int i = 0; i < length; i++)
|
for (int i = 0; i < length; i++)
|
||||||
debugSerial<<((char) payload[i]);
|
debugSerial<<((char) payload[i]);
|
||||||
debugSerial<<endl;
|
debugSerial<<endl;
|
||||||
@@ -351,12 +353,13 @@ lan_status lanLoop() {
|
|||||||
|
|
||||||
switch (lanStatus) {
|
switch (lanStatus) {
|
||||||
case INITIAL_STATE:
|
case INITIAL_STATE:
|
||||||
|
LED.set(ledRED|((configLoaded)?ledBLINK:0));
|
||||||
if (millis() > nextLanCheckTime)
|
if (millis() > nextLanCheckTime)
|
||||||
onInitialStateInitLAN();
|
onInitialStateInitLAN();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HAVE_IP_ADDRESS:
|
case HAVE_IP_ADDRESS:
|
||||||
|
LED.set(ledRED|ledGREEN|((configLoaded)?ledBLINK:0));
|
||||||
if (configLocked) return HAVE_IP_ADDRESS;
|
if (configLocked) return HAVE_IP_ADDRESS;
|
||||||
if (!configOk)
|
if (!configOk)
|
||||||
lanStatus = loadConfigFromHttp(0, NULL);
|
lanStatus = loadConfigFromHttp(0, NULL);
|
||||||
@@ -365,9 +368,7 @@ lan_status lanLoop() {
|
|||||||
|
|
||||||
case IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER:
|
case IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER:
|
||||||
wdt_res();
|
wdt_res();
|
||||||
|
LED.set(ledRED|ledGREEN|((configLoaded)?ledBLINK:0));
|
||||||
|
|
||||||
|
|
||||||
ip_ready_config_loaded_connecting_to_broker();
|
ip_ready_config_loaded_connecting_to_broker();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -387,10 +388,12 @@ lan_status lanLoop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case OPERATION:
|
case OPERATION:
|
||||||
|
LED.set(ledGREEN|((configLoaded)?ledBLINK:0));
|
||||||
if (!mqttClient.connected()) lanStatus = IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER;//2;
|
if (!mqttClient.connected()) lanStatus = IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER;//2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AWAITING_ADDRESS:
|
case AWAITING_ADDRESS:
|
||||||
|
LED.set(ledRED|((configLoaded)?ledBLINK:0));
|
||||||
if (millis() > nextLanCheckTime)
|
if (millis() > nextLanCheckTime)
|
||||||
lanStatus = INITIAL_STATE;//0;
|
lanStatus = INITIAL_STATE;//0;
|
||||||
break;
|
break;
|
||||||
@@ -1061,7 +1064,7 @@ configLocked++;
|
|||||||
udpSyslogArr = aJson.getObjectItem(root, "syslog");
|
udpSyslogArr = aJson.getObjectItem(root, "syslog");
|
||||||
#endif
|
#endif
|
||||||
printConfigSummary();
|
printConfigSummary();
|
||||||
|
configLoaded=true;
|
||||||
configLocked--;
|
configLocked--;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1786,7 +1789,7 @@ void setupCmdArduino() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void loop_main() {
|
void loop_main() {
|
||||||
|
LED.poll();
|
||||||
|
|
||||||
#if defined(M5STACK)
|
#if defined(M5STACK)
|
||||||
// Initialize the M5Stack object
|
// Initialize the M5Stack object
|
||||||
|
|||||||
@@ -630,7 +630,64 @@ itemCmd mapInt(int32_t arg, aJsonObject* map)
|
|||||||
return _itemCmd.Int(arg);
|
return _itemCmd.Int(arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
statusLED::statusLED(uint8_t pattern)
|
||||||
|
{
|
||||||
|
pinMode(pinRED, OUTPUT);
|
||||||
|
pinMode(pinGREEN, OUTPUT);
|
||||||
|
pinMode(pinBLUE, OUTPUT);
|
||||||
|
set(pattern);
|
||||||
|
timestamp=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void statusLED::show (uint8_t pattern)
|
||||||
|
{
|
||||||
|
digitalWrite(pinRED,(pattern & ledRED)?HIGH:LOW );
|
||||||
|
digitalWrite(pinGREEN,(pattern & ledGREEN)?HIGH:LOW);
|
||||||
|
digitalWrite(pinBLUE,(pattern & ledBLUE)?HIGH:LOW);
|
||||||
|
}
|
||||||
|
|
||||||
|
void statusLED::set (uint8_t pattern)
|
||||||
|
{
|
||||||
|
short newStat = pattern & ledParams;
|
||||||
|
|
||||||
|
if (newStat!=(curStat & ledParams))
|
||||||
|
{
|
||||||
|
//if (!(curStat & ledHidden))
|
||||||
|
show(pattern);
|
||||||
|
curStat=newStat | (curStat & ~ledParams);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void statusLED::flash(uint8_t pattern)
|
||||||
|
{
|
||||||
|
show(pattern);
|
||||||
|
curStat|=ledFlash;
|
||||||
|
}
|
||||||
|
|
||||||
|
void statusLED::poll()
|
||||||
|
|
||||||
|
{
|
||||||
|
if (curStat & ledFlash)
|
||||||
|
{
|
||||||
|
curStat&=~ledFlash;
|
||||||
|
show(curStat);
|
||||||
|
}
|
||||||
|
if (millis()>timestamp)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (curStat & ledFASTBLINK) timestamp=millis()+ledFastDelayms;
|
||||||
|
else timestamp=millis()+ledDelayms;
|
||||||
|
|
||||||
|
if (( curStat & ledBLINK) || (curStat & ledFASTBLINK))
|
||||||
|
{
|
||||||
|
curStat^=ledHidden;
|
||||||
|
if (curStat & ledHidden)
|
||||||
|
show(0);
|
||||||
|
else show(curStat);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#pragma message(VAR_NAME_VALUE(debugSerial))
|
#pragma message(VAR_NAME_VALUE(debugSerial))
|
||||||
|
|||||||
@@ -65,3 +65,32 @@ bool isTimeOver(uint32_t timestamp, uint32_t currTime, uint32_t time, uint32_t m
|
|||||||
bool executeCommand(aJsonObject* cmd, int8_t toggle = -1);
|
bool executeCommand(aJsonObject* cmd, int8_t toggle = -1);
|
||||||
bool executeCommand(aJsonObject* cmd, int8_t toggle, itemCmd _itemCmd);
|
bool executeCommand(aJsonObject* cmd, int8_t toggle, itemCmd _itemCmd);
|
||||||
itemCmd mapInt(int32_t arg, aJsonObject* map);
|
itemCmd mapInt(int32_t arg, aJsonObject* map);
|
||||||
|
|
||||||
|
#define ledRED 1
|
||||||
|
#define ledGREEN 2
|
||||||
|
#define ledBLUE 4
|
||||||
|
#define ledBLINK 8
|
||||||
|
#define ledFASTBLINK 16
|
||||||
|
#define ledParams (ledRED | ledGREEN | ledBLUE | ledBLINK | ledFASTBLINK)
|
||||||
|
|
||||||
|
#define ledFlash 32
|
||||||
|
#define ledHidden 64
|
||||||
|
|
||||||
|
#define pinRED 50
|
||||||
|
#define pinGREEN 51
|
||||||
|
#define pinBLUE 52
|
||||||
|
|
||||||
|
#define ledDelayms 1000UL
|
||||||
|
#define ledFastDelayms 300UL
|
||||||
|
|
||||||
|
class statusLED {
|
||||||
|
public:
|
||||||
|
statusLED(uint8_t pattern = 0);
|
||||||
|
void set (uint8_t pattern);
|
||||||
|
void show (uint8_t pattern);
|
||||||
|
void poll();
|
||||||
|
void flash(uint8_t pattern);
|
||||||
|
private:
|
||||||
|
uint8_t curStat;
|
||||||
|
uint32_t timestamp;
|
||||||
|
};
|
||||||
|
|||||||
@@ -23,13 +23,13 @@ default_envs =
|
|||||||
; mega2560-5500
|
; mega2560-5500
|
||||||
|
|
||||||
; LightHub controller HW revision 2.1 and above (Wiznet 5500 CS on pin 53)
|
; LightHub controller HW revision 2.1 and above (Wiznet 5500 CS on pin 53)
|
||||||
; lighthub21
|
lighthub21
|
||||||
|
|
||||||
; Arduino DUE + Ethernet shield Wiznet 5100
|
; Arduino DUE + Ethernet shield Wiznet 5100
|
||||||
; due-5100
|
; due-5100
|
||||||
|
|
||||||
; Generic DUE
|
; Generic DUE
|
||||||
due
|
; due
|
||||||
; Arduino DUE + Ethernet shield Wiznet 5500
|
; Arduino DUE + Ethernet shield Wiznet 5500
|
||||||
; due-5500
|
; due-5500
|
||||||
|
|
||||||
@@ -551,6 +551,7 @@ platform = atmelsam
|
|||||||
framework = arduino
|
framework = arduino
|
||||||
board = due
|
board = due
|
||||||
build_flags = !python get_build_flags.py lighthub21
|
build_flags = !python get_build_flags.py lighthub21
|
||||||
|
;upload_command = arduinoOTA -address 192.168.88.59 -port 65280 -username arduino -password password -b -upload /sketch -sketch $SOURCE
|
||||||
;upload_command = arduinoOTA -address 192.168.88.34 -port 65280 -username arduino -password password -b -upload /sketch -sketch $SOURCE
|
;upload_command = arduinoOTA -address 192.168.88.34 -port 65280 -username arduino -password password -b -upload /sketch -sketch $SOURCE
|
||||||
;upload_protocol = custom
|
;upload_protocol = custom
|
||||||
lib_ignore =
|
lib_ignore =
|
||||||
@@ -562,7 +563,7 @@ lib_ignore =
|
|||||||
WifiManager
|
WifiManager
|
||||||
DmxSimple
|
DmxSimple
|
||||||
httpClient
|
httpClient
|
||||||
Ethernet2
|
Ethernet
|
||||||
Ethernet3
|
Ethernet3
|
||||||
NRFFlashStorage
|
NRFFlashStorage
|
||||||
WebServer
|
WebServer
|
||||||
@@ -580,7 +581,7 @@ lib_deps =
|
|||||||
https://github.com/anklimov/aJson
|
https://github.com/anklimov/aJson
|
||||||
https://github.com/anklimov/CmdArduino
|
https://github.com/anklimov/CmdArduino
|
||||||
https://github.com/anklimov/ModbusMaster
|
https://github.com/anklimov/ModbusMaster
|
||||||
https://github.com/anklimov/Ethernet
|
https://github.com/anklimov/Ethernet2
|
||||||
https://github.com/knolleary/pubsubclient.git
|
https://github.com/knolleary/pubsubclient.git
|
||||||
https://github.com/anklimov/Artnet.git
|
https://github.com/anklimov/Artnet.git
|
||||||
FastLED@3.3.2
|
FastLED@3.3.2
|
||||||
|
|||||||
Reference in New Issue
Block a user