Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - bobyAndCo

Pages: 1 ... 54 55 [56] 57 58 59
826
Le logiciel DCC++ / Re : Controller DCC++ Ethernet On-Line
« le: mars 05, 2017, 09:06:55 am »
Bonjour Dominique,

et merci pour tes commentaires. J'essaye à mon niveau de faciliter l'accès à DCC++ auquel je crois beaucoup.

Le lien sur "Aide en ligne" devrait je pense répondre à tes attentes pour ce qui est de la mise en œuvre. Sur ton mac, je confirme qu'il n'y a rien à installer. Il faut utiliser de préférence un navigateur pas trop ancien.

Bien à toi.

827
Le logiciel DCC++ / Controller DCC++ Ethernet On-Line
« le: mars 04, 2017, 06:57:24 pm »
Bonjour à tous,

Dans le prolongement des articles sur DCC++ :

•   Réalisation de centrales DCC avec le logiciel libre DCC++ (1) - Comment adapter ce très bon logiciel à ses besoins propres
•   Réalisation de centrales DCC avec le logiciel libre DCC++ (2) - Mise en œuvre d’un contrôleur pour BaseStation en HTML.
•   Réalisation de centrales DCC avec le logiciel libre DCC++ (3) - DCC++ : Quel matériel et quelle mise en œuvre ?

J’ai adapté une version on-line d’un Controller Ethernet. Son principal intérêt est qu’il est simple d’utilisation. Il n’y a rien à télécharger, rien à installer sur son ordinateur.

Tout en étant simple, il n’en est pas moins très complet. Possibilité de créer un nombre important de locomotives, accès aux fonctions F0 à F28. La possibilité de scanner les valeurs des cv des locomotives (jusqu’à 512 cv), possibilité de programmer toutes les cv, programmation simple des adresses longues etc…

Ce projet est principalement destiné à tous ceux qui souhaitent mettre en œuvre rapidement et simplement une configuration DCC++ avec ARDUINO sur leur réseau sans entrer dans des configurations compliquées.

J’espérer que ce projet permettra au plus grand nombre d’utiliser DCC++ et qu’il permettra d’en appréhender les principales fonctionnalités.

Il ne demande qu’à évoluer pour répondre toujours mieux à son ambition. J’ai ouvert ce fil pour cela mais aussi pour que vous puissiez formuler des attentes et pour partager les expériences.

N’hésitez pas à essayer, je pense vraiment que vous serez surpris !

Accéder à DCC++ Controller Ethernet On-Line :http://176.154.165.92/locoduino/controller_dccpp/controller.php

Accéder à l'aide en ligne : http://176.154.165.92/locoduino/controller_dccpp/dccppController/index.php

BobyAndCo

PS : Cette configuration nécessite un ARDUINO MEGA et un shield ethernet.

828
Présentez vous ! / Re : Bonjour de Tarragona (Espagne)
« le: février 22, 2017, 08:04:46 pm »
Bienvenue José,

Je vois que Locoduino a franchi le Pyrénées. Peut être peut-on y voir une marque de la qualité et du sérieux des publications ?

Comptez sur la communauté pour vous aider dans votre projet.

A très bientôt.

Christophe

829
Le logiciel DCC++ / Re : DCC++ et pilotage d'aiguillage
« le: février 14, 2017, 08:48:49 pm »
Merci JC60 pour ce retour qui pourra en aider certains. Personnellement, je n'utilise le DCC que pour la traction (et un pont tournant car je n'ai pas d'autre moyen). Pour la détection et les aiguilles, ce sont des MEGA qui actionnent tout cela en direct.

Dans tous les cas, je vous invite à construire vos propres décodeurs. Ca sera probablement laborieux au début mais vous aurez la satisfaction de les avoir fait, à moindre coût c'est à peu près certain et vous en aurez beaucoup plus la maîtrise.

