DLED Stability Issue Bugfix
This commit is contained in:
parent
7dc5950b6a
commit
b89c15434e
@ -196,7 +196,7 @@ const float scalingFactor = 0.01; // Scaling factor to control the impact of d
|
|||||||
#ifdef STATUSLED
|
#ifdef STATUSLED
|
||||||
const int StatLedPin = 13; //Pin for Status LED
|
const int StatLedPin = 13; //Pin for Status LED
|
||||||
const int StatLedErrDel[] = {1000,10}; //Blink Timing for Status LED Error (no connection)
|
const int StatLedErrDel[] = {1000,10}; //Blink Timing for Status LED Error (no connection)
|
||||||
const int DLEDSTATUSLED = 1; //set to 1 to use Digital LED instead. set StatLedPin to the according LED number in the chain.
|
const int DLEDSTATUSLED = 0; //set to 1 to use Digital LED instead. set StatLedPin to the according LED number in the chain.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -221,7 +221,7 @@ If you want the LED to be off just define {0,0,0}, .
|
|||||||
If you use STATUSLED, it will also take the colors of your definition here.
|
If you use STATUSLED, it will also take the colors of your definition here.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define DLED
|
//#define DLED
|
||||||
#ifdef DLED
|
#ifdef DLED
|
||||||
#include <Adafruit_NeoPixel.h>
|
#include <Adafruit_NeoPixel.h>
|
||||||
|
|
||||||
@ -465,7 +465,7 @@ void loop() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DLED
|
#ifdef DLED
|
||||||
updateDLEDs(); //read Encoders & send data
|
//updateDLEDs(); //read Encoders & send data
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -475,6 +475,7 @@ void updateDLEDs(){
|
|||||||
for(int i = 0; i< DLEDcount; i++){
|
for(int i = 0; i< DLEDcount; i++){
|
||||||
controlDLED(i, DLEDstate[i]);
|
controlDLED(i, DLEDstate[i]);
|
||||||
//update all DLEDs regulary
|
//update all DLEDs regulary
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -579,12 +580,17 @@ void comalive(){
|
|||||||
StatLedErr(500,200);
|
StatLedErr(500,200);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
|
||||||
|
if(DLEDSTATUSLED == 1){
|
||||||
#ifdef DLED
|
#ifdef DLED
|
||||||
controlDLED(StatLedPin, 1);
|
controlDLED(StatLedPin, 1);
|
||||||
#endif
|
#endif
|
||||||
#ifndef DLED
|
}
|
||||||
|
else{
|
||||||
digitalWrite(StatLedPin, HIGH);
|
digitalWrite(StatLedPin, HIGH);
|
||||||
#endif
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -831,8 +837,15 @@ void commandReceived(char cmd, uint16_t io, uint16_t value){
|
|||||||
#ifdef DLED
|
#ifdef DLED
|
||||||
if(cmd == 'D'){
|
if(cmd == 'D'){
|
||||||
DLEDstate[io] = value;
|
DLEDstate[io] = value;
|
||||||
controlDLED(io,value);
|
updateDLEDs();
|
||||||
|
//controlDLED(io,value);
|
||||||
lastcom=millis();
|
lastcom=millis();
|
||||||
|
#ifdef debug
|
||||||
|
Serial.print("DLED:");
|
||||||
|
Serial.print(io);
|
||||||
|
Serial.print(" State:");
|
||||||
|
Serial.println(DLEDstate[io]);
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -309,15 +309,17 @@ def managageOutputs():
|
|||||||
if (Debug):print ("Sending:{}".format(command.encode()))
|
if (Debug):print ("Sending:{}".format(command.encode()))
|
||||||
olddOutStates[port]= State
|
olddOutStates[port]= State
|
||||||
|
|
||||||
for port in range(DLEDcount):
|
for dled in range(DLEDcount):
|
||||||
State = int(c["dled.{}".format(port)])
|
State = int(c["dled.{}".format(dled)])
|
||||||
if oldDLEDStates[port] != State: #check if states have changed
|
if oldDLEDStates[dled] != State: #check if states have changed
|
||||||
Sig = 'D'
|
Sig = 'D'
|
||||||
Pin = int(port)
|
Pin = dled
|
||||||
command = "{}{}:{}\n".format(Sig,Pin,State)
|
command = "{}{}:{}\n".format(Sig,Pin,State)
|
||||||
arduino.write(command.encode())
|
arduino.write(command.encode())
|
||||||
oldDLEDStates[port] = State
|
|
||||||
if (Debug):print ("Sending:{}".format(command.encode()))
|
if (Debug):print ("Sending:{}".format(command.encode()))
|
||||||
|
oldDLEDStates[dled] = State
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
|
Loading…
Reference in New Issue
Block a user