* commit '71bb657e3a7d80edc096094564f5d279e8a1fb69':
Esp32 iram attr (#26)
The merge adds extra STM32 handling
Als manually resolved the conflict around the type for lastMicros, to now be:
static unsigned int lastMicros = 0;
Howefully this does the right thing on each platform
Changed the Service Mode duplicate packet comparison to only compare the packet Size and Data fields and ignore the number of Preamble bits as some command stations appear to send different numbers of preamble bits for otherwise duplicated packets, so we detecting the required two identical packets in sequence and performing the ServiceMode Operation
* AdvancedCVAck:
corrected method description
split out ServiceMode ackCV from Ops Mode AdvancedCVAck as doing a ackCV in Ops Mode is wrong and adds 6ms busy delay add cache of CV29 value
* changed the version to 201 in the header
* added conditional compilation for ESP8266 to add ICACHE_RAM_ATTR to ExternalInterruptHandler
changed storage for Micros to unsigned long
* some tuning to bit recognition and nested IRQ (STM32)
* outputaddressing corrected
declared notifyDccAccState for backward compatibility
* version define in NmraDcc.h
* DB_PRINT introduced
Changed debug printing to a macro.
Added cv29 to CV-addresses that reset caching of myAddress
* Corrections regarding Outputaddressing
OutputAddress must be a signed variable
* Changes/additions regarding output addressing and CVChange callback
Change Flag FLAGS_OUTPUT_ADDRESS_MODE accordingly, when CV29 Bit 6 (output addressing) is changed.
New callback 'notifyDccCVChange' which is NOT called if the CV is changed by means of the setCV() method
* Shorten Debug Messages
Because of Buffer overrun in the serial output. This leads to blocking
Serial.write() calls
* notifyDccSigState restored
Restore the old callback notifyDccSigState for compatibiltity to version
1.4.2
* switch off debug printing
* ESP32 specific changes
insert ESP32 specific changes reagarding the ISR by Hans Tanner
Each field of keywords.txt is separated by a single true tab. When you use multiple tabs it causes the field to be interpreted as empty. On Arduino IDE 1.6.5 and newer an empty KEYWORD_TOKENTYPE causes the default editor.function.style coloration to be used (as with KEYWORD2, KEYWORD3, LITERAL2). On Arduino IDE 1.6.4 and older it causes the keyword to not be recognized for any special coloration.
Reference:
https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification#keywords
* outputaddressing corrected
declared notifyDccAccState for backward compatibility
* version define in NmraDcc.h
* DB_PRINT introduced
Changed debug printing to a macro.
Added cv29 to CV-addresses that reset caching of myAddress
* Corrections regarding Outputaddressing
OutputAddress must be a signed variable
* Changes/additions regarding output addressing and CVChange callback
Change Flag FLAGS_OUTPUT_ADDRESS_MODE accordingly, when CV29 Bit 6 (output addressing) is changed.
New callback 'notifyDccCVChange' which is NOT called if the CV is changed by means of the setCV() method
* Shorten Debug Messages
Because of Buffer overrun in the serial output. This leads to blocking
Serial.write() calls
* notifyDccSigState restored
Restore the old callback notifyDccSigState for compatibiltity to version
1.4.2
* switch off debug printing
Change Flag FLAGS_OUTPUT_ADDRESS_MODE accordingly, when CV29 Bit 6 (output addressing) is changed.
New callback 'notifyDccCVChange' which is NOT called if the CV is changed by means of the setCV() method
* outputaddressing corrected
declared notifyDccAccState for backward compatibility
* version define in NmraDcc.h
* DB_PRINT introduced
Changed debug printing to a macro.
Added cv29 to CV-addresses that reset caching of myAddress
* Add notification for entering and leaving service mode to allow the
decoder to swithc off high current outputs
* Add notification for entering and leaving service mode to allow the
decoder to swithc off high current outputs
Added more detail to the README.md
NOT READY FOR PRODUCTION YET, needs more checking and change to provide some backwards compatibility for call-backs that had been removed