9Fermer11
Pen^2Le 11/04/2016 à 21:45
Mmmm, bon, en fait com0com s'installe, mais il se trouve que dans le gestionnaire de périphériques de windows c'est listé dans une catégorie à part des COM physiques, et quelle qu'en soit la raison, le programme que je souhaite brancher sur ce port virtuel ne le liste pas ! (apparemment il y a 42 méthodes pour énumérer les ports sous win et ça ne doit pas utiliser la bonne grin)

Du coup j'ai tenté une démarche alternative : j'ai essayé de lui envoyer des trames arbitraires avec un arduino nano (driver FTDI) et un code custom qui, en gros, fait ceci :

void setup()
{
   serial.open(maVitesse)
}


loop()
{
   int sa= Serial.available() ;
   if ( sa >= laTailleMiniDeLaTrameDeCommande ) {
      maTrame= Serial.readMaTrame() ;
      if ( maTrame == laTrameQuiVaBien ) {
         Serial.write(laTrameArbitraireRenvoyéeAuProgramme) ;
      }
   }
}

Quand je teste avec hterm (ie j'envoie ma trame manuellement) l'arduino renvoie effectivement la trame arbitraire.
En revanche le programme que je veux étudier me renvoie des erreurs. Comme je ne suis pas sûr de ce qu'il envoie, j'ai testé avec un programme perso qui se connecte sur le port COM et qui envoie la trame de commande (laTrameQuiVaBien).
Surprise, ça ne fonctionne pas vraiment !?
Déjà, si je ne mets pas une pause >=250ms entre l'ouverture du port COM et l'envoi de la trame, je n'ai apparemment pas de réponse ?! (je m'en suis rendu compte car ça fonctionnait en traçant au débogueur uniquement triso)
Et finalement, en creusant un peu, je me suis rendu compte qu'en envoyant laTrameQuiVaBien, qui fait quatre octets (=laTailleMiniDeLaTrameDeCommande), l'arduino n'en reçoit apparemment que deux !? (du moins c'est ce que me répond Serial.available, même en le laissant tourner un bon moment).

Bref, je ne sais pas si vous avez des idées, mais à ce moment je me suis dit que c'était peut-être des problèmes liés au buffer du driver FTDI ?
Et j'en suis venu à me demander si le plus pratique pour débugguer tout ça ne serait pas de brancher la sortie série de mon convertisseur usb/serie arduino sur l'entrée série de mon arduino nano et de m'en servir pour voir ce qui ressort sur un second port COM physique tripo.
Est-ce que vous confirmez que ça me ferait bien une boucle COM fonctionnelle ?

(sinon à l'occasion je pourrais aussi essayer la version trial de http://www.fabulatech.com/virtual-serial-port-kit-download.html dont je parlais dans ./2... mais 15 jours ça sera peut-être juste)

PS : je suppose que je rate quelque chose d'évident donc n'hésitez pas et merci d'avance si vous avez des conseils cheeky