Mit CTC Version 5, les LED RVB (bus LED, WS2812) font leur entrée dans CTC.\nNotre nouvelle carte CTC-Multi-IO-Board-4 peut contrôler individuellement jusqu'à 250 LED sur un port et pas seulement allumé/éteint mais aussi la luminosité et la couleur.\nDes signaux lumineux adaptés sont disponibles simultanément chez Schneider Modellbahnzubehör .
En plus du support des LED RVB, CTC 5 apporte une multitude de nouveautés et d'améliorations :
- DCC-Sniffer permet de commuter des productions connectées aux modules CTC via une centrale numérique
- Support des encodeurs rotatifs ESU CabControl dans l'application CTC Android - enfin une télécommande manuelle avec support direct de CTC
- Meilleure stabilité et robustesse en cas de connexions WiFi instables
- Nombres aléatoires et opérations arithmétiques dans les scripts, entre autres pour permettre des effets lumineux avec les nouvelles LED RVB
- Dialogues de configuration complets pour Android et bientôt pour iOS
- Technologie de base de l'application CTC mise à jour vers Java 25 et suppression de la dépendance à Python
Migration
Pour les modules CTC, le système de fichiers a été remplacé de SPIFFS à LittleFS. Cela nécessite une migration, voir mode d'emploi Annexe A5 .
De plus, les balises NFC ont été harmonisées avec les balises IR : Elles sont désormais stockées dans la configuration du module, au lieu de l'automatisation. Le transfert se fait automatiquement lors du téléchargement du schéma de voie dans l'éditeur de schéma de voie.
Stabilité des modules CTC
Surtout en cas de WiFi instable, il y avait régulièrement des problèmes de fichiers de configuration corrompus lorsque la connexion WiFi était interrompue pendant le téléchargement. CTC 5.x résout ce problème comme suit :
- Le serveur HTTP du module CTC écrit un fichier temporaire pendant le téléchargement et ne supprime l'ancien fichier que lorsque le nouveau est entièrement arrivé.
- Passage du système de fichiers de SPIFFS à LittleFS : LittleFS ne corrompt pas le système de fichiers même si l'alimentation est coupée pendant l'écriture. LittleFS peut également réinitialiser le système de fichiers en cas de défaillance.
- Passage du serveur HTTP de ESPAsyncWebServer à esp_http_server. Ce dernier devrait être bien plus stable.
- Fonction d'édition supprimée du serveur HTTP car elle corrompait les gros fichiers (mémoire insuffisante).
- Cliquer sur "télécharger" télécharge explicitement le fichier correspondant (pas d'aperçu)
- Le module CTC démarre même si les fichiers de configuration (après une corruption du système de fichiers) sont manquants.
Optimisation du sync :
- PIRailComm : taille du Msg-Slot augmentée à 2 ms
- D'autres paramètres d'optimisation seront proposés dans une prochaine version de l'application.
- Support de CTC 2.x supprimé
- UdpConnection lance un nouveau thread pour le traitement des paquets
- Les états des balises NFC sont intégrés cycliquement dans le bloc de sync, au lieu de paquets supplémentaires par sync.
- Correction de bug Sync : msInterval n'avait pas de tolérance, ce qui pouvait entraîner un double envoi de la part des modules CTC.
- Une option pour réduire le sync à plusieurs blocs plus courts a dû être désactivée pour l'instant en raison d'un bug dans le firmware ancien (ignore le premier et le dernier du bloc)
Optimisation concernant la dissipation thermique :
- Pause courte (respiration) de 2 ms à la fin de la boucle principale
- Suppression du test intégré WiFi.setSleep(false) pour les locomotives
Balises NFC
Les balises NFC sont désormais stockées dans la configuration (au lieu de l'automatisation) comme les balises IR. Cela évite les problèmes lors du changement d'état si plusieurs applications CTC sont actives.
L'éditeur de schéma de voie convertit automatiquement les balises NFC de TrackMsg dans trackCfg.xml en EnumAction dans cfg.xml
Dans le dialogue de configuration, les nouvelles balises NFC lues s'affichent avec "Ajouter produit".
Scripts
Les possibilités des scripts ont été fortement étendues :
- Génération de nombres aléatoires
- Appel aléatoire d'un script d'état d'une fonction (EnumAction)
- Opérations arithmétiques lors de la définition de valeurs numériques
- Prise en charge de la valeur (chiffre ou lettre) d'un paramètre
- Prise en charge de l'état (chiffre ou lettre) d'une autre action
- Prise en charge de la dernière valeur définie d'un OutPin
- Suppression de la commande "Delay", remplacée par un timer
- Commande If complétée par "else if" et "else"
- EnumAction dispose en plus d'une valeur par défaut pour int value (defInt)
- Nouveau type de données rgbValue pour les couleurs
- Les composantes R, V, B des couleurs peuvent être définies individuellement
- Utilisation cohérente de tgt/tgtI au début de setValue et de cur/curI uniquement en cas de réussite (script) dans setValue
- Correction de bug : l'appel récursif de Timer ne fonctionnait pas
- SetIO peut définir une nouvelle valeur par rapport à la dernière valeur définie
- Paramètre ajouté pour rgbValue
Les parties correspondantes du dialogue "Modifier la configuration" ont été adaptées en conséquence :
- Amélioration du support pour l'édition des scripts avec des listes de sélection
- Interface utilisateur et utilisabilité revues : value, intValue sont masqués de manière appropriée ; l'opération comme choix séparé
- Affichage de la couleur RVB en sous-couche dans les paramètres et dans les champs de valeur
- Dialogue de sélection de couleur (sélecteur de couleurs)
- Réglage en temps réel de la couleur des LED RVB connectées au bus LED
Le nouveau Chapitre 11 du mode d'emploi traite en détail de la création de scripts.
Bus LED
Jusqu'à 250 LED RVB (WS2812) peuvent être connectées au bus LED. Des signaux lumineux adaptés sont disponibles chez Schneider Modellbahnzubehör .
Nouvelle fonctionnalité (configuration) :
- Insertion directe à la fin du bus LED dans "Ajouter produit"
- Boutons pour modifier l'ordre des produits (ports) connectés au bus LED
- Suppression de la configuration LED supprime également le port dans ExtCfg ; les ports non connectés dans ExtCfg "LedBus" peuvent être supprimés
- Affichage de la couleur LED dans le paramètre (ValueType "rgbVal")
- NOUVEAU : Éditeur pour les paramètres avec ValueType "rgbVal" incluant le réglage en temps réel de la LED
- Bouton Test allume toutes les LED d'un port de bus LED (produit)
- Le tableau Ports et Pins affiche pour un port le nombre de broches définies en dessous (bus LED)
- LedBus n'a qu'une seule ExtCfg, composée de PortCfgs (tableaux LED), dont la taille est le nombre de OutPins sur le port connecté
Schéma de voie
Le schéma de voie peut avoir une image de fond, par exemple une maison, pour placer des interrupteurs lumineux sur les fenêtres
Modifier le schéma de voie :
- Bouton pour la sélection de l'image de fond ainsi que l'affichage et le téléchargement
- Les étiquettes pour ligne/colonne étaient inversées
Connexion WiFi via balise
- Ajout et activation de la bibliothèque NDEF
- Ajout de tempWifi à Loko_G
Base firmware
- Passage du système de fichiers de SPIFFS à LittleFS et du serveur HTTP de ESPAsyncWebServer à esp_http_server (voir section Stabilité).
- Affichage de l'état alternativement via LED RVB (couleur) au lieu de codes clignotants
- NOUVEAU : Bibliothèque pour le module E/S DRV89xx
- Initialisation désormais en deux étapes : d'abord toutes les actions sont initialisées et dans une deuxième boucle les valeurs par défaut sont définies - l'ordre des actions dans la configuration n'a donc plus d'influence sur l'initialisation.
- SetIO n'interrompt plus le script si outCfg ou pinCfg n'est pas trouvé.
- Correction de bug : ItemConn.getIntVal ignorait "defaultValue"
- doSendMsg étendu avec le paramètre msgLen : s'il est > 0, le message n'est envoyé que si le tampon de la série a suffisamment de place (sur ESP32 UART 128 octets)
Améliorations de l'interface utilisateur
Dialogues de configuration :
- L'arborescence "Broches, ports et extensions" est désormais à droite, plus à gauche
- L'édition des scripts entièrement revue - voir section "Scripts"
- L'affichage du nouveau produit de balise NFC montre désormais l'ID de position de la balise pour le produit et la balise (EnumAction)
- Pour l'affichage des produits (ItemConn), le suffixe "-conn" est supprimé
- Affichage du Device-Heap dans EditSwitchBox
Liste des modules :
- Affichage coloré de la version FW et de l'état
- NOUVEAU dans RailDevice : deviceState et stateColor
- La liste des modules affiche deviceState avec Background stateColor
- RailDevice définit deviceState pour succès/erreur de chargement de la configuration
- NOUVEAU : Rétablissement pour TrackCfg en cas d'erreur de chargement ; affichage dans deviceState
- Mise à jour du firmware affiche la progression et le succès/échec dans deviceState
Icônes : Nouvelles icônes pour le signal SBB-5
Autres :
- La barre d'état indique qui est le maître de sync
- Le dialogue Statistiques complété par la colonne "dB"
- NOUVEAU : Le firmware est mis en surbrillance en couleur s'il est obsolète : orange=CTC4, jaune=plus ancien que la version FW dans l'application CTC
- La sauvegarde de la configuration sauvegarde désormais tous les fichiers du module CTC (sauf netCfg.xml et WiFi temporaire)
- Nouvelle fonction Restaurer la configuration : charge tous les fichiers depuis un dossier de sauvegarde de configuration sur un module CTC
- Optimisation de la mémoire : pendant le traitement des messages d'état, beaucoup moins de mémoire est nécessaire
Corrections de bugs de l'interface utilisateur de l'application CTC
- Les arborescences n'étaient pas toujours mises à jour lors des modifications
- Plusieurs plantages lors du téléchargement dans l'éditeur de schéma de voie (sablier infini)
- MessageBox, InputDialog et PasswordDialog étaient à peine lisibles en mode sombre : couleur fixe remplacée par un style adapté
Corrections de bugs de l'application CTC
- Exception dans WiFiManagerLinux lorsque le WiFi était éteint (résultat vide)
- StatusBar : l'ID de l'étiquette pour wifi_name était corrompu
- Exception lors d'un message d'erreur dans "Remplacer la configuration E/S" si la version/firmware était nulle
- Remplacer la configuration E/S : les dossiers internes (standard, ...) n'étaient pas affichés
Catalogues de produits
- NOUVEAU : Catalogue de produits schneider-singale.xml
- Adaptation de la convention pour les signaux : Arrêt sur la position 0 et Voie libre sur la position 1
- Correction de bug : pour les signaux, gauche/droite était partiellement inversé
- universell-licht.xml complété par "Haus-RGB-LED-8" et bandeau LED 60
- Adaptation et extension des fichiers XML des signaux de schneider viesmann et universell, tous pour le bus LED
Structures XML (pi-rail.xsd)
- Adaptation de la configuration, afin que les produits puissent également contenir une ExtCfg
- Le port peut désormais également contenir inPin et outPin
- TrackMsg retiré du schéma XML et code de compatibilité ascendante intégré dans l'application CTC
- NOUVEAU : Type de valeur "rgbVal"
- Enum "valueType" complété par "rgbVal"
- ifCmd complété par l'attribut "varID"
- Scripts complétés par "else"
- NOUVEAU : Tableaux de broches : outPin complété par size (tableau), ainsi que setIO complété par i (index) pour
- NOUVEAU : Attribut "BSSID" dans WifiCfg
- Nouveau inModeType "DCC" et attribut "DCC" sur stateScript pour DCC-Sniffer
Internationalisation
Divers trous de traduction dans l'application comblés :
- Adaptation des messages (messages.properties)
- Textes pour Script-Add et Script-Remove supprimés (sont des boutons dans Android)
- Correction des umlauts ü, ö, ä après le passage à l'ISO-8859-1 pour tous les fichiers de langue (properties)
Dialogues de configuration Android et iOS
Android :
- Dialogues de configuration alignés sur la version Desktop
- Mise en page Portrait (téléphone) rendue utilisable
- NOUVEAU : ListViewNonScroll pour une liste de la même taille que son contenu
- EditCfg : mise en page étirée (barre de défilement tout à l'extérieur)
- Configurateur : bouton Crayon réparé (était caché dans la mise en page)
iOS :
- Mise à jour vers CTC 5
- backgroundBinding (couleur d'arrière-plan) ne fonctionnait pas
- Images dans les tableaux ne fonctionnaient pas (icônes WiFi et Loco)
- Extension à la portée de la version Android en cours
DCC-Sniffer
Sur la nouvelle carte IO-4, il est possible de lire le signal DCC d'un central numérique sur l'entrée capteur. Cela permet d'activer des fonctions du module CTC depuis le central numérique.
- universell-sensoren.xml complété par DCC-Sniffer
- Édition de la configuration complétée par l'adresse DCC et le statut (dans le State-Script)