Voir l'un des articles de Jean-Pierre sur ce sujet spécifique avec un NANO : http://www.locoduino.org/spip.php?article142 et tous les autres qu'il a écrit sur les décodeurs d'accessoires en générale.

Continuez à alimenter ce fil en nous tenant informés de vos avancées.

830
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: janvier 31, 2017, 01:08:54 am »
Pascal,

Il m'est revenu une chose, vous avez bien le réglage "port série" dans le fichier Config.h ? de DCC++ Base Station ?

// DEFINE COMMUNICATIONS INTERFACE
//
//  0 = Built-in Serial Port
//  1 = Arduino.cc Ethernet/SD-Card Shield
//  2 = Arduino.org Ethernet/SD-Card Shield
//  3 = Seeed Studio Ethernet/SD-Card Shield W5200

#define COMM_INTERFACE   0

avec #define COMM_INTERFACE   0

En effet, dans votre configuration, la liaison HTTP se fait du navigateur à Node. Mais de Node à l'Arduino, vous êtes en série. Ca n'a pas empêché de fonctionner mais ça peut jouer pour le message de retour puisque COMM_INTERFACE n'est pas la même.

A voir !

Christophe

831
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: janvier 30, 2017, 09:52:43 pm »
Citer
Impressionnant ! Quel plaisir de voir de tels résultats. Et ça n'est pas fini !!  ;)

Merci Denis,

Il y a un peu de boulot, c'est vrai. Ce que j'espère surtout c'est que ça reste excessivement simple d'usage pour l'utilisateur, convivial et ergonomique.

Ce que fait Pascal t'intéressera au plus haut point puisqu'il s'agit ni plus ni moins de Node.js qui fait des merveilles sur Raspberry.

Et c'est pas fini !



Bien amicalement.

Christophe

832
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: janvier 30, 2017, 09:40:18 pm »
Bonsoir Pascal,

Rien ne vous échappe !

Citer
j'ai 2 locos donc pourquoi pas 2 éléments ?

En fait, c'est tout l'objet "locomotive" qui est envoyé au localstorage -> 1 élément. C'est exactement le même contenu que le fichier data.json, c'est comme si il disait "1 fichier dans le localstorage". Donc vous avez réussi à enregistrer dans le localstorage CQFD.

Mais il y a moyen d'être plus précis, il faudrait alors écrire : localStorage.locomotives.length qui renvérait le nombre d'éléments dans l'objet "locomotives" du localstorage.

Citer
le bouton "Enregistrer dans le fichier 'data-json' " par contre reste inopérant dans mon cas (pourquoi pas une option export sur le disque local ). j'ai php d'installer sur ma machine PHP 7.0.13-0ubuntu0.16.04.1

Enregistrer ou export c'est la même chose !

Si je n'abuse, 0ubuntu est un serveur à part entière, cela veut dire qu'il fonctionne en parallèle de Node sur votre machine. Vous avez donc 2 serveurs actifs, non ? Si c'est le cas, ça ne marche pas comme cela ! Comment voulez-vous que Node communique avec Oubuntu ? Pour moi la solution la plus élégante et efficace est d'installer le module File System de Node et d'utiliser les commandes https://www.npmjs.com/package/file-system. C'est vraiment très simple pour quelqu'un qui est arrivé là où vous en êtes.

Citer
c'est le dessin des boutons qui pose problème ... si vous avez une idée , je suis preneur.

Envoyez moi une copie d'écran. Je ne vois pas comme cela. Envoyez moi aussi une capture du répertoire sur le disque, j'ai bien l'impression qu'il y a des dossiers qui ne sont pas à leur place.

Citer
juste l'adresse IP de mon serveur a ajouter aux 2 existantes

Vous pouvez surtout supprimer les 2 autres pour les remplacer par la votre :

$scope.ipArduinoSelect = ["192.168.1.200:2560"];
Attention, il n'y a pas de "," après "192.168.1.200:2560" principe des tableaux et des objets commun à tous les langages. Au passage, je m'aperçois que j'ai oublié le ";" à la fin de la commande, mais Javascript est très permissif !

