Bonsoir Pascal,
Rien ne vous échappe !
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.
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.
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.
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
... et comptez sur moi pour vous aider.
Christophe