mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2024-11-25 00:56:13 +01:00
Compare commits
2 Commits
f19db3aa5c
...
4192c1f5a3
Author | SHA1 | Date | |
---|---|---|---|
|
4192c1f5a3 | ||
|
c2fcdddd1f |
|
@ -194,8 +194,10 @@ int RMTChannel::RMTfillData(const byte buffer[], byte byteCount, byte repeatCoun
|
||||||
setDCCBit1(data + bitcounter-1); // overwrite previous zero bit with one bit
|
setDCCBit1(data + bitcounter-1); // overwrite previous zero bit with one bit
|
||||||
setEOT(data + bitcounter++); // EOT marker
|
setEOT(data + bitcounter++); // EOT marker
|
||||||
dataLen = bitcounter;
|
dataLen = bitcounter;
|
||||||
|
noInterrupts(); // keep dataReady and dataRepeat consistnet to each other
|
||||||
dataReady = true;
|
dataReady = true;
|
||||||
dataRepeat = repeatCount+1; // repeatCount of 0 means send once
|
dataRepeat = repeatCount+1; // repeatCount of 0 means send once
|
||||||
|
interrupts();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -212,6 +214,8 @@ void IRAM_ATTR RMTChannel::RMTinterrupt() {
|
||||||
if (dataReady) { // if we have new data, fill while preamble is running
|
if (dataReady) { // if we have new data, fill while preamble is running
|
||||||
rmt_fill_tx_items(channel, data, dataLen, preambleLen-1);
|
rmt_fill_tx_items(channel, data, dataLen, preambleLen-1);
|
||||||
dataReady = false;
|
dataReady = false;
|
||||||
|
if (dataRepeat == 0) // all data should go out at least once
|
||||||
|
DIAG(F("Channel %d DCC signal lost data"), channel);
|
||||||
}
|
}
|
||||||
if (dataRepeat > 0) // if a repeat count was specified, work on that
|
if (dataRepeat > 0) // if a repeat count was specified, work on that
|
||||||
dataRepeat--;
|
dataRepeat--;
|
||||||
|
|
|
@ -247,6 +247,9 @@ void DCCWaveform::schedulePacket(const byte buffer[], byte byteCount, byte repea
|
||||||
pendingPacket[byteCount] = checksum;
|
pendingPacket[byteCount] = checksum;
|
||||||
pendingLength = byteCount + 1;
|
pendingLength = byteCount + 1;
|
||||||
pendingRepeats = repeats;
|
pendingRepeats = repeats;
|
||||||
|
// DIAG repeated commands (accesories)
|
||||||
|
// if (pendingRepeats > 0)
|
||||||
|
// DIAG(F("Repeats=%d on %s track"), pendingRepeats, isMainTrack ? "MAIN" : "PROG");
|
||||||
// The resets will be zero not only now but as well repeats packets into the future
|
// The resets will be zero not only now but as well repeats packets into the future
|
||||||
clearResets(repeats+1);
|
clearResets(repeats+1);
|
||||||
{
|
{
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
#define GITHUB_SHA "devel-overcurrent-202307041424Z"
|
#define GITHUB_SHA "devel-overcurrent-202307061457Z"
|
||||||
|
|
|
@ -38,6 +38,11 @@ function need () {
|
||||||
|
|
||||||
need git
|
need git
|
||||||
|
|
||||||
|
if cat /etc/issue | egrep '^Raspbian' 2>&1 >/dev/null ; then
|
||||||
|
# we are on a raspi where we do not support graphical
|
||||||
|
unset DISPLAY
|
||||||
|
fi
|
||||||
|
|
||||||
if [ x$DISPLAY != x ] ; then
|
if [ x$DISPLAY != x ] ; then
|
||||||
# we have DISPLAY, do the graphic thing
|
# we have DISPLAY, do the graphic thing
|
||||||
need python3-tk
|
need python3-tk
|
||||||
|
|
|
@ -4,8 +4,9 @@
|
||||||
#include "StringFormatter.h"
|
#include "StringFormatter.h"
|
||||||
|
|
||||||
|
|
||||||
#define VERSION "4.2.62pre2"
|
#define VERSION "4.2.62pre3"
|
||||||
// 4.2.62 - completely new overcurrent detection
|
// 4.2.62 - completely new overcurrent detection
|
||||||
|
// - ESP32 protect from race in RMT code
|
||||||
// 4.2.61 - MAX_CURRENT restriction (caps motor shield value)
|
// 4.2.61 - MAX_CURRENT restriction (caps motor shield value)
|
||||||
// 4.2.60 - Add mDNS capability to ESP32 for autodiscovery
|
// 4.2.60 - Add mDNS capability to ESP32 for autodiscovery
|
||||||
// 4.2.59 - Fix: AP SSID was DCC_ instead of DCCEX_
|
// 4.2.59 - Fix: AP SSID was DCC_ instead of DCCEX_
|
||||||
|
|
Loading…
Reference in New Issue
Block a user