Pour le retour des logs, je pense qu'il faut programmer quelque chose comme cela à la ligne 123 de votre .js

response.writeHead(200, "OK", {'Content-Type': 'text/plain'});
         response.write('Message de test');
         response.end();

avec tout d'abord un message "en dur" : Message de test pout voir s'il apparait dans la fenêtre de log du Controller. Ensuite, ça fonctionne, il faut trouver le body renvoyé par le serveur de DCC++ Base Station, c'est le simple message de type <T 1 90 1>. Vous m'avez dit que vous le voyez sur la console, c'est une variable, elle est dans un callback sur evenement ".on(succes)" certainement de type .on('success', (function(response) {
   -> response étant le return de DCC++ Base Station
});

mais il faut trouver laquelle.

Et là, hop, il faut renvoyer le body du type :

response.writeHead(200, "OK", {'Content-Type': 'text/plain'});
         response.write(response);
         response.end();

Cette page m'a l'air super bien faite : https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/

En tous les cas, j'ai regardé à nouveau votre code de "srv-web-serial_v0.3.js", c'est vraiment bien. Je l'ai déjà dit mais il y a derrière cela un gros potentiel car Node sait par exemple exécuter des programmes écrits en C/C++ est donc envoyer le commandes à l'Arduino par le port série. Ca va intéresser beaucoup de monde à Locoduino.

Courage  :P  ... et comptez sur moi pour vous aider.

Christophe





833
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: janvier 30, 2017, 06:02:48 pm »
Bonsoir à tous,

Sur les recommandations de Pascal, j'ai ajouté un certain nombre de fonctionnalités à mon Controller DCC++.



J'ai ajouté le n° de version  :)

J'ai principalement ajouté une zone de paramétrage qui est rétractable en cliquant sur la petite flèche en haut à gauche de la fenêtre.

On peut choisir l'IP de DCC++ Base Station quand on a plusieurs configurations.

Le bouton "lecture de CV's" est passé ici ce qui est plus ergonomique et je lui ai ajouté une option (menu déroulant) portant sur le nombre de CV's que l'on souhaite lire.

Mais les principales nouveautés portent sur les sauvegardes :

- Il est possible d'activer ou de désactiver la sauvegarde automatique dans le localstorage. C'est une fonctionnalité très intéressante introduite avec HTML 5. Voir détails ici : http://www.alsacreations.com/article/lire/1402-web-storage-localstorage-sessionstorage.html
- Il est également possible de gérer manuellement le contenu du localstorage, enregistrement ou effacement.
- Enfin, on peut charger un fichier de données extérieur (data.json) ou sauvegarder ces données.

Voilà donc des options complètes de sauvegarde et qui vont permettre à Pascale de résoudre son problème (absence de PHP dans sa config actuelle).

J'ai mis en téléchargement la dernière version (2.7) du Controller DCC++ en HTML : http://185.14.178.233/locoduino/controller_dccpp.zip

La version démo en ligne est visible ici : http://185.14.178.233/locoduino/controller_dccpp/controller.html

PS pour Pascal : Attention si vous faites la MAJ à reporter les modifications que vous avez pu faire dans le HTML (bibliothèques que vous avez passées en local) ou dans le JS avant d'écraser ces fichiers.

Bien amicalement.

Christophe


834
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: janvier 29, 2017, 09:27:45 pm »
Bonsoir Pascal,

Citer
je n'arrive pas a avoir le retour vers la page controller.html (log) des fonctions envoyées
j'ai le retour seulement sur la console de nodejs. avez-vous une idée comment faire le lien entre nodejs et controller.js et controller.html

Je n'ai pas la réponse comme cela. Il faudra voir l'ensemble du code (Node et controller.js) et les échanges. Mais j'ai l'intuition que cela ne sera pas compliqué à résoudre.

Pour localstorage, désolé, je ne comprends pas du tout ce que vous dites ...  :-\  Envoyez moi le code de contrôler.js que vous avez modifié ça sera plus simple !

Alors pour les dossiers rapatriés en local, tout d'abord <script src="https://web/jquery.min.js"></script> je doute que ça fonctionne. Ne vaudrait il pas mieux mettre <script src="web/jquery.min.js">

Citer
il manque les boutons ?

J'ai bien peur qu'en copiant "web/css/bootstrap.min.css" vous n'ayez écrasé "css/w3css/w3.css" (<link rel="stylesheet" href="css/w3css/w3.css">) qui étaient déjà en local. C'est ce dossier là pour les boutons.

Et désolé une nouvelle fois, je ne vous comprends pas ici aussi :
Citer
par contre quand cela ne fonctionne pas 1 fois c'est jusqu'à l'infini. le seul moyen que j'ai trouvé c'est de faire <0> puis <1>.

Soyez plus précis. S'agit t'il d'une 3° loco ? Décrivez un peu plus le problème et la configuration concernée.

Mais vous avez passé tout le WE là dessus, ça explique sans doute un peu de fatigue. Dans tous les cas, vous avez drôlement bien avancé en peu de temps.

Bien amicalement.

Christophe

835
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: janvier 29, 2017, 03:59:58 pm »
Sur I-Pad, c'est vraiment une expérience de jeu intéressante  ;D


836
Présentez vous ! / Re : Bonjour
« le: janvier 29, 2017, 12:26:17 pm »
Bonjour Dédé et bienvenue.

Il n'y a pas de questions bêtes. Que des idiots qui n'osent pas les poser  :) Par contre, il y a plein de sujets déjà abordés, alors il faut les lire pour ne pas poser des questions déjà posées.

Si la communauté peut t'aider, ce sera avec plaisir.

Christophe

837
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: janvier 29, 2017, 12:18:07 pm »
Bonjour Pascal,

Merci encore !

Concernant la sauvegarde dans le fichier data.json. La sauvegarde est appelée quand on quitte la page ou qu'on la recharge. Appel aux alentours de la ligne 695 $scope.saveParamPhp(); Le code de la fonction saveParamPhp() est aux alentours de la ligne 649. Mais je ne suis pas étonné que cela ne fonctionne pas dans votre cas car la fonction appelle un script php pour copier les données. Ce fichier de script est "save_data.php" qui est dans le même répertoire sur le disque. Or votre installation de Node.js ne doit probablement pas exécuter du PHP ? Voir ici https://www.npmjs.com/package/node-php-server.

Ceci dit, j'ai développé un autre moyen de sauvegarder les datas avec l'appel de la fonction localStorage.setItem("locomotives",JSON.stringify($scope.locomotives)); aux alentours de la ligne 701 qu'il faudra décommenter.

Dans ce cas, il faudra aussi décommenter la ligne aux alentours de 720 $scope.loadLocalStorage (); pour que les données sauvegardées dans le localstorage soient chargées au lancement de l'application.

A tous les lancements de l'application, c'est le chargement des données contenues dans le localstorage (si il y en a) qui est réalisé. Le chargement du fichier data.json n'est opéré que si le localstorage est vide. En utilisation normale, c'est le plus simple. Le fichier data.json est appelé une première fois, puis les données sont chaque fois sauvegardées dans le localstorage et rappelé à partir de celui-ci à chaque ouverture. Mais ça veut dire que toute modification des datas doit se faire dans ce cas sur les données du localstorage et non dans le fichier data.json (qui est toujours mis à jour si PHP fonctionne mais qui n'est plus appelé tant que localstorage n'est pas vide).

Enfin, une autre solution existe qui serait de remplacer les opérations "File System" réalisées en PHP par les opérations FS de Node ("fs.writeFileSync" etc...).

Bon ça parait peut être un peu compliqué mais en "mode utilisateur", c'est très simple. Tout ceci est bien commenté dans le code à partir de la ligne 694.

