Commit Graph

87 Commits

Author SHA1 Message Date
Alex Shepherd
3abb683d8d improved DCCInterface_TurntableControl example to:
- Added selectable Movement Strategy: Positive Direction Only, Negative Direction Only, Shortest Distance
- Made Disabling Output on Idle optional
2020-06-01 18:49:00 +12:00
Alex Shepherd
f3da07c739 added Franz-Peter's changes to pass NMRA Tests ( always search for preamble ) 2020-05-31 20:14:28 +12:00
Alex Shepherd
dead808af2 added work-around for ATtiny1614 range of chips that have a bug in: eeprom_is_ready() 2020-05-30 16:14:27 +12:00
Alex Shepherd
38194c0148 Correct the inconsistent license text in the source files to be the Lesser GPL as was intended by the LICENSE file and the repo classification 2020-02-03 22:16:00 +13:00
Alex Shepherd
7819716ac0 manually merged in Franz-Peter's changes as his PR#30 pull-request had too many differences to merge once I'd already solved the advancedAck issue.
This commit contains the remaining relevant changes after doing a manual diff of the library files
2020-01-10 17:33:09 +13:00
Alex Shepherd
5349a21e2e fix bug caused when AdvancedCVAck logic was added as the CV Programming code was shared between Service Mode and Ops Mode programming. 2020-01-10 15:30:30 +13:00
Alex Shepherd
36418f4d66 fixed a bug with the Extended DCC Packet Decoder Reset command was only handling the Hard Reset but not the Soft Reset 2019-11-23 14:25:28 +13:00
Alex Shepherd
a8081526ba Merge commit '71bb657e3a7d80edc096094564f5d279e8a1fb69'
* 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
2019-10-28 18:58:02 +13:00
Alex Shepherd
7063e4e7e7 Merge branch 'master' of https://github.com/mrrwa/NmraDcc
* 'master' of https://github.com/mrrwa/NmraDcc:
  Update NmraDcc.cpp
  Update NmraDcc.cpp (#28)
2019-08-19 19:08:28 +12:00
Alex Shepherd
d8fb99ed91 Update NmraDcc.cpp
Added some more comments to the ServiceMode programming DCC Packet comparison logic
2019-08-19 19:04:51 +12:00
Roeland
794128fe4b Update NmraDcc.cpp (#28)
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
2019-08-19 18:59:29 +12:00
Alex Shepherd
1542a6fe6c Merge branch 'AdvancedCVAck'
* 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
2019-08-09 08:20:45 +12:00
Alex Shepherd
828b1feaba corrected method description 2019-08-09 08:19:53 +12:00
Bob Jacobsen
462025b9fe Comment update (#27)
Incredibly trivial update to comment noticed while reading code.
2019-08-06 09:10:21 +12:00
Franz-Peter
71bb657e3a Esp32 iram attr (#26)
* 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)
2019-08-06 01:14:58 +12:00
Alex Shepherd
f3a2b87693 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
2019-08-06 00:22:04 +12:00
Alex Shepherd
e06f6b3bce bumped version to 2.0.2 2019-08-05 21:34:48 +12:00
Alex Shepherd
6a7e206032 reverted changes around lastMicros 2019-08-05 21:30:39 +12:00
Alex Shepherd
6d12e6cd3f added conditional compilation for ESP8266 to add ICACHE_RAM_ATTR to ExternalInterruptHandler
changed storage for Micros to unsigned long
2019-05-25 15:52:55 +12:00
Alex Shepherd
b249762550 changed the version to 201 in the header 2019-05-02 21:42:59 +12:00
Alex Shepherd
5cee0d28ed Merge branch 'master' into ESP32-IRAM_ATTR 2019-05-02 19:11:05 +12:00
Alex Shepherd
5ba1ee3e8e added another example of s simple DCC Multifunction (Locomotive) decoder 2019-05-02 11:13:22 +12:00
Franz-Peter
bb2a659ebe Esp32 processor specific (#23)
* 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
2019-02-22 08:42:34 +13:00
Alex Shepherd
865d919802 Added IRAM_ATTR changes for the ESP32 from Hans Tanner
bumped version to 2.0.1
2019-02-16 22:09:19 +13:00
Thierry Paris
ff3e24dff4 Add ESP32 support (#21)
* Update README.md

* Added ESP32 support.
2019-01-23 14:15:46 +13:00
Geoff Bunza
6dca23bc27 Gbsma601 (#20)
* Delete AccDec_7ServoBackandForth6Ftn.ino

* Delete AccDec_10Servos_7LED_6Ftn.ino

* Delete AccDec_13Servos_4LED_6Ftn.ino

* Delete AccDec_15Servos_2LED_6Ftn.ino

* Delete AccDec_17LED_1Ftn.ino

* Delete AccDec_17LED_6Ftn.ino

* Delete AccDec_7Servos_10LED_6Ftn.ino

* Delete Dec_10Serv_7LED_6Ftn.ino

* Delete Dec_13Serv_4LED_6Ftn.ino

* Delete Dec_15Serv_2LED_6Ftn.ino

* Delete Dec_17LED_1Ftn.ino

* Delete Dec_17LED_6Ftn.ino

* Delete Dec_2Mot_12LED_1Srv_6Ftn.ino

* Delete Dec_2Mot_3LED_TrigAud.ino

* Delete Dec_2Mot_4LED_Aud_8Ftn.ino

* Delete Dec_7Serv_10LED_6Ftn.ino

* Delete Dec_Dir_and_Fade.ino

* Delete Dec_SMA12_LED_Groups.ino

* Delete Dec_Stepper_6Ftn.ino

* Delete SMA 6.0 Release Notes.rtf

* Add files via upload

* Delete Dec_2Mot_12LED_1Srv_6Ftn.ino

* Delete Dec_2Mot_3LED_TrigAud.ino

* Delete Dec_2Mot_4LED_Aud_8Ftn.ino

* Add files via upload

* Delete SMA 6.01 Release Notes.rtf

* Add files via upload
2.0.0
2018-08-08 09:55:33 +12:00
per1234
15da83c411 Use a single tab field separator in keywords.txt (#19)
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
2018-07-15 23:21:17 +12:00
Alex Shepherd
7a3845cbdf Changed the architectures to now be * as we're no longer tied to AVR specific hardware, however I've listed the architectures its been tested on
Fixed a bug with CV bit-write
2018-07-08 00:54:21 +12:00
Alex Shepherd
1717a2efb0 Made some minor tweaks / tidy-ups after committing Franz-Peter's changes 2018-07-07 19:21:48 +12:00
Franz-Peter
32c5597870 Additional changes regarding output addressing and new callback notifyDccCVChanged() (#17)
* 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
2018-07-07 13:26:51 +12:00
Geoff Bunza
2de91bd4fd Merge pull request #18 from mrrwa/GB_SMAV6.0_Update&Test
Gb smav6.0 update&test
2018-07-05 16:38:11 -07:00
Geoff Bunza
5a1e0b2997 Delete SMA 5.4 Release Notes.txt 2018-07-05 16:14:20 -07:00
Geoff Bunza
2b12179152 Delete Dec_2MotDrive_12LED_1Srv_6Ftn.ino 2018-07-05 16:13:14 -07:00
Geoff Bunza
c2de60b8cb Add files via upload 2018-07-05 15:18:48 -07:00
Alex Shepherd
f171dd3894 Added new FLAGS_AUTO_FACTORY_DEFAULT flag to enable checking CV 7 & 8 and if value of both is 255 then call notifyCVResetFactoryDefault() if defined 2018-04-18 23:53:01 +12:00
Franz-Peter
778de8ce74 Changes regarding output addressing (#16)
* 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
2018-04-15 20:20:57 +12:00
M1118
ba3264bd87 Addition of notifyServceMode call to allow decoders to turn off high current outputs (#14)
* 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
2018-04-15 20:13:12 +12:00
Alex Shepherd
0fbe2a13d1 Changed version to 2.0.0
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
2018-03-06 18:48:43 +13:00
Alex Shepherd
369786325f updated the examples to reflect the removal of support for the two call-back functions: notifyDccAccState(), notifyDccSigState() 2018-03-01 00:00:15 +13:00
Alex Shepherd
ec801bf463 updated the examples to reflect the removal of support for the two call-back functions: notifyDccAccState(), notifyDccSigState() 2018-02-28 23:50:59 +13:00
Alex Shepherd
90470987a8 Merge branch 'AddOutputModeAddressing'
AddOutputModeAddressing:
  Fixed off-by-one (x4) error with DCC Accessory Output Mode Addressing. Made compatible with the DCC Spec for DCC Accessory Output Mode Addressing CV storage in CV 1 & 9. Its a bit wierd but...
  Added heaps of DEBUG PRINT to the Accessory Decoder section to follow/test the various test cases through the code and to figure out how to make this stuff work. Added more code to make the existing supported functions to be more selective about which packet bits patterns they take notice of as it was too broad previously Will remove some of the notifyCall-Back functions as some were not well conceived at the time and now need to go Testing is NOT complete as there were issues in JMRI that also need to be resolved in sync with this so we're not quite there yet..
  With eeprom_is_ready() for AVR-processors (#13)
  Fixed some bugs around DCC Accessory Output Mode Addressing and handling of edge cases Add function to set Accessory Decoder Address from next received Accessory Decoder command and new notify call-backs when a new address is set Added new notifyDccSigOutputState() with no OutputIndex parameter Bumped version but have NOT tagged the library as it needs more testing and checking for breakage
Added NmraDcc.h documentation changes and logic changes to correct a couple of issue that arose from Ken West performing a standard NMRA DCC Decoder Confirmance test. Added his test sketches and output reports
2017-12-24 16:53:22 +13:00
Alex Shepherd
9294aa29e5 Merge branch 'ESU_ECoS_CV_Programming'
* ESU_ECoS_CV_Programming:
  Added ESU ECoS CV Programming support
2017-12-24 15:25:17 +13:00
Alex Shepherd
844171f2ac Fixed off-by-one (x4) error with DCC Accessory Output Mode Addressing.
Made compatible with the DCC Spec for DCC Accessory Output Mode Addressing CV storage in CV 1 & 9. Its a bit wierd but...
2017-06-25 20:13:19 +12:00
Alex Shepherd
0656f58c5b Added heaps of DEBUG PRINT to the Accessory Decoder section to follow/test the various test cases through the code and to figure out how to make this stuff work.
Added more code to make the existing supported functions to be more selective about which packet bits patterns they take notice of as it was too broad previously
Will remove some of the notifyCall-Back functions as some were not well conceived at the time and now need to go
Testing is NOT complete as there were issues in JMRI that also need to be resolved in sync with this so we're not quite there yet..
2017-06-08 09:58:41 +12:00
Franz-Peter
0d2e8daeaf With eeprom_is_ready() for AVR-processors (#13)
* with eepromReady for AVR

* with eepromReady for AVR
2017-06-04 13:30:31 +12:00
Franz-Peter
92dd2e6ac5 With eeprom_is_ready() for AVR-processors (#13)
* with eepromReady for AVR

* with eepromReady for AVR
2017-05-25 15:19:17 +12:00
Alex Shepherd
07933e42a8 Fixed some bugs around DCC Accessory Output Mode Addressing and handling of edge cases
Add function to set Accessory Decoder Address from next received Accessory Decoder command and new notify call-backs when a new address is set
Added new notifyDccSigOutputState() with no OutputIndex parameter
Bumped version but have NOT tagged the library as it needs more testing and checking for breakage
2017-04-27 01:26:25 +12:00
Franz-Peter
f8f106962f Stm32 support (#12)
* 1st version for STM32

bit detection and EEPROM changed to support STM32

* added STM32F1 support

updated files: library.properties. NmraDcc.cpp, NmraDcc.h

* switch off debug output

* missing #endif added

Testports for esp8266 defined
2017-01-30 17:08:41 +13:00
Alex Shepherd
8c782d5f15 Added ESU ECoS CV Programming support 2016-11-27 22:25:12 +13:00
Alex Shepherd
dafa1c9964 Merged Geoff's Update-Examples-5.4 branch 1.4.2 2016-11-27 19:49:29 +13:00