Si le canton gère la signalisation, mais pas la traction DCC, comment peux-tu imposer à une loco de respecter un R60 ou un RR30, ou un arrêt devant un sémaphore ?
Il faudrait que le canton puisse envoyer un message à la traction mais s'il ne connait pas le N° DCC de la loco, ce sera difficile !
Ou bien je n'ai pas assez de détails, car je pense que tu as dû le prévoir.
Je me rends compte que si je veux tout expliquer, il faudrait que j'écrive un diagramme d'états complet avec plus de 80 à 100 messages différents... Cela me prendrait un temps certain
Je vais donc répondre aux questions au coup par coup... Désolé... Mais ce n'est pas perdu. J'ai le projet de rédiger un petit site web pour décrire complètement mon projet, mais cela reste encore une idée en l'air... En fait, tout le temps que je mets dans la rédaction ne va pas sur le projet. Des fois, je n'ai pas le courage de le faire et je préfère travailler sur mes Arduino
Ceci étant dit, je retourne à ta question. Une idée du fil de messages (va-et-vient). N'oublie pas que je passe des paramètres dans les messages (par exemple, le loco id ou le zone id...):
- (canton) détection zone & mise à jour de la signalisation & envoi du message au dcc
- (dcc) gestion des positions des locos & envoi d'une requête de vitesse au canton
- (canton) envoi de la directive de vitesse à la loco
- (loco) en fonction de son script et de la signalisation, déduit la vitesse voulue & envoi de la directive au dcc
- (dcc) message DCC
Dans cet exemple, on peut voir que de nombreux messages sont impliqués dans cette résolution (le double en réalité). Et cela se multiplie très rapidement, d'où la grandeur du diagramme d'états... Chaque module a un diagramme d'environ une douzaine d'états, avec plusieurs états ré-entrant... Pour chaque message, il faut aussi considérer sa réponse (ou ACK) ce qui double quasiment le nombre. Etc...
J'espère que cela t'éclairera un peu plus.
Patrick