begin process at 2012 05 30 16:44:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

RS232 envoye une string


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

RS232 envoye une string

jeudi 25 mars 2010 à 18:12:54 | RS232 envoye une string

dongonis38

Bonjour,

C'est mon premier message sur ce site, et comme tous le monde je viens la première fois pour avoir de l'aide.
Mon problème est que je voudrais créer un programme en c epour envoyer/revevoir une chaine de caractère a travers un port rs232 vers un appareil de mesure.

le prototype de ma fonction:
void send(int numero_port_com,char chaine[nb_carac])
avec chaine="CT 50\0" par exemple
une fonction de réception aussi.

J'ai vu l'exemple de ymca2003 mais le fait que cela ce fasse en binaire me complique un peu la tache quand meme :)

J'aimerais donc savoir si des fonctions dans le meme genre que je cherche existe déja, ou si je suit "obligé" de me faire les conversions selon le code ascii de ce que je veux envoyer.
Je code sous eclipse c/c++ si ca a une influence.

Merci pour votre aide
jeudi 25 mars 2010 à 18:45:03 | Re : RS232 envoye une string

BruNews

Administrateur CodeS-SourceS
Chaque octet d'une chaine EST le code ASCII, il n'y a rien à convertir.

ciao...
BruNews, MVP VC++
vendredi 26 mars 2010 à 12:49:19 | Re : RS232 envoye une string

dongonis38

Ok, merci

J'ai essayé son code jusqu'a l'envoie de donnée et ca marche "bien",i.e. si je veux envoyer "Cm 20", le buffer contient bien Cm 20.(je n'est pas testé si l'envoye se fesait reelement)

Le problème est que je veux que ca soit moi dévellopeur qui envoye ces commandes et non pas l'utilisateur(l'utilisateur devrait en envoyé certainne aussi).
Donc les structures de windows m'ont l'air un peu difficille a comprendre.

Par exemple si je veux envoyer "CF 500" pourrier vous me dire ce que je doit mettre dans
BOOL WriteCOM(void* buffer, int nBytesToWrite, int* pBytesWritten)

J'initialiserait de la manière suivante
int nBytesToWrite=6;
char buffer[] = "CF 500";

Mais pour pBytesWritten j'ai du mal. J'ai fait un exemple et &nBytesWritten vallait 2293564 et nButesWritten=2293596. Ces valeurs semble ne pas changer, mais je n'ai aucune idée si elle dépende de la machine ou pas. Pensez vous qu'il y a d'autres parametres, ou je peut "simuler" que l'utilisateur ai tapé ce que je lui envoie ?
Quelles fonctions écrit ces parametres normalement est ce fflush(stdin), ou gets(buffer)?

Dsl pour ce tas de question, j'ai du mal...

Le lien de ymca2003 http://www.cppfrance.com/codes/BASE-COMMUNICATION-SERIE-RS232-WIN32_22441.aspx

vendredi 26 mars 2010 à 19:39:50 | Re : RS232 envoye une string

BruNews

Administrateur CodeS-SourceS
nBytesWritten doit contebir en sortie le nbr d'octets réellement écrits.

ciao...
BruNews, MVP VC++
vendredi 26 mars 2010 à 19:50:07 | Re : RS232 envoye une string

dongonis38

J'ai finalement compris mon erreur, j'avais vraiment fait n'importe quoi.
Par contre son programme ne marche pas, alors qu'avec l'hyperterminal de windows j'arrive a faire ce que je veux.
L'erreur vient je pense de la configuration de la communication avec la structure dcb ou qu'il n'envoye pas reellement "CT 50;" par exemple. Je verrait ca, ma configuration desiré est 9600 baud, 8 bits pas de controle de parité et 1 bit de stop et aucun protocole DSR, CTS et tout le tralala.
Merci pour votre aide.



Cette discussion est classée dans : aide, string, chaine, rs232, envoye


Répondre à ce message

Sujets en rapport avec ce message

recherche aide pour C++ [ par wecket2000 ] Salut,je suis en train d apprendre à programmer en C++ orienté Objet, j utilise visual C++, je ne sais pas si c est dû au logiciel ou pasmais je n arr Convertion d'une string en char [ par redpooka ] Voici avec ce programme ca n'affiche juste le premier charactère comment faire pour qu'il affiche toute la chaine de caracètre ?Merci#include <iostre help :: String => Int [ par Skyman ] Comment on fait pour changer un string en int ou en long ?ex :char *chaine;int entier;long entierlong;chaine = "1234";int = chaine; // (int = 1234) noob qui a besoin d'aide!!! [ par capitnflam ] bonjour je voudrais savoir a quoi correspond cette ligne en Cpp: string(name).find("boundsM") == string::npos merci de votre reponse Convertion "15"(string) --> 15(int) [ par crocejf2000 ] (Re)SalutIl faut que je test ma chaine et que je la convertisse si je peut. Avec atoi("12"), ca me donne bien 12, mais si je fait un atoi("12hach"), c problème d'allocation mémoire dans ma classe [ par Bub325 ] Salut, j'ai un problème dans le code suivant au niveau de l'allocation mémoire de tmp.a = new char... dans operator+, et je ne sait pas du tout pourqu Chaine de caracteres [ par LordBob ] Salut a tous,voila j'ai une question seulement, je ne sais pas trop comment la poser ou plutot l'expliquer... Alors, je vais faire comme je peux... al un string comme un entier. [ par DarkSchneider ] Bonjour, J'ai un petit problème de mémoire.Je sais qu'il est possible de se servir d'une chaine de caractere pour effectuer un calcul, mais je me rapp string [ par ToToL ] BonjourComme le dit le sujet j'ai un probleme de string ...... ;-)en fait j'ai un char remplit d'une chaine de caractere avec a un endroit de la chain Problème avec les classes filles [ par gdefrance ] Bonjour à tous, j'ai un problème avec une classe fille en C++, la classe mère chaine détient ses constructeurs et tout marche bien, mais avec la clas


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,998 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales