This is the library version of a program for Arduino to control railroading DCC devices.
Revision History
08/11/2020 V1.4.2
Adaptation de la mesure de courant �� l'ESP32.
L'��criture de CV sur la voie de programmation retourne un booleen �� false si l'��criture n'a pas ��t�� v��rifi��e.
Am��lioration de la proc��dure de lecture/��criture de CV, en Avr, et aussi en ESP32 (Merci �� DCC++ Classic de l'��quipe DCC++Ex (www.dcc-ex.com) ).
Nouvelle commande texte 'r' pour lire une CV sur la voie principale.
Current monitor adapted for ESP32
The CV write functions on prog track now return a bool at false if the writing has not been confirmed.
The procedure for writing and reading a Cv has been improved. Thanks to DCC++ Classic from www.dcc-ex.com team.
New text command 'r' to read a Cv from the main track.
02/04/2020 V1.4.1
Correction des pinMode qui n'��taient pas faits en ESP32.
Fix on pinMode() not done in ESP32.
04/03/2020 V1.4.0
Ajout de la compatibilit�� ESP32. Seul la partie DCC a ��t�� port��e, le reste (turnout, sensor et outputs) est exclu parce que pas test��...
En architecture AVR, un mode USE_ONLY1_INTERRUPT a ��t�� ajout�� pour n'utiliser qu'une seule interruption pour les deux voies.
Nombre de registres disponibles pass�� �� 21 pour un Mega, et �� 41 pour un ESP32.
Ajout d'une nouvelle fonction �� la classe DCCpp : setAckThreshold() pour fixer le seuil de reconnaissance de lecture/��criture de CV, par d��faut �� 30.
Correction de beginMain et beginProg qui refusaient que la 'enable pin' soit non d��finie.
Factorisation des fonctions d'acknowledge apr��s une lecture/��criture de cv, ce qui permet de gagner de la m��moire.
Correction de Outputs.cpp qui ��tait exclu de la compilation si USE_TURNOUT (?) n'��tait pas activ��...
Toutes les fonctions Parse() qui analysent une syntaxe texte de commande retournent maintenant true si la commande a ��t�� trait��e. Un message d'erreur s'affiche sur la console dans le cas contraire.
La syntaxe texte pour fixer une fonction a ��t�� ��tendue : 'f cab fbyte' et 'f cab fbyte ebyte' sont toujours pr��sentes, mais 'f 0 reg cab fbyte' et 'f 0 reg cab fbyte ebyte' ont ��t�� ajout��es pour pouvoir fixer le registre �� charger.
powerOn() et powerOff() qui ex��cutent les ordres <1> et <0> ne renvoient plus rien si elles ne font rien �� cause de broches Enable indefinies.
ESP32 mode added. Only the part DCC has been ported, the classes Turnout, Outputs and Sensor have been excluded because of lack of tests...
On AVR achitecture, a new mode USE_ONLY1_INTERRUPT has been added to only use one interrupt for the two tracks.
On mega the register number is now of 21, and 41 on ESP32.
Added a new function to class DCCpp : setAckThreshold() to fix the acknowledge value for read/write of cvs. Default is 30, but can be too big for small scales and/or efficient motors...
Fix of beginMain and beginProg to truely allow that the 'enable pin' can be undefined.
Factorisation of acknowledgement functions after read/write of cvs. Win some program memory....
Fix of Outputs.cpp which was ecluded from compilation if USE_TURNOUT undefined !
All Parse() functions now return a boolean. It is true if the command analyzed by the parse function is correct. Otherwise an error message is shown on console.
The syntax of function commands has been extended : 'f cab fbyte' and 'f cab fbyte ebyte' still exist, but 'f 0 reg cab fbyte' and 'f 0 reg cab fbyte ebyte' have been added to be able to fix the register number.
powerOn() and powerOff() (commands <1> and <0>) functions do not return aknowledge on serial line if they do nothing because of Enable pins undefined.
02/08/2019 V1.3.6
Correction du calcul de la taille de l'ent��te EEPROM (Pull Request #5 de positron96).
Ajout d'une aide succinte �� la configuration d'Ethernet dans la doc.
Retrait de SignalGenerator.*
Fixes EEPROM not working correctly (Pull Request #5 by positron96).
Add a short config help for Ethernet in inline documentation.
Files SignalGenerator.* removed.
19/06/2019 V1.3.5
Correction de la transformation de INTERFACE en DCCPP_INTERFACE si USE_ETHERNET_* .
Fix INTERFACE to DCCPP_INTERFACE if compiled with USE_ETHERNET_*.
10/06/2019 V1.3.4
Corrections d'INTERFACE en DCCPP_INTERFACE sur des parties non copil��es par d��faut qui avaient ��chapp��s �� la tranformaition.
CurrentMonitor permet de mieux g��rer les surcharges s��par��ment entre la voie principale et la voie de programmation.
Fix INTERFACE - DCCPP_INTERFACE mistakes on hiden parts of the code not always compiled...
CurrentMonitor can now handle separatly overloads on the main track and the prog track.
03/06/2019 V1.3.3
Mise �� jour de la partie Visual Studio pour le nouveau ArduiEmulatorWin
Remplacement de INTERFACE par DCCPP_INTERFACE pour ��viter un conflit de nommage
Change LIBRARY_VERSION en DCCPP_LIBRARY_VERSION
Correction de l'exemple EthernetDcc pour le num��ro de pin �� 11 au lieu de 3...
Retrait d'un fichier inutile dans les sources.
powerOn() et powerOff() peuvent maintenant couper/remettre le courant sur les deux voies ind��pendamment.
Update to use the new ArduiEmulatorWin
Replace of INTERFACE by DCCPP_INTERFACE to avoid naming conflict.
Change LIBRARY_VERSION to DCCPP_LIBRARY_VERSION
Fix pin number from 11 to 3 in sample EthernetDcc.ino
Removing of an unused file in src.
powerOn() and powerOff() can now stop/restore the current on each track independantly.
23/12/2018 V1.3.2
Correction de beginProgMotorShield() qui appelait beginMain au lieu de beginProg
Correction de beginProgPololu() qui appelait beginMain au lieu de beginProg
definition of beginProgMotorShield() call now beginProg instead of beginMain
definition of beginProgPololu() call now beginProg instead of beginMain
15/07/2018 V1.3.1
Correction du format de Keywords.txt
Cr��ation de LIBRARY_VERSION
Mise en conformit�� de la partie doc HTML avec DOXYGEN_SPECIFIC
Ajout du fichier LICENSE
Fix Keywords.txt format.
LIBRARY_VERSION created
Update of DOXYGEN_SPECIFIC part for HTML documentation.
Add of LICENSE file
02/04/2018 V1.3.0
Ajout de IsMainTrack qui identifie la voie (principale/programmation) selon le RegisterList en argument.
Correction de identifyLocoId qui ne marchait que sur la voie principale.
Correction de arduino.h en Arduino.h
Add of IsMainTrack to identify the track (main/prog) according to the given RegisterList.
Fix identifyLocoId which was only working on main track.
Change arduino.h in Arduino.h
08/01/2018 V1.2.0
Retrait de l'argument locoId des fonctions de lecture/��criture de CV : sans objet !
Ajout des arguments callback et callbacksub de passage d'information libre dans les fonctions readCv et writeCv. C'est une mise en conformit�� avec les fonctions originales.
Am��lioration des fonctions identifyLocoIdMain et Prog pour lire aussi les adresses longues.
Argument locoId removed from read and write CV functions : not used !
Arguments callback and callbacksub added to read/write CVs, to be conform to original functions.
Improvement of new functions identifyLocoIdMain and Prog to be able to get long addresses.
08/01/2018 V1.1.0
Correction de readCV(ints) et readCV(string) qui ne retournaient aucune valeur !
Correction d'un warning dans les exemples miniDcc et maxiDcc.
Ajout de identifyLocoIdMain() et identifyLocoIdProg() pour lire le CV1 d'une loco pr��sente sur la voie.
Fix readCV(ints) and readCV(string) to return values !
Fix a warning in samples mini and maxi.
Added identifyLocoIdMain() and identifyLocoIdProg() to find the address of a decoder on the track.
08/01/2018 V1.0.1
Correction des exemples mini et maxi qui ne g��raient pas correctement l'encodeur.
Ajout d'un test pour un beginMain/beginProg avec le signal pin �� 255.
Fix samples mini and maxi which did not use EVENT_ENCODER event !
Add a test in beginMain/beginProg to check undefined signal pin.
27/12/2017 V1.0.0
Pour se conformer �� la norme DCC, la commande DCC de fonction est doubl��e.
Correction de Sensor dont le 'check' provoquait une grande quantit�� de lignes vides sur la console.
To be closer of the DCC norm, the function DCC orders will be send twice.
Fix Sensor::check(). A lot of empty lines was sent to the Serial console...
22/12/2017 V0.9.0
Envoi de la seule commande DCC concern��e lors d'une activation/d��sactivation de fonction.
Nouvel exemple Autotest.
Send only necessary DCC command when activating/dis-activating a function.