DCCpp
This is the library version of a program for Arduino to control railroading DCC devices.
Revision History
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.
  • New sample Autotest.
11/12/2017 V0.8.0
  • fin de la documentation
  • DCCpp classe pass��e en statique
  • Ajout d'un test de num��ro de registre sur setFunctions()
  • les variables 'ToLeft' ont ��t�� chang��es pour 'Forward', pour mieux coller �� la norme DCC.
  • Correction de EEStore.store()
  • End of documentation
  • DCCpp class goes to static.
  • setFunctions() now checks for register number in debug mode.
  • 'ToLeft' variables have been changed to 'Forward', closer from DCC norm.
  • Fix EEStore.store()
27/11/2017 V0.7.0
  • Retour des chaines de validation de commande renvoy��es �� l'interface...
  • D��finition de ARDUINO_AVR_MEGA2560 si ARDUINO_AVR_MEGA d��fini.
  • Ajout des fonctions beginMainMotorShield, beginProgMotorShield, beginMainPololu et beginProgPololu
  • EthernetProtocol::None supprim��.
  • Acknowledgment strings are back.
  • ARDUINO_AVR_MEGA2560 defined if ARDUINO_AVR_MEGA defined.
  • Added functions beginMainMotorShield, beginProgMotorShield, beginMainPololu and beginProgPololu
  • EthernetProtocol::None removed.
25/11/2017 V0.6.0
  • Retour des chaines de validation de commande renvoy��es �� l'interface...
  • Corrections de Turnout et Output quand EEPROM utilis��e.
  • Acknowledgment strings are back.
  • Fixes for Turnout and Output when EEPROM is used.
25/08/2017 V0 Initial Release
  • DCCpp est le portage du programme DCC++ en biblioth��que.
  • DCCpp is the transcription of the DCC++ program into a library.