Citer
Question sur controller.html : l'application pourrai t-elle fonctionner si nous n'avons pas de connection internet exterieur (juste le réseau local)

Réponse de normand (et pourtant je suis breton) : oui et non. Non en l'état car elle utilise des bibliothèques extérieures (ligne 9, 10 et 11 du fichier controller.html) :

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

Oui si vous téléchargez ces bibliothèques sur votre disque dur en recréant le paths des lignes dont je parle ci-dessus.

Question electronique : peut-on imaginer un bouton qui reconnecte les 3 pins de l'arduino pour basculer les même voies en "voie de programmation" pins : 10,3,A0 / "voie principale pins :  5,11,A1")
Je ne vois pas trop bien comment si j'ai une lecture littérale de ce que vous écrivez. Il y a certainement des bidouilles possibles, plus ou moins judicieuses. Selon moi, pour éviter de se faire ch..r et de voir éventuellement de la fumée sortir du bazar, il faut adopter l'un des montages que je préconise http://www.locoduino.org/spip.php?article187. Ajouter un LMD18200 et un MAX41 n'est pas ruinant !

Pour finir, je profite de ce post pour lancer un appel concernant la lecture et la programmation qui sont totalement impossibles avec certains décodeurs. Sur la voie de programmation essentiellement, mais il peut aussi arriver la même chose sur la voie principale. Cela fait un petit moment que Dominique et moi avons constatés ce problème mais n'avons aucune piste sérieuse pour comprendre. Le message retourné par DCC++ Base Station (en voie de programmation) est systématiquement terminé par -1 (code d'erreur) returns: <r CALLBACKNUM|CALLBACKSUB|CV Value)
            where VALUE is a number from 0-255 as read from the requested CV, or -1 if verificaiton read fails


Toutes vos suggestions sont les bienvenues pour essayer de trouver une solution à ce problème.

Bien cordialement.

Christophe

838
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: janvier 29, 2017, 02:16:17 am »
Bonsoir,

J'ai mis en téléchargement la dernière version (2.4) du controller DCC++ en HTML : http://185.14.178.233/locoduino/controller_dccpp.zip

La version démo en ligne est visible ici : http://185.14.178.233/locoduino/controller_dccpp/controller.html

C'est une version admissible qui peut présenter quelques bugs mineurs.

Les principales améliorations tournent autour de la programmation des CV's. On peut programmer sur la voie principale (quand les décodeurs le permettent) et sur la voie de programmation.

J'ai aussi implanté une commande bien utile qui scanne les CV's de la loco qui est sur la voie de programmation et les présentent en liste. Ce scan n'est nécessaire que quand la loco n'est pas encore connue du controller.



Pour répondre à la demande de Pascal, j'ai implanté une fonction qui arrête la loco quand on programme sur la voie principale  8)

Pour ceux qui ont déjà implanté le controller et qui auraient commencé à personnaliser leur fichier data.json, ne recopiez pas ce fichier au risque de perdre vos modifications. Idem pour le dossier img si vous avez ajouté vos propres images. Tous les autres fichiers doivent être recopiés pour écraser les anciens.

J'attends vos retours pour corrections.

Amitiés Locoduinesques.

Christophe

839
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: janvier 28, 2017, 10:30:42 pm »
Bonsoir Pascal,

Si je comprends bien, vous avez un controller opérationnel au moins pour ce qui concerne la traction : marche av/ar, vitesse. En ce qui concerne les fonctions ? Arrivez-vous à activer les lumières, les sons ... ?

Comme je vous le disais, le recours à Node.js est un très bon choix. Ce serait bien que vous fassiez un descriptif quand vous aurez fini car c'est une solution intéressante à publier.

Prenez du plaisir à développer votre solution et tenez-moi au courant de vos évolutions.

