J'ai eu une petite idée. Bien sur je suis d'accord sur la necessité d'actionner diverses fonctions, accessoires ou autre avec une liberté la plus grande possible. Je ne connais pas l'architecture de developpement de CDM mais voila l'idée que je me fait du truc

Les cantons etant certainement declarés dans une bdd, le logiciel doit pouvoir savoir quelque part dans quel sens le train roule.(par exemple, par rapport au canton occupé precedement)
Ensuite dans la bdd, au niveau des cantons, il est peut être possible de déclarer des variables selon le shéma çi-dessous
Un systeme comme celui çi permettrait de déclencher, a souhait, toutes sortes d'évenements, coups de sifflets, ouverture ou fermeture d'un PN, changement de position de telle ou telle aiguilles etc..., le tout calculé par rapport aux sens de circulation qui serait determiné par le canton précedent définissant ainsi l'entrée ou de la sortie du nouveau canton occupé.
Exemple de fonctionnement, je déclare que dans le canton N°6, quand le train entre, il doit siffler apres 5 seconde de roulage.
donc je cliquerais sur le canton6 (sur le plan), dans la fenetre je sélectionnerais "Entrée sens est-ouest", puis l'adresse dcc 3 (loco) je met 5 seconde de timer (retard) et enfin la fonction F8 (coup de sifflet long)
Résultat escompté, quand le train adresse 3(et seulement lui) sifflera 5 seconde aprés son entrée dans le sens est-ouest su canton n°6 ou se trouve le PN
Pour que tout les train siffle, il suffirait de repeter la saisie autant de fois qu'il y a de trains.
Ce systeme peut etre rébabartif point de vue nombre de saisie, mais je pense, donne une grande souplesse