Liaison série <-> console qui se coupe

Bonjour a tous,

Sur une Uno j'ai un programme qui envoie toutes les minutes sur la console une ligne de données mesurées par des capteurs (température, courant...) pour le pilotage de la chaudière de ma maison.
Jusque la tout allait bien je passais une fois de temps en temps vérifier que tout allait bien en regardant l'historique dans la console.
Mais depuis qq jours je constate a chaque fois que la console a fonctionnee un moment puis n'a pas reçue de données depuis plusieurs heures.
Si je ferme la console et que j'en recouvre une j'ai un erreur qui indique que le port com est utilise. Je suis oblige de débrancher le câble USB et de le retrancher pour pouvoir reouvrir la console.
Savez vous ce qui peut provoquer ce blocage ?

Merci pour vos réponses

certainement un problème coté pc (mise en veille ou autre)

C'est possible, je vais vérifier le PC.

J'ai vérifié, tout semble indiquer que le PC ne passe pas en veille.
C'est toujours comme cala qu'il a été configuré et je n'ai rien modifié dessus...
Ce matin la console était toujours up, à suivre !

Si tu le laisses tourner longtemps, il est fort probable que le buffer mémoire du soft sature.

Bonjour,

Faire voir le code arduino :wink:
Quel logiciel utilise sur le pc ? Et sur quel OS ?

B@tto:
Si tu le laisses tourner longtemps, il est fort probable que le buffer mémoire du soft sature.

De quel buffer parles tu ? Celui de la console ?
Je l'ai laissé tourné pendant 3-4 jours sans problème et depuis 3 jours il bloque à moins de 24h de fonctionnement.

skywodd:
Bonjour,

Faire voir le code arduino :wink:
Quel logiciel utilise sur le pc ? Et sur quel OS ?

Je suis sous windows XP, le soft c'est arduino 1.0.3
Ouch, pour le code c'est au moins 10 fichiers cpp et autant de .h dans l'appli plus 4 libriaires... ca fait du monde

mogoye:

B@tto:
Si tu le laisses tourner longtemps, il est fort probable que le buffer mémoire du soft sature.

De quel buffer parles tu ? Celui de la console ?
Je l'ai laissé tourné pendant 3-4 jours sans problème et depuis 3 jours il bloque à moins de 24h de fonctionnement.

Et oui faut bien qu'il stocke les données quelque part ^^ je l'ai fait bugué y'a pas longtemps avec un envoi toute les secondes, tout dépend de la frequence d'envoi

1 envoi par minute d'environ 40 octets... pas énorme...
Je penche plus pour un pbm sur le PC.
Aujourd'hui je n'ai pas eu de coupure mais
je suis allé voir 2 fois dans la journée si TT allait bien (comme au début).
Ensuite comme tout semblait bien marcher je n'y passais que le soir et je pense que c'est a ce moment que ça a commencé a bloquer. Sûrement QQ chose qui se passe sur le PC après plusieurs heures

40 octets c'est pas mal néanmoins ... Fais un envoi par seconde, ça devrait planter rapidement si le problème vient de la

mogoye:
Ouch, pour le code c'est au moins 10 fichiers cpp et autant de .h dans l'appli plus 4 libriaires... ca fait du monde

Je serai tenté de dire que le probléme via de là ... mais c'est trop tôt pour l'affirmer.

Un buffer série qui sature côté ordi !? La blague :wink:
Sous windows le buffer c'est 4096 octets en réception et en émission.
Avec 40 octets par minute cela fait 102 minutes avant que le buffer sature, même le plus mauvais des terminaux séries aurait du lire le contenu du buffer entre temps.

Par contre il serait bon de savoir quel logiciel tu utilises pour le terminal ?
Celui ce base d'arduino ? Un autre ?
Si ça ce trouve c'est plutôt le buffer d'affichage du logiciel qui sature.

skywodd:
Si ça ce trouve c'est plutôt le buffer d'affichage du logiciel qui sature.

C'est de celui la que je parlais :wink:

skywodd:
Je serai tenté de dire que le probléme via de là ... mais c'est trop tôt pour l'affirmer.

Si tu penses à un soucis mémoire, buffer overflow ou qq chose comme cela, je ne pense pas.
J'ai un écran 4884 qui affiche en temps réel des données et là pas de soucis tout fonctionne toujours bien.

De plus c'est vraiement le coté PC qui semble planter car ensuite j'ai besoin de débrancher le port USB pour qu'il re-fonctionne.
Et dernier point depuis que j'ai posté mon message je vais voir régulièrement 2x par jour la console sur le PC donc "je le réveil" et là ça marche.
J'ai vraiment l'impression que c'est à partir du moment ou je passais moins souvent que ça a commencé à coincer...

skywodd:
Par contre il serait bon de savoir quel logiciel tu utilises pour le terminal ?
Celui ce base d'arduino ? Un autre ?
Si ça ce trouve c'est plutôt le buffer d'affichage du logiciel qui sature.

Oui c'est bien le terminal arduino. Mais je ne le mets pas en cause non plus (ou en tout cas pas sa capacité à recevoir mon volume de données) car il fonctionne plusieurs jours sans soucis (sauf les 3 fois ou ça à coincé en environ 12 à 15h).

Je pense que je vais m'en faire un en java comme ça en plus je pourrais grapher mes données :wink:

Tous les logiciels qui utilisent des ports Com virtuels ont ce genre de problèmes .
Depuis XP, il y a sous windows un paquet d'options de mise en veille à analyser et configurer .
Par défaut, à la mise en veille, les ports sont désactivés et ne sont pas réactivés au réveil.
La solution la plus rudimentaire consiste à ne pas autoriser la mise en veille ]:smiley: .

Il y a aussi, semble t-il, dans le logiciel arduino des points sensibles !
Chez moi une carte Uno est reconnue dans toutes circonstances : je branche et débranche la prise USB sans problème.
Avec une carte mega, je débranche/rebranche une fois ça marche.
Au delà, c'est la loterie et je suis souvent obligé de rebooter le PC pour que la carte soit reconnue ?

Cela n'empêche pas l'arduino de continuer à tourner comme un brave petit soldat.

alienboats:
La solution la plus rudimentaire consiste à ne pas autoriser la mise en veille ]:smiley: .

A priori c'est déjà le cas. J'ai juste l'écran qui est déactivé après 20 minutes, mais la veille interdite.
C'est pour cela que j'avais mis "je le réveil" entre guillemets mais je comprends que ça ne devais pas être évident à comprendre...

En tous cas merci à tous pour vos suggestions.