Vous avez raison, ça doit même pouvoir s'automatiser :
Citer
une petite demande d'évolution : pouvez-vous afficher un avertissement qu'il faut arrêter la loco pour changer son adresse (cv1) d'avance merci

Je mets la dernière main sur certaines évolutions qui concernent essentiellement le réglage des CV's. Tout d'abord une fonction Lecture de CV's qui permet de scanner dans le controller les réglages actuels des CV's de la loco qui est sur la voie de programmation. Il est aussi possible d'ajouter les libellés des CV's. Et bien sûr, tout est enregistré même à la mise hors tension.



Les valeurs sont visibles dans une liste que l'on voit au bas de l'image ci-dessous. Par ailleurs on peut constater que les réglages sont possibles pour la voie de programmation (prog) ou voie principale (main).



Le controller commence à être vraiment complet et je pense assez simple et convivial. Je ne voulais surtout pas une usine à gaz ! Mais ça, c'est les utilisateurs comme vous qui le direz.

J'ai fait des tests sur un I-Pad, c'est une expérience intéressante d'être complètement mobile autour du circuit et de pouvoir en même temps en piloter tous les paramètres. Vous pouvez-vous aussi dans votre configuration utiliser des terminaux portables si vous êtes relié au wifi de la box.

Au plaisir de vous aider car vous avez avancé vraiment bien.

Christophe.


840
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: janvier 28, 2017, 06:03:17 pm »
Bonjour Pascal,

Tout d'abord, vous n'avez pas la dernière version. Ca ne change rien au fonctionnement général mais ça explique :
Citer
J'ai un problème au lancement de votre page qui me donne une erreur dans Log a coté du bouton power

qui est corrigé depuis. Je vous adresserai la version actuelle dès que j'ai fini des évolutions importantes (2-3 jours).

La fonction :

function afficheReponse(response) {
$scope.responseServeur = response;
$timeout(clearAfficheResponse, 1000);   // ... pendant 1 seconde
};

sert à afficher la réponse de DCC++ Base Station quand il y en a une du type <T 1 50 0> quand on a envoyé par exemple avec succès <t1 3 50 0>. Si elle ne fonctionne pas pour l'instant, c'est à dire que Node ne renvoie pas le message au controller, ce n'est pas grave car ce n'est pas bloquant.

Quand vous dites :
Citer
j'arrive a envoyer une trame (d'essai) vers le port serie de dcc++ base station qui fait avancer ma loco

Vous parlez d'un message entré depuis le moniteur de l'IDE ou s'agit il bien d'un message qui part de Node ? Dans le dernier cas, vous n'êtes pas loin du but.

Quand vous dites :
Citer
j'arrive a récupérer par exemple une trame <t1 3 50 0> mais elle a des caractères non voulus {}''

c'est à quel niveau. Dans DCC++ ? Au niveau de Node ? Si c'est au niveau de DCC++, ça voudrait dire que Node relaie le message sous forme d'objet json {}. Mais DCC++ n'en tient pas compte puisqu'il ne retient dans la requette envoyée que ce qui est à partir de "<" jusqu'à ">". Cela ne devrait donc pas poser de problème.

Si c'est au niveau de Node, c'est à dire que Node reçoit ce message du controller, je suis étonné. Mais bon. Il y aurait effectivement moyen de filtrer en Javascript tout bêtement avec "replace"

var str = "{<t1 3 50 0>}";
var res = str.replace("{", "");
res = str.replace("}", "");

donc res = <t1 3 50 0> Ou mieux avec des expressions rationnelles "RegExp" si elles vous sont familières.

Soyez plus précis sur ce point.

Enfin, je ne comprends pas du tout :
Citer
Dès que je mets l'adresse ip de mon serveur  dans  controller.js , qu'attends t-il comme réponse de l'arduino ?  et cela refonctionne dès que je remets $scope.ipArduinoDcc = "192.168.1.200:2560";  ??

Bien à vous.

Christophe


Pages: 1 ... 54 55 [56] 57 58 59