16
Vos projets / Re : LaBox" : Une Centrale DCC polyvalente et abordable
« le: février 18, 2024, 02:12:57 pm »
Nouvelle version 2.4.4 de Labox.
Cette version répond à la différence de comportement entre les versions iOs et Android de l'application Roco Z21.
Disons que dans les deux versions, la configuration de l'application dit que le bouton d'arrêt en haut de l'écran de conduite doit arrêter le courant sur les rails.
Dans la version Android, après avoir été pressé et avoir coupé le courant, le bouton se transforme en bouton de remise de courant.
Tandis que dans la version iOs, le bouton reste un bouton d'arrêt, et si on le represse, alors on coupe à nouveau le courant déjà coupé ! Etrange... Pas d'autre moyen pour relancer le courant que de fermer puis rouvrir l'application, perdant au passage les vitesses, fonctions et directions des locos pilotées.
Pour compenser ce comportement dérangeant, je n'ai pas voulu aller contre la volonté du développeur et transformer sur iOs ce bouton en va et vient comme sous Android. Surtout que le bouton ne changera pas, il ne deviendra pas vert pour signaler qu'un nouvel appui rétabliera le courant...
Bref, j'ai préféré faire en sorte qu'une fois le courant coupé, le fait de demander à une loco de faire quelque chose (changer de sens, changer la vitesse, activer une fonction...) rétablisse le courant. Mais pas trop vite, parce qu'après un appui frénétique sur le bouton d'arrêt face à un accident imminent, la mauvaise manip et le clic sur autre chose est toujours possible. Un délai de 20 secondes a donc été introduit pour laisser le temps de remettre (ou d'enlever !) sur les rails ce qui devait l'être avant qu'une action sur une loco ne rétablisse le courant.
Pour gérer tout ça, un nouveau #define AUTOMATIC_POWER_RESTORE a été ajouté dans le config.h . S'il est défini, alors le comportement sera celui décrit pour les connexions Z21 uniquement, sans distinction entre app iOs ou Android puisque l'on ne sait pas les reconnaître... Dans Z21Throttle.h, la constante POWEROFF_ONDELAY de la classe Z21Throttle donne la durée du délai en secondes.
Pour ce qui est du non fonctionnement de l'appli Z21 noire. J'arrive à la faire fonctionner, mais avec beaucoup de mal. D'abord j'ai dû enlever tous les aiguillages ("switchs") du réseau sélectionné. En effet, l'appli demande des infos sur les aiguillages dès que l'on passe sur le poste de conduite, et mon interface ne répond pas bien, enfin c'est ce que j'en ai déduit... Je n'ai pas réussi à faire fonctionner ça, donc j'ai retiré les aiguillages. Malgré ça, ça ne marche toujours pas tout de suite. Il faut redémmarer Labox et là ça se met à marcher. Donc allumer Labox, connecter l'application, passer en mode conduite, puis redémarrer Labox. La connexion se refait immédiatement et ça marche. Encore un sujet à approfondir...
Cette version répond à la différence de comportement entre les versions iOs et Android de l'application Roco Z21.
Disons que dans les deux versions, la configuration de l'application dit que le bouton d'arrêt en haut de l'écran de conduite doit arrêter le courant sur les rails.
Dans la version Android, après avoir été pressé et avoir coupé le courant, le bouton se transforme en bouton de remise de courant.
Tandis que dans la version iOs, le bouton reste un bouton d'arrêt, et si on le represse, alors on coupe à nouveau le courant déjà coupé ! Etrange... Pas d'autre moyen pour relancer le courant que de fermer puis rouvrir l'application, perdant au passage les vitesses, fonctions et directions des locos pilotées.
Pour compenser ce comportement dérangeant, je n'ai pas voulu aller contre la volonté du développeur et transformer sur iOs ce bouton en va et vient comme sous Android. Surtout que le bouton ne changera pas, il ne deviendra pas vert pour signaler qu'un nouvel appui rétabliera le courant...
Bref, j'ai préféré faire en sorte qu'une fois le courant coupé, le fait de demander à une loco de faire quelque chose (changer de sens, changer la vitesse, activer une fonction...) rétablisse le courant. Mais pas trop vite, parce qu'après un appui frénétique sur le bouton d'arrêt face à un accident imminent, la mauvaise manip et le clic sur autre chose est toujours possible. Un délai de 20 secondes a donc été introduit pour laisser le temps de remettre (ou d'enlever !) sur les rails ce qui devait l'être avant qu'une action sur une loco ne rétablisse le courant.
Pour gérer tout ça, un nouveau #define AUTOMATIC_POWER_RESTORE a été ajouté dans le config.h . S'il est défini, alors le comportement sera celui décrit pour les connexions Z21 uniquement, sans distinction entre app iOs ou Android puisque l'on ne sait pas les reconnaître... Dans Z21Throttle.h, la constante POWEROFF_ONDELAY de la classe Z21Throttle donne la durée du délai en secondes.
Pour ce qui est du non fonctionnement de l'appli Z21 noire. J'arrive à la faire fonctionner, mais avec beaucoup de mal. D'abord j'ai dû enlever tous les aiguillages ("switchs") du réseau sélectionné. En effet, l'appli demande des infos sur les aiguillages dès que l'on passe sur le poste de conduite, et mon interface ne répond pas bien, enfin c'est ce que j'en ai déduit... Je n'ai pas réussi à faire fonctionner ça, donc j'ai retiré les aiguillages. Malgré ça, ça ne marche toujours pas tout de suite. Il faut redémmarer Labox et là ça se met à marcher. Donc allumer Labox, connecter l'application, passer en mode conduite, puis redémarrer Labox. La connexion se refait immédiatement et ça marche. Encore un sujet à approfondir...