Auteur Sujet: DCC & CVs  (Lu 7048 fois)

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1254
  • 100% Arduino et N
    • Voir le profil
Re : DCC & CVs
« Réponse #30 le: août 20, 2016, 11:18:12 pm »
Hello les gars,

Voici une version 0.0.1 (en attendant mieux) de DCC++ considérablement amaigri et augmenté d'une fonction de récupération du CV de la loco placée SEULE sur la voie principale (il n'y a plus de voie de programmation dans ce code adapté d'aileurs au Nano).

Ces modifications comprennent :

  • l'ajout d'une méthode discover() dans la structure SerialCommand (SerialCommand.h)
  • le code de discover() dans SerialCommand.cpp : il simule l'envoi des commandes "<1><r 1 123 123><0>"
  • l'ajout d'une variable addressDccToDiscover dans la structure RegisterList de PacketRegister.h
  • l'ajout d'une fonction readCV_Main() dans PacketRegister.h et .ccp
  • l'appel de cette mécanique en fin de setup

mainRegs.addressDccToDiscover = 3;
  SerialCommand::discover(); // dcc adress found is stored in readCV_Main()
  Serial.println();
  Serial.print("adresse DCC : ");Serial.println(mainRegs.addressDccToDiscover);

Le principe est simple : en fin de Setup, on établi le courant sur la voie principale (<1>) puis on demande une lecture du CV 1 (<r1...>) où r est un caractère ajouté à la liste des commandes, puis on coupe le courant (<0>).

Le CV de la machine s'affiche dans la fenêtre du moniteur.
Il n'y a rien à faire, c'est automatique.

L'exploitation du numéro de CV découvert n'est pas écrite dans cette version, mais on l'a et c'est le principal.

J'espère que ça pourra vous servir  :D

Amicalement
Dominique

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1254
  • 100% Arduino et N
    • Voir le profil
Re : DCC & CVs
« Réponse #31 le: août 30, 2016, 04:25:43 pm »
Comme ça me démangeait, voici une nouvelle version de :
  • DCC++ version Nano seul sans piste de programmation et avec détection automatique de l'adresse DCC au démarrage sur la voie principale
  • ManetteDCC, en processing qui récupère cette adresse DCC correctement

Il suffit de poser une loco sur la voie et de lancer la manette. L'écran va passer en vert le temps de la recherche de l'adresse DCC puis redeviendra rouge.

L'adresse par défaut est 3 donc elle doit changer sur l'écran Processing si votre loco a une adresse différente.

Ensuite la manette s'utilise comme avant.

Cette version de DCCpp_VV a été modifiée (un peu) pour compiler sur l'IDE 1.6.9 car la version précédente avait été adaptée pour compiler sur la version 1.6.0 de l'IDE (à cause du vieux MacBook que j'emporte an vacances) et, malheureusement, il y a pas mal de petites choses qui ont changé.

La manette affiche les messages reçus dans la console et j'ai ajouté une mesure de courant qui s'affiche aussi dans la console. Mais elle ne semble pas très significative. Il y a encore des choses à creuser de ce coté là.