yovotsa
Messages postés7Date d'inscriptionjeudi 28 juin 2007StatutMembreDernière intervention10 mars 2010
-
29 mai 2008 à 17:34
LiaGalanodel
Messages postés19Date d'inscriptionmercredi 3 mars 2010StatutMembreDernière intervention29 juillet 2010
-
29 avril 2010 à 09:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
LiaGalanodel
Messages postés19Date d'inscriptionmercredi 3 mars 2010StatutMembreDernière intervention29 juillet 20101 29 avril 2010 à 09:12
Super code!
Merci beaucoup.
pem1664
Messages postés4Date d'inscriptionmercredi 17 septembre 2008StatutMembreDernière intervention28 février 2011 3 sept. 2009 à 09:51
Bonjour,
merci Astalavista pour cette classe, ca faisait un bail que je cherchait comment utiliser le port série sous linux autrement qu'avec gtkterm..
J'aurais besoin d'envoyer une chaine de caractere comportant SM et le code ascii correspondant a un nombre compris entre 0 et 200.
Quelqu'un pourrait il me donner un coup de main pour m'expliquer comment modifier la classe :
int tRs232::Envoyer(char* pChaine, unsigned int chaineLen)
{
int Res = write (fd, pChaine, chaineLen);
return (Res);
}
pour encapsuler dans pChaine la valeur ascii d'un nombre compris entre 0 et 200?
merci :)
cs_Astalavista
Messages postés192Date d'inscriptionlundi 24 décembre 2001StatutMembreDernière intervention 3 février 2010 22 juin 2009 à 16:12
Tu devrais déjà apprendre les bases du C++ :)
Si tu les as :
Tu initialise une instance de la classe tRS232 (ou tRS485 suivant ce que tu utilise) dans ton main
et dans l'action du bouton tu envoi ta chaine,
Mais le caractère null va te poser des problèmes avec le miens, vu qu'il est fait pour envoyer une chaine, et le caractère null est définit comme une fin de chaine ...
Je te conseil d'héritier de la classe et de surcharger la méthode (ou de la modifier directement ou d'en ajouter une autre, c'est encore mieux, comme ca tu peut utiliser les deux types):
int tRs232::Envoyer(char* pChaine, unsigned int chaineLen)
{
int Res = write (fd, pChaine, chaineLen);
return (Res);
}
Rou25
Messages postés16Date d'inscriptionlundi 30 octobre 2006StatutMembreDernière intervention10 juin 2009 22 juin 2009 à 14:29
Oui, en fait, je dois envoyer un code ASCII representant un NULL ou une donnée 0 directement sur le TX de mon port série. ensuite le module le recevra sur le RX. T'as raison, je me mal exprimé. Mais l'ennui c'est que je ne sais pas comment le faire par C++. Par exemple, quand je clique sur un bouton, il envoi un 0 sur le TX et tant que je ne reclique pas, il fait un loop.
Bon voila, je qqun peut maider, ce serai trop gentil!
Merci.
cs_Astalavista
Messages postés192Date d'inscriptionlundi 24 décembre 2001StatutMembreDernière intervention 3 février 2010 22 juin 2009 à 14:12
Tu ne peut pas envoyer sur le RX, c'est la réception, mais tu peut sur le TX (donc le RX au module :) )
Mais pour ton souci, je ne voit pas vraiment là ...
Tu ne doit pas envoyer la donnée 0 plutôt ?
Rou25
Messages postés16Date d'inscriptionlundi 30 octobre 2006StatutMembreDernière intervention10 juin 2009 22 juin 2009 à 11:00
salut, j'avais une question. Comment dois-je faire pour envoyer un 1 ou 0 sur un TX ou RX avec C++ ou un autre langage? En fait, je dois faire un reset sur un module en envoyant un 0 sur le RX pendant un temps assez long pour faire le reset. Mais j'arrive pas.
Peut tu maider stp.
Merci a bientot!
yovotsa
Messages postés7Date d'inscriptionjeudi 28 juin 2007StatutMembreDernière intervention10 mars 2010 29 mai 2008 à 17:34
29 avril 2010 à 09:12
Merci beaucoup.
3 sept. 2009 à 09:51
merci Astalavista pour cette classe, ca faisait un bail que je cherchait comment utiliser le port série sous linux autrement qu'avec gtkterm..
J'aurais besoin d'envoyer une chaine de caractere comportant SM et le code ascii correspondant a un nombre compris entre 0 et 200.
Quelqu'un pourrait il me donner un coup de main pour m'expliquer comment modifier la classe :
int tRs232::Envoyer(char* pChaine, unsigned int chaineLen)
{
int Res = write (fd, pChaine, chaineLen);
return (Res);
}
pour encapsuler dans pChaine la valeur ascii d'un nombre compris entre 0 et 200?
merci :)
22 juin 2009 à 16:12
Si tu les as :
Tu initialise une instance de la classe tRS232 (ou tRS485 suivant ce que tu utilise) dans ton main
et dans l'action du bouton tu envoi ta chaine,
Mais le caractère null va te poser des problèmes avec le miens, vu qu'il est fait pour envoyer une chaine, et le caractère null est définit comme une fin de chaine ...
Je te conseil d'héritier de la classe et de surcharger la méthode (ou de la modifier directement ou d'en ajouter une autre, c'est encore mieux, comme ca tu peut utiliser les deux types):
int tRs232::Envoyer(char* pChaine, unsigned int chaineLen)
{
int Res = write (fd, pChaine, chaineLen);
return (Res);
}
22 juin 2009 à 14:29
Bon voila, je qqun peut maider, ce serai trop gentil!
Merci.
22 juin 2009 à 14:12
Mais pour ton souci, je ne voit pas vraiment là ...
Tu ne doit pas envoyer la donnée 0 plutôt ?
22 juin 2009 à 11:00
Peut tu maider stp.
Merci a bientot!
29 mai 2008 à 17:34