ch_porchet Posté 1 juin 2020 Auteur Posté 1 juin 2020 hello alors sur la Rpi4 je suis presque ,au meme stade que la Rpi 3. par contre sur la 4j'ai un problème de sortie d'ecran , du coup je passe par VNC ou teamviewer. j'ai relancer sur indi , mais par un poste que j'avais déjà ouvert pour l'installation de meteostation , on verra si j'ai plus de chance ! je te met aussi le lien. https://indilib.org/forum/ekos/6923-problem-installing-the-indi-meteostation.html?start=12#54957 pas encore essayé le BME280 et le TSL2591. A+
olivier1986 Posté 2 juin 2020 Posté 2 juin 2020 salut, désolé pas eu le temps de passer ces derniers jours. De plus j'ai repris le taf aujourd'hui. Je suis ton avancement. Je devrais recevoir mon BME + mon TSL aujourd'hui. Je verrais pour essayer ce soir mais pas sur. Pour ton pb d'hdmi je trouve cela surprenant pour du matériel neuf. Je verrais pour me le faire échanger. Donc tu en es où du coup à ce jour?
ch_porchet Posté 2 juin 2020 Auteur Posté 2 juin 2020 hello Alors sur la RPi3 au même stade ou on c'était arrêter , pas d'affichage de jauge ,mais graphique OK. sur la Rpi4 je vais installer le reste pour etre au meme stade que la 3. Par contre je vais souder les prise, à midi, des capteur que j'ai reçu . J'ai un gars qui ma dis sur le forum qu'il a déjà eu le meme problème et que c'était la carte qui était défectueuse. je vais peut etre la retourné. PS: tu as vu, j'ai aussi mis un commentair sur le poste que tu as ouvert spécialement pour la météoSation ,peut être que on devrais partager les avances sur l'autre poste au cas ou qqun aurai le même soucis . A Bientôt
olivier1986 Posté 2 juin 2020 Posté 2 juin 2020 (modifié) Non pas vu, je vais partir sur ce fil alors! Redis moi pour les capteurs. Attention aussi, le BME280 est en 3.3V et non 5V! Modifié 2 juin 2020 par olivier1986
nounouche Posté 18 mars 2021 Posté 18 mars 2021 Bonjour à tous, Je m'appelle Daniel, j'habite en Suisse et je suis à la recherche d'une solution pour commander mon toit d'observatoire avec EKOS. Il semble que j'ai trouvé mon bonheur sur ce fil d'échange 🙂 🙂. Actuellement, je pilote la commande du toit de manière semi-automatique et je voudrai le faire au moyen du montage proposé par Tom. Malheureusement, il m'est impossible de charger les documents d la première page !! Quelque peut-il m'aider ? Merci par avance Daniel Ah, maintenant ça marche. Je vous tiens au courant de l'avancement . Cordialement Daniel
ch_porchet Posté 19 mars 2021 Auteur Posté 19 mars 2021 Il y a 22 heures, nounouche a dit : Bonjour à tous, Je m'appelle Daniel, j'habite en Suisse Coool ,comme moi 😉 Si tu as des questions , j'essaierais dit répondre .
nounouche Posté 19 mars 2021 Posté 19 mars 2021 Merci infiniment. Je suis en train de faire le schéma avec QElectrotech. Je vais y intégrer divers éléments que j'utilise actuellement (variateur pour la commande du moteur démultiplié par exemple). Ma première question concerne les Arduino utilisés. En effet, je vois que tu utilise le modèle UNO. Je possède un Diecimila et un Leonardo, est-ce identique pour la programmation ? De plus, serait-il possible d'avoir deux ou trois images de l'interface du pilotage du toit dans EKOS, à quoi ça ressemble. Merci d'avance et excellente journée Daniel
ch_porchet Posté 22 mars 2021 Auteur Posté 22 mars 2021 Hello Alors au sujet des carte je peux pas te dire ,hélas ..... Mais sinon voila des images de kstars
nounouche Posté 23 mars 2021 Posté 23 mars 2021 Super, merci, je vais me procurer un Arduino Uno, ce sera plus simple. Par contre, au sujet du deuxième écran, c'est quoi "Auxiliary"? Plus qu'a faire des essais 🙂 Encore merci Daniel
ch_porchet Posté 23 mars 2021 Auteur Posté 23 mars 2021 (modifié) Alors l'auxiliaire .......... , c'est l'interrupteur "générale " de la commande 230VA de mon observatoire. Car j'ai mis un transformateur 230VA-12VC qui alimente le moteur du toit et je voulais pas qu'il soit tous le temps alimenté. Et du coup j'ai fais aussi que ce relais coupe tous le 230V de l'observatoire sauf une prise qui alimente le PC et l'arduino . Alors normalement le "générale" et commandée directement dès que l'arduino reçois l'info que Kstars communique avec l'arduino , mais j'ai quand même une commande manuel au cas ou cela ne fonctionnerais pas . Et j'ai la commande inverse, dès que kstars s'arrête ( après un délais) cela coupe le générale. Du coup je pense que c'est bien que tu prennes la même carte que moi..... Par contre ,pour cette option ,j'ai aucune idée comme cela fonctionne ! Car tous la partie communication driver indi et kstars ,c'est pas moi qui l'ai faite ,c'est Tom Gibson (forum Indi) qui en est le réalisateur. Car j'avoue que c'est trop abstrait pour moi ,et le mec il touche grave , j'aurai rien fait sans lui ,et il a prit un max de temps pour moi. Moi, j'ai juste fais la partie Code arduino de base pour l'ouverture du toit . Modifié 23 mars 2021 par ch_porchet
nounouche Posté 23 mars 2021 Posté 23 mars 2021 😂🤣, modeste avec ça, merci pour les infos 🙂 Je t’informerai de l'avancement car je suis aussi sur la piste de l'interface Indi<->automate IPX800... Daniel
plop3 Posté 12 mai 2021 Posté 12 mai 2021 Un grand merci pour le code Arduino et le driver Indi. Le driver Indi mériterait d'être intégré dans les pilotes 3rd-partie officiels. En plus ce serait pratique pour les mises à jour. De mon coté, je n'ai pas un abri à toit ouvrant, mais c'est tout l'abri qui se déplace sur rails. Les portes sont fermées par deux vérins électriques. Du coup, j'ai pas mal modifié le firmware Arduino pour ajouter la gestion des portes. Pour ma station météo, j'utilise WeatherRadio un peu modifié. En effet, j'ai des problèmes avec le MLX qui ne semble pas apprécier ses voisins et quand le MLX se plante les mesures des autres capteurs sont faussées aussi. Donc je l'ai mis tout seul sur un autre Wemos et Weatherradio se charge de récupérer les données du MLX par des requêtes http. Mon anénomètre est un TX20 d'une vieille station Lacrosse. J'ai intégré le code un peu "à l'arrache" dans ma version de WeatherWacher.
ch_porchet Posté 13 mai 2021 Auteur Posté 13 mai 2021 Il y a 17 heures, plop3 a dit : Pour ma station météo, j'utilise WeatherRadio un peu modifié. Moi aussi j'utilise WeatherRadio, mais j ai un problème récurant,en effet , elle ce bloqué après 8ou 10 jours . Et j'ai pas encore trouvé pourquoi! A+
nounouche Posté 3 juin 2021 Posté 3 juin 2021 Hello, Je progresse un peut avec mon observatoire. Par contre, j'ai un grand problème pour compiler le module Rolloffino. En effet, j'ai bien suivi ta procédure, même fait la manip. à Mustak, mais rien y fait, j'ai toujours le message " make: *** [Makefile:130 : all] Erreur 2 ls: impossible d'accéder à '/usr/bin/indi_rolloffino': Aucun fichier ou dossier de ce type" Je joint le fichier complet. Une idée peut-être ? Merci par avance et excellente journée Daniel erreur.txt
olivier1986 Posté 7 juin 2021 Posté 7 juin 2021 Le 13/05/2021 à 10:49, ch_porchet a dit : Moi aussi j'utilise WeatherRadio, mais j ai un problème récurant,en effet , elle ce bloqué après 8ou 10 jours . Et j'ai pas encore trouvé pourquoi! A+ Bonjour Christophe, il serait intéressant, je pense, de procéder à la mise à jour du driver indi! en effet depuis l'installation il y a eu bcp de MAJ majeures dont notamment la toute dernière 1.15!!! pas dur à faire et franchement ca vaut le coup J'avais des soucis sur les valeurs de pression: tous les X temps vraiment aléatoire je perdais les paramètres "site" et du coup la correction n'était plus bonne. Là, avec le nouveau firmware, en cas de plantage, le driver force à relancer tout comme il faut et cela de manière complètement transparente :). Manip à suivre: - tu vas dans le répertoire indi où sont stocker les "3rd party" (de base c'est dans le dossier Projects) - tu ouvres un terminal depuis de dossier et tu tapes : git pull -> cela va mettre à jour le répertoire "3rd party" - tu fermes le terminal - tu vas dans le dossier indi-duino et tu ouvres un terminal - dans le terminal tu lances les commandes suivantes: mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug ../ make -j4 sudo make install Après l'installation tu lances kstars et dans la version tu devrais lire 1.14 Et zou!! Olivier Le 03/06/2021 à 16:19, nounouche a dit : Hello, Je progresse un peut avec mon observatoire. Par contre, j'ai un grand problème pour compiler le module Rolloffino. En effet, j'ai bien suivi ta procédure, même fait la manip. à Mustak, mais rien y fait, j'ai toujours le message " make: *** [Makefile:130 : all] Erreur 2 ls: impossible d'accéder à '/usr/bin/indi_rolloffino': Aucun fichier ou dossier de ce type" Je joint le fichier complet. Une idée peut-être ? Merci par avance et excellente journée Daniel erreur.txt 4 Ko · 0 downloads @nounouche Bonjour nounouche, je viens de lire le rapport. Le fichier mentionne en effet que le fichier /usr/bin/indi_rolloffino n'existe pas. Cela provient du fait que le driver ne s'est pas installé correctement. As tu bien installé toutes les librairies et dépendance nécessaires? essais dans un terminal de faire ceci: sudo apt-get -y install libnova-dev libcfitsio-dev libusb-1.0-0-dev zlib1g-dev libgsl-dev build-essential cmake git libjpeg-dev libcurl4-gnutls-dev libtiff-dev libfftw3-dev libftdi-dev libgps-dev libraw-dev libdc1394-22-dev libgphoto2-dev libboost-dev libboost-regex-dev librtlsdr-dev liblimesuite-dev libftdi1-dev libavcodec-dev libavdevice-dev sudo apt-get install libnova-dev libcfitsio-dev libusb-1.0-0-dev zlib1g-dev libgsl-dev build-essential cmake git libjpeg-dev libcurl4-gnutls-dev libtiff-dev libftdi-dev libgps-dev libraw-dev libdc1394-22-dev libgphoto2-dev libboost-dev libboost-regex-dev librtlsdr-dev liblimesuite-dev libftdi1-dev sudo apt install libindi-dev Ensuite tu preux installer de driver en suivant ça: cd ~/Projects/indi-3rdparty git clone https://github.com/wotalota/indi-rolloffino.git mkdir indi-rolloffino/build cd indi-rolloffino/build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug ../ sudo make install reviens nous dire. cordialement.
ch_porchet Posté 7 juin 2021 Auteur Posté 7 juin 2021 Il y a 9 heures, olivier1986 a dit : njour Christophe, il serait intéressant, je pense, de procéder à la mise à jour du driver indi! en effet depuis l'installation il y a eu bcp de MAJ majeures dont notamment la toute dernière 1.15!!! pas dur à faire et franchement ca vaut le coup J'avais des soucis sur les valeurs de pression: tous les X temps vraiment aléatoire je perdais les paramètres "site" et du coup la correction n'était plus bonne. Là, avec le nouveau firmware, en cas de plantage, le driver force à relancer tout comme il faut et cela de manière complètement transparente :). Manip à suivre: - tu vas dans le répertoire indi où sont stocker les "3rd party" (de base c'est dans le dossier Projects) - tu ouvres un terminal depuis de dossier et tu tapes : git pull -> cela va mettre à jour le répertoire "3rd party" - tu fermes le terminal - tu vas dans le dossier indi-duino et tu ouvres un terminal - dans le terminal tu lances les commandes suivantes: mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug ../ make -j4 sudo make install Après l'installation tu lances kstars et dans la version tu devrais lire 1.14 Et zou!! Olivier Hello Olivier Merci ,je vais essayer ça dès que j'ai un moment. A bientôt Christophe
olivier1986 Posté 8 juin 2021 Posté 8 juin 2021 Il y a 9 heures, ch_porchet a dit : Hello Olivier Merci ,je vais essayer ça dès que j'ai un moment. A bientôt Christophe hésites pas si tu as besoin d'un coup de main
nounouche Posté 8 juin 2021 Posté 8 juin 2021 Bonjour les gens, J'ai fait quelques essais et je suis arrivé à implanter le driver ROLLOFFINO sur 3 pc avec la même méthode. J'ai fait un mix entre la version d'installation de Wotalota et tes conseils. Je met en fichier joint la procédure qui fonctionne chez moi. Je vais maintenant m’attaquer à la station météo. Merci pour tes précieux conseils, je vous tien au courant 🙂 Bien cordialement Daniel INstallation drivers 3D party (rolloff)
olivier1986 Posté 8 juin 2021 Posté 8 juin 2021 (modifié) il y a 10 minutes, nounouche a dit : Bonjour les gens, J'ai fait quelques essais et je suis arrivé à implanter le driver ROLLOFFINO sur 3 pc avec la même méthode. J'ai fait un mix entre la version d'installation de Wotalota et tes conseils. Je met en fichier joint la procédure qui fonctionne chez moi. Je vais maintenant m’attaquer à la station météo. Merci pour tes précieux conseils, je vous tien au courant 🙂 Bien cordialement Daniel INstallation drivers 3D party (rolloff) 1 Ko · 0 downloads Bonjour, content pour toi que cela fonctionne. A lire cela ressemble bcp à ce que j'ai publié quelques poste plus tôt Je suis en train de revisiter le driver arduino pour plus de commodités pour moi. (je n'ai pas besoin du contact reed par exemple). Ajout de quelques LED etc... je le déposerais ici pour qui veut concernant la station météo, avec Ch_Porchet nous l'avons installé. C'est pas si aisé que ça. La partie firmware est très bien faite mais la partie serveur web est assez délicate. Il faut jouer dans le Crontab et d'autre petites choses! tu as un post où l'on en parle avec Christophe. C'est ici: Enfin, pour la toute dernière mise à jour en V1.15 du driver INDI la doc n'est pas mise à jour à 100% et j'ai un poil galéré. N'hésites pas du coup edit: lien vers ma station météo weatherradio qui est dans ma maison ..... pour le moment! http://82.65.92.229:8280/weatherradio Olivier Modifié 8 juin 2021 par olivier1986
nounouche Posté 8 juin 2021 Posté 8 juin 2021 Hello Olivier, oui effectivement, j'ai relus plusieurs fois le fil du sujet et c'est quasiment identique, j'ai juste rassemblé vos expériences. 🙂 Suite aux prochaines aventures 😅😅 Daniel
olivier1986 Posté 8 juin 2021 Posté 8 juin 2021 (modifié) @ch_porchet Salut Christophe, je suis en train d'essayer de comprendre le code arduino. Bon, j'avoue avoir à peu près compris le fonctionnement, le plus délicat étant la partie Serial, et forcément....c'est sur celle-ci que je vais avoir une question Pour résumer, depuis le port série je peux allumer le relais 220V avec la commande suivante: (SET:AUXSET:ON) Donc jusque là tout va bien: Cette commande apparait bien ici dans le programme: else if (strcmp(command, "SET") == 0) { if (strcmp(target, "AUXSET") == 0) // Relais Alimentation { if (strcmp(value, "ON") == 0) { timerActive = true; if (!estAlimente) remotePowerRequest = true; Bon, sauf que lorsque je passe sur le pilotage de la motorisation ba ça ne fonctionne pas. De ma compréhension, le buffer série doit contenir une chaine de caractère ressemblant à cela: (command:target:value) Dans le programme on peut voir deux types de commande: GET et SET Je suppose donc que dans le cas de l'allumage du moteur il faut utiliser la commande SET. Pour la target, toujours de ma compréhension, je dois utiliser soit OPEN, soit CLOSE soit ABORT. // Power is on else { if (strcmp(target, "OPEN") == 0) // BoutonOpenState { BoutonOpenState = LOW; } else if (strcmp(target, "CLOSE") == 0) // BoutonCloseState { BoutonCloseState = LOW; } else if (strcmp(target, "ABORT") == 0) // BoutonStopState { BoutonStopState = LOW; là où ca coince c'est sur la valeur. J'ai eau essayé 0, 1, ON, OFF, LOW, HIGH, OPEN ..... il ne se passe rien. le moniteur série me renvoie une réponse avec en valeur ce que j'ai "écris, par exemple: - j'envoie la commande (SET:OPEN:ON) - le moniteur série répond (ACK:OPEN:ON) mais il ne se passe rien. Saurais tu quelle est la valeur à utiliser pour ouvrir ou fermer depuis le port série? Merci Christophe. EDIT: autant pour moi, j'ai trouvé réponses sur le site de Woltawolta: https://github.com/wotalota/indi-rolloffino/blob/master/readme.txt On y voit bien que les requêtes sont les bonnes. du coup je ne comprends pas pk les commandes fonctionnent avec le relais 220V mais pas sur les autres relais. Poutant depuis EKOS ça fonctionne!!! va comprendre quelque chose ralala!! l'informatique!! Olivier Modifié 8 juin 2021 par olivier1986
olivier1986 Posté 11 juin 2021 Posté 11 juin 2021 @ch_porchet Bonjour Christophe, j'ai pu avancer sur mes mésaventures. En fait, après moultes et moultes relecture du code arduino j'ai enfin compris ce qui n'allait pas!! Dans le code que tu fourni en 1ere page de ce topic il y'a une erreur! dans la loop() la fonction position_toit() n'est pas au bon endroit. Elle devrait être juste après le readUSB() alors que là elle est avant (juste après la lecture des boutons). Du coup tout fonctionne, en simulateur tinkerCAD et en vrai Je vais pouvoir bientôt commencer la création du coffret électrique Olivier
ch_porchet Posté 12 juin 2021 Auteur Posté 12 juin 2021 Hello Olivier, parce que tu avais quoi comme problème? Car je veux voir si chez moi j ai le même soucis. A+
olivier1986 Posté 14 juin 2021 Posté 14 juin 2021 @ch_porchet Salut Christophe, le soucis venait des commandes via le port série de l'ouverture et de fermeture. Dans le simu puis en vrai, si j'utilisais les boutons OUVRIR et FERMER, ca ne fonctionnait pas. J'ai donc débuggé le code et une ligne n'était pas à sa place: dans le code fourni à la page 1 de ce topic, dans la loop() tu as: // début du programme des fonctions if (estAlimente) { BoutonOpenState = digitalRead (BoutonOpen) ; BoutonCloseState = digitalRead (BoutonClose) ; FinOuvertureState = digitalRead (FinOuverture) ; FinOuvertureSecState = digitalRead (FinOuvertureSec) ; FinFermetureState = digitalRead (FinFermeture) ; FinFermetureSecState = digitalRead (FinFermetureSec) ; Telescope_ParcState = digitalRead (Telescope_Parc); BoutonStopState = digitalRead (BoutonStop); position_toit() ; if (timerActive) remotePowerRequest = inactivityCheck(); if (Serial && Serial.available() > 0) readUSB(); } delay(250); // 0.25 Mais en fait cela devrait être: // debut du programme des fonctions if (estAlimente) { BoutonOpenState = digitalRead (BoutonOpen) ; BoutonCloseState = digitalRead (BoutonClose) ; FinOuvertureState = digitalRead (FinOuverture) ; #ifdef use_fdc_security FinOuvertureSecState = digitalRead (FinOuvertureSec) ; #endif FinFermetureState = digitalRead (FinFermeture) ; #ifdef use_fdc_security FinFermetureSecState = digitalRead (FinFermetureSec) ; #endif #ifdef use_park_switch Telescope_ParcState = digitalRead (Telescope_Parc); #endif BoutonStopState = digitalRead (BoutonStop); if (timerActive) remotePowerRequest = inactivityCheck(); if (Serial && Serial.available() > 0) readUSB(); position_toit() ; } delay(250); // 0.25 Tu vois que dans ma loop() la fonction position_toit() se situe juste après la fonction readUSB(). Dans ton cas en fait il ne lit jamais la commande envoyée par le port série. Dans ma version tout refonctionne impeccablement Je joins ici ma version perso modifiée pour mes besoins, à savoir: - Ajout du choix d'utiliser ou non une led verte pour indiquer l'état ouvert du toit. - Choix d'utiliser ou non les fins de courses de sécurité -> si les gens ne souhaitent en mettre que 2. - Choix d'utiliser ou non les détecteurs de park de la monture -> Dans mon cas je laisse INDI gérer car pas de risque de collision. - Choix d'utiliser ou non le relais 12V optionnel. -> je l'ai laissé en place pour si un jour... et puis sur une rampe de 8 relais il est là... donc autant s'en servir!! A + Olivier RollOff_codefinal (4).ino
ch_porchet Posté 14 juin 2021 Auteur Posté 14 juin 2021 Ok, Je vais regarder, par contre moi j'ai des fois la fonction de la commande du relais qui n'est pas automatique quand cela se connect, du coup je dois le faire par la commande de kstars. Le truc que je n'ai jamais réussi à résoudre, c'est le faite que la commande du relais me pose un autre problème avec kstars, vu que celui-ci et commander après la connexion, je dois reconnecter via kstars les caméras. Ce qu'il faudrait arriver à faire c'est de mettre une tempo sur la connexion des agrégat connecter à kstars. Comme tant que le toit et pas ouvert ,les caméra,roue à filtre,etc ne se connecte pas. Mais je crois pas que l'on peut le faire. Mais le gros avantage ,c'est que quand tu a fini tous et couper du coup pas de consommation appart le micro PC en veille.
olivier1986 Posté 17 juin 2021 Posté 17 juin 2021 Le 14/06/2021 à 19:07, ch_porchet a dit : Ok, Je vais regarder, par contre moi j'ai des fois la fonction de la commande du relais qui n'est pas automatique quand cela se connect, du coup je dois le faire par la commande de kstars. Le truc que je n'ai jamais réussi à résoudre, c'est le faite que la commande du relais me pose un autre problème avec kstars, vu que celui-ci et commander après la connexion, je dois reconnecter via kstars les caméras. Ce qu'il faudrait arriver à faire c'est de mettre une tempo sur la connexion des agrégat connecter à kstars. Comme tant que le toit et pas ouvert ,les caméra,roue à filtre,etc ne se connecte pas. Mais je crois pas que l'on peut le faire. Mais le gros avantage ,c'est que quand tu a fini tous et couper du coup pas de consommation appart le micro PC en veille. Salut Christophe, je viens répondre dans la limite de mes connaissances Pour la 1ère partie, c'est plutôt étonnant que tu doivent le reconnecter à la main. Mais cela vient peut être d'un problème que je rencontre avec le code et que je suis en train de résoudre avec Tom. En effet, dans le code version boutons lorsque tu démarres la communication entre indi et l'arduino, INDI envoie la commande (CON:0:0). L'arduino retourne en echange comme réponse (ACK:0:0). Mais, car c'est là qu'arrive le mais, l'arduino la renvoie deux fois alors que pour toutes les autres commandes il n'en renvoie qu'une. Donc je dis bien peut être que ton problème vient d'ici. D'ailleurs, le programme de base sans les boutons (rolloff.ino.standard sur le git) ne revoie qu'une seule réponse (ACK:0:0). J'ai eu beau débogger le programme ligne par ligne je ne comprends pas vraiment pourquoi il fait deux fois la fonction sendAck(value) avec la commande (CON:0:0). A priori je pense que ca vient de la vérification du "estAlimente". J'échange à ce sujet avec Tom et te tiendrais informé de l'avancement. Concernant la deuxième partie de ton message, en fait je pense qu'il est tout à fait possible de faire ce que tu souhaites d'une manière un peu détourné. Je m'explique Si tu utilises la fonction scheduler tu peux lancer un script python de démarrage et de fin. Il te "suffit" alors de réaliser un script dans lequel tu fais exactement le cheminement que tu souhaites avec les tempo souhaiter ect etc... Par exemple, lance rolloff, attend 30s, lance cam1, attend 30s etc etc... Après je ne suis pas un pro de python donc je ne pourrais pas vraiment t'aider la dessus. Je pense que sur les fofo Indi tu trouveras ton bonheur. Olivier
Fred_76 Posté 17 juin 2021 Posté 17 juin 2021 // Handle requests to obtain the status of switches // GET: OPENED, CLOSED, LOCKED, AUXSTATE strcpy(value, "OFF"); if (strcmp(command, "GET") == 0) Le 14/06/2021 à 09:54, olivier1986 a dit : if (Serial && Serial.available() > 0) c’est pas beau ! La réponse à ce test est soit True (1) soit False (0). Donc ici tu cherches la réponse True. if (Serial && Serial.available()) tout court suffit. Ça te fait gagner quelques octets de mémoire. Sur Arduino, c’est utile. Le code fait aussi un énorme usage des if else if else ... Ca serait mieux de faire ça avec des switch case. Pour que le switch accepte une chaine de caractères, il faut utiliser une fonction de hash, par exemple voir solution ici : https://hbfs.wordpress.com/2017/01/10/strings-in-c-switchcase-statements/ Ca rendrait le code bien plus simple à lire et à débugger. Pour le double envoi dont tu parles, la fonction sendAck() est appelée deux fois dans le if (parseCommand()) 1) quand command = CON 2) quand il n'y a pas d'erreur et qu'on est branché Voilà pourquoi tu as cette erreur de double envoi. Pour corriger ça voici le code à modifier : if (strcmp(command, "CON") == 0) { if (!estAlimente) { remotePowerRequest = true; timerActive = true; } connecting = true; strcpy(value, INFO_1); // sendAck(value); // cette ligne n'est pas utile, l'envoi se fait à la fin }
olivier1986 Posté 17 juin 2021 Posté 17 juin 2021 il y a 55 minutes, Fred_76 a dit : c’est pas beau ! La réponse à ce test est soit True (1) soit False (0). Donc ici tu cherches la réponse True. if (Serial && Serial.available()) tout court suffit. Ça te fait gagner quelques octets de mémoire. Sur Arduino, c’est utile. Oui tu as raison. apres sur un arduino uno y’a largement de quoi faire c’est pas un très gros programme 🙂 mais hésites pas a regarder si tu trouves autre chose
Fred_76 Posté 17 juin 2021 Posté 17 juin 2021 il y a 2 minutes, olivier1986 a dit : Oui tu as raison. apres sur un arduino uno y’a largement de quoi faire c’est pas un très gros programme 🙂 mais hésites pas a regarder si tu trouves autre chose J'ai corrigé ton pb de double envoi de CON:0:0
Messages recommandés