Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : svp un coup de pouce pour le port serie [ Archives / Au secours ] (glaive)

mercredi 14 juillet 2004 à 13:12:53 | svp un coup de pouce pour le port serie

glaive

salut les pots actuellement je travail sur un projet en visuel c++ sur la communication en port serie DB9, j'arrive à faire passer une chaine de caractaire mais mon blm c que j'y parvien seulement si je fait l'allocation tableau de type char.
je voudrais eviter cette allocation car je suis limité par le nombre de case allouées dans ce tableau .
de ma part je vous invites à voir une partie de mon source, la partie qui s'occupe de la transmition et de la reception:


------------transmition d'une chaine-----------------------

bool comserie::ecrireport(char* trame)
{

char p[129];


strcpy(p,trame);

DWORD dwNumBytesWritten;



if(!WriteFile(Com, p, 170, &dwNumBytesWritten, NULL))

return 0;
else
return 1;


}


-----------reception de la chaine----------------------


char* comserie::lectport()
{

char *e;
e = new char[129];


SetCommMask (Com,EV_RXCHAR );


// attend un evenement

WaitCommEvent (Com,&dwCommStatus,0);

ReadFile (Com,e,170,&dwBytesTransferred,0);

return e;
}

------------------------------------------------------------

j'ai associer 2 bouttons qui declanchent la lecture et l'ecriture
voici le code:

-----------------------reception-----------------------

void CPrmfcView::OnRead()
{
// TODO: Add your control notification handler code here


m_affich = k.lectport(); //m_affiche variable associée au boutton de lecture

UpdateData(false);

}

-------------------envoie--------------------------------

void CPrmfcView::OnWrite()
{
// TODO: Add your control notification handler code here
bool s;
UpdateData(true);


char p[170];//♥ c ca le problem je veu pas d'allocation ♥


sprintf(p,"%s",m_saisie);


s = k.ecrireport(p);
if (!s)
{
m_test3 = "error";
UpdateData(false);
}
else
{
m_test3 = "ok";
UpdateData(false);
}



}


si quelqun a déja travailler sur les port serie qu'in se manifeste
merci d'avance



glaive l'epée de la justice et du jeu video

mercredi 14 juillet 2004 à 13:21:59 | Re : svp un coup de pouce pour le port serie

BruNews

Administrateur CodeS-SourceS
char p[170]; dans une fonction n'est pas une allocation !!!
c'est juste pris sur la pile par un retrait de ESP, le memory manager n'est pas du tout appele.

ciao...
BruNews, Admin CS, MVP Visual C++

mercredi 14 juillet 2004 à 14:06:45 | Re : svp un coup de pouce pour le port serie

glaive

y a pas moyen d'eviter ca je veux envoyer des chaine sans me soucier de la taille quelque chose comme la recuperation de la taille, en travaillant avec les CString.

j'ai denicher une fonction qui retourne le nombre d'octect envoyées par l'emetteur:

ClearCommError(Com,&Errors,&Stat); // c la fonction
nCarALire=Stat.cbInQue;// nCarALire une variable qui recupere la taille de la chaine reçue

glaive l'epée de la justice et du jeu video

mercredi 14 juillet 2004 à 14:35:03 | Re : svp un coup de pouce pour le port serie

BruNews

Administrateur CodeS-SourceS
Tu ne veux pas d'allocation et tu parles de CString. Un CString passe son temps a faire de l'alloc desalloc, faudrait savoir.
MFC pas pour moi.

ciao...
BruNews, Admin CS, MVP Visual C++

mercredi 14 juillet 2004 à 15:25:01 | Re : svp un coup de pouce pour le port serie

glaive

je vais essayer ta proposition et j'insiste si quelq'un a deja travailler sur le port serie DB9 qu'il m'envoi un message merci les pots


glaive l'epée de la justice et du jeu video

mercredi 14 juillet 2004 à 15:54:30 | Re : svp un coup de pouce pour le port serie

xarier

y a pas moyen d'eviter ca je veux envoyer des chaine sans me soucier de la taille--> si j'ai biencompris tu veut pas te soucier a la taille de P[170]; alors si c ca re mplace la avec p [];
Life is Short

mercredi 14 juillet 2004 à 21:24:55 | Re : svp un coup de pouce pour le port serie

ymca2003

pour envoyer une chaine de caractères (terminées par un caractère nul bien sur) :

void emmettre(const char* trame)
{
DWORD dwNbBytesWritten;
WriteFile(hComm, (void*)trame, strlen(trame), &dwNbBytesWritten, NULL);
}



Cette discussion est classé dans : port, serie, chaine, char, updatedata


Répondre à ce message

Sujets en rapport avec ce message

Runtime ?! [ par Chaminouonw ] Bonjour, je tente de faire un programme qui supprime les accents d'un fichier, voila mon source : #include #include [.net c++] gestion du port serie [ par stgi02 ] bonjour, j'ai une question sur la gestion du port série pouvez-vous m'expliquer ce que signifie SetCommTimeouts ,GetCommTimeouts , COMMTIMEOUTS sont i Gerer un ecran LCD via port serie [ par TuxOnline ] Bonjour je cherche a programmer un ecran lcd relier par port serie et je suis a la recherche de documents qui me permettrai de connaitre les fonctions petit problême de chaine [ par Cphil51 ] Je débute en C++ et j'ai un petit problême avec mon code. J'ai créé une fonction qui prend en argument une chaine et un entier et qui retourne les n p Commmunication port serie [ par tiluz ] Je cherche a communiquer avec un robot au travers du port serie. Il existe plusieurs exemples de codes source pour ouvrir les ports et envoyer des cha Ordre dans les déclarations de variables ??! [ par vincemail ] Bonjour à tous, je suis en train de faire un programme en C++ avec devC++, et je viens de trouver un bug que je n'arrive pas à comprendre, je veux sto port serie probleme [ par gaah ] Salut tout le monde la je pense que c mon premier poste sur le forum j'aimerai lire des informations sur le port serie de ma machine j'ai utlisé les d fichie texte [ par cedric3456 ] bonjour je suis tres nul en c++ je debute pouvez vous m'aidez je cherche a faire 3 fonction sur Dev-C++ 4.9.9.2fonction :ecrire (nom_fichier,chaine_ch port serie [ par blueburry ] Bonjour, communication port serie,,developper avec visual basic [ par deadzone_alpacino ] comment programmer un port serie avec visual basic???,,,reception et emission des caractéres,?????


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.