Auteur Sujet: Pas de communication avec décodeur  (Lu 5902 fois)

msport

  • Hero Member
  • *****
  • Messages: 1781
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Pas de communication avec décodeur
« Réponse #30 le: janvier 28, 2022, 10:55:39 pm »
Bonsoir,

au fait quel schéma utilisez vous pour votre centrale ?

Avez vous validé l'entrée analogique que vous utilisez pour le courant de la voie de programmation ?
-> exemple de l'IDE AnalogInOutSerial.ino


Cordialement

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 604
  • HO avec DCC++
    • Voir le profil
Re : Re : Pas de communication avec décodeur
« Réponse #31 le: janvier 29, 2022, 10:04:37 am »
En fait, les paramètres "client.connected()" et "client.available()" ne change pas (fichier SerialCommand.cpp)

   while (client.connected() && client.available()) {      // while there is data on the network
      c = client.read();
      if (c == '<') {                // start of new command
        html = false;
        sprintf(commandString, "");
      }
      else if (c == '>') parse(commandString);          // end of new command
      else if (strlen(commandString) < MAX_COMMAND_LENGTH) // if comandString still has space, append character just read from network
        sprintf(commandString, "%s%c", commandString, c);  // otherwise, character is ignored (but continue to look for '<' or '>')
    } // while
    if (html == true) {
      client.print("\n<div id='prev'>Loading...</div>\n");
      sprintf(commandString, "%s", "D");
      parse(commandString);
    }

Je tombe un peu par hasard sur ce bout de code dont j'ai compris qu'il ne fonctionnait pas. Je n'ai pas les lignes précédentes du code, mais s'il n'y en a pas, ça ne fonctionnera pas en HTML.

En effet, en Serial() par exemple, l'ouverture du port est permanente. Très exactement, l'instance de la class permettant d'utiliser l'objet Serial est faite automatiquement par le programme Arduino. Mais pour les connexions TCP, vous devez explicitement créer une instance de la class Server de nom client. Comme ceci EthernetClient client = server.available();
voir ici : https://www.arduino.cc/en/Reference/ServerAvailable

Et si vous utilisez le protocole HTML (au dessus de la couche TCP/IP don je viens de parler), votre navigateur attend du serveur un confirmation avant d'envoyer sa requête (commandes DCC++) Le code doit de l'Arduino doit donc envoyer client.println("HTTP/1.1 200 OK");

antoineleclercq

  • Newbie
  • *
  • Messages: 22
    • Voir le profil
Re : Pas de communication avec décodeur
« Réponse #32 le: février 02, 2022, 06:16:50 am »
Salut,

Merci pour ton retour, j'avais une extractio
n partielle. Le code est identique à celui du tuto de ce site. Donc les lignes suivantes figurent bien dans le code:
EthernetClient client = server.available()
&
[/size]client.println("HTTP/1.1 200 OK");


Ne trouvant pas ce qui ne fonctionnent pas je suis passé en liaison série avec JMRI, et la lecture des CVs restent aléatoires avec le Max471 comme capteur de courant.


bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 604
  • HO avec DCC++
    • Voir le profil
Re : Pas de communication avec décodeur
« Réponse #33 le: février 02, 2022, 07:06:38 am »
Il faudrait mettre en téléchargement toute la page de code.

antoineleclercq

  • Newbie
  • *
  • Messages: 22
    • Voir le profil
Re : Pas de communication avec décodeur
« Réponse #34 le: février 06, 2022, 05:57:30 pm »
Bonsoir à tous,

Désolé pour mon retour tardif, je vous pris de trouver ci-joint le code (qui est celui du forum : https://www.locoduino.org/IMG/zip/dccpp_ethernet_25_11_16_v3.zip

Et les fichiers principaux sont en PJ (ServerWeb.cpp, SerialCommand.cpp, et DCCEthernet.cpp). Je n'ai absolument rien modifié.

Bien à vous, et merci pour votre aide!

Antoine

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 604
  • HO avec DCC++
    • Voir le profil
Re : Pas de communication avec décodeur
« Réponse #35 le: février 06, 2022, 09:18:43 pm »
Antoine,

Ca va un peu dans toutes les directions on dirait.

Le problème de lecture des décodeurs est connu avec DCC++ (et DCCpp et aussi semble t’il avec DCC–Ex comme j’ai pu le constater). Cela ne concerne que quelques types de décodeurs et fort heureusement pas les plus connus ou rependus  comme ESU ou Marklin… Avec quelques Zimo je crois qu'il y a des problèmes. Personne n’est semble t’il capable de trouver une solution à l’heure actuelle.

A cela s’est ajouté les MAX471 défectueux.

Pour s’y retrouver, il faut procéder avec méthode. Effectivement en premier, s’assurer de la fiabilité du module de mesure de courant (MAX471, INA169…).

Ensuite, avoir la bonne version du logiciel correspondant à la configuration matérielle.

Mais ici, le code que tu mets à ma demande en téléchargement est une modification que j’avais faite de DCC++ pour un usage bien précis avec un contrôleur HTML. Ce contrôleur n’a jamais fait de la lecture/écriture de décodeur et n’a jamais été conçu pour cela ! Il ne faut pas utiliser ce code avec JMRI (qui communique en TCP).

Pour assurer au mieux ses chances de succès, je reprends le conseil de msport qui dit qu’il faut (en plus de s’être assuré du bon fonctionnement du module de lecture de courant) installer une version originale de DCC++ et utiliser JMRI dont on a pu constater le bon fonctionnement avec de nombreux décodeurs. Le LMD18200 est aussi l'une des cartes moteur qui semblent bien adaptée dans ce cas.

Après cela, pour le pilotage, tu pourras utiliser des solutions plus « exotiques » comme ce contrôleur à partir d’une page HTML.

 

antoineleclercq

  • Newbie
  • *
  • Messages: 22
    • Voir le profil
Re : Pas de communication avec décodeur
« Réponse #36 le: février 07, 2022, 05:50:49 pm »
Salut bobyAndCo

Merci pour ton retour, et JMRI je le teste également en //. La commande des décodeurs marchent parfaitement.


En refaisant des essais avec JMRI aujourd'hui quand je lance une lecture des éléments "basique" (adresse, CV 1 & 2 sens marche, etc.) sur la voie de programmation, j'ai toujours 255 pour CV, 127 pour l'adresse courte, et 16383 pour l'adresse longue.

Vu le REX d'autres personnes sur ce forum, j'ai commandé l'INA169 que je reçois en fin de semaine, on verra !

Merci pour ton support !
« Modifié: février 07, 2022, 10:51:43 pm par antoineleclercq »

antoineleclercq

  • Newbie
  • *
  • Messages: 22
    • Voir le profil
Re : Pas de communication avec décodeur
« Réponse #37 le: mai 08, 2022, 08:22:38 pm »
Bonsoir à tous,

Je suis désolé pour ce retour tardif, je n'ai pas pu plancher sur le sujet depuis mon dernier message. J'ai installé un capteur de courant de type INA169, mais sans effet. Par contre, éléments majeurs que je n'ai pas mentionnés auparavant:
- Lors que j'essaie de détecter le décodeur ou quand j'essaie de lire les données, la locomotive ne réagit pas.
- J'ai remarqué que JMRI ne propose pas de menu déroulant en bas de la fenêtre "Program on". J'ai mis ci-joint un screenshot, la deuxième PJ est l'extrait du tuto JRMI officiel, donc ce que je suis censé avoir comme menu déroulant. (J'ai installé la version 4.24)

Merci d'avance pour votre aide,
Bien à vous !

msport

  • Hero Member
  • *****
  • Messages: 1781
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Pas de communication avec décodeur
« Réponse #38 le: mai 08, 2022, 09:34:01 pm »
Bonsoir,
quelle est la marque et le modèle du décodeur que vous essayez de lire ?
Y a t il un stay alive ?
Avez vous tenté de lire l'adresse sur la voie de programmation depuis le serial monitor ?
Cordialement

antoineleclercq

  • Newbie
  • *
  • Messages: 22
    • Voir le profil
Re : Pas de communication avec décodeur
« Réponse #39 le: mai 09, 2022, 11:08:14 am »
Bonjour msport!

> Je fais les tests avec des modules ESU Loksound V5 (ref 58412)
> J'ai réinstallé DecoderPro (version 4.24), et quand je fais "off" puis "on" sur la voie de programmation, la locomotive roule. Je lance donc la lecture de l'onglet "Basique", j'ai des valeurs aléatoires.
> Je suis débutant le "stay alive", je ne connais pas, ça consiste en quoi ?
> Sur la voie de programme avec le serial monitor, je n'ai jamais fait le test

Bien à vous !

msport

  • Hero Member
  • *****
  • Messages: 1781
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Re : Pas de communication avec décodeur
« Réponse #40 le: mai 09, 2022, 06:07:56 pm »
J'ai réinstallé DecoderPro (version 4.24), et quand je fais "off" puis "on" sur la voie de programmation, la locomotive roule. Je lance donc la lecture de l'onglet "Basique", j'ai des valeurs aléatoires.

Normal, on ne peut pas lire les CV quand la locomotive roule, il faut régler ce problème avant.

Citer
le "stay alive",
c'est un/des condensateurs qui permettent aux locomotives de passer sur des mauvais contacts mais qui perturbe ou empêche la lecture des CV. Il faut débrancher le stay alive avant de lire les CV.

Citer
Sur la voie de programme avec le serial monitor, je n'ai jamais fait le test
Eh bien, c’est le moment de le faire :
poser une seule locomotive sur la voie de programmation faire dans le serial monitor :
<1> pour mettre sous tension
puis <R 1 123 123> et obtenir <r123|123|1 xxx> où xxx est l'adresse de la locomotive
comme on l'explique dans l'article :
https://www.locoduino.org/spip.php?article304

Citer
  Je suis débutant
Il ne reste plus qu'à lire les articles du site éditorial et du forum pour ne plus l'être.
Cordialement

msport

  • Hero Member
  • *****
  • Messages: 1781
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Re : Re : Pas de communication avec décodeur
« Réponse #41 le: mai 09, 2022, 08:14:10 pm »
le "stay alive",


Chez ESU, ça s'appelle power pack.
Cordialement

antoineleclercq

  • Newbie
  • *
  • Messages: 22
    • Voir le profil
Re : Pas de communication avec décodeur
« Réponse #42 le: juin 12, 2022, 03:37:36 pm »
Salut msport,

Désolé pour mon retour tardif. J'ai trouvé sur le forum  des préconisations d'installer DCC-Ex plutôt que DCCpp.

Et effectivement,.... j'arrive à lire et à écrire sur les décoders avec JMRI, aucun souci particulier!!

Merci pour ton temps et ton support,

Cordialement,

Antoine