Salut
Mon prog (sous VC++6) gère le port serie pour l'envoi et la reception d'info. J'utilise pour cela les fonctions _outp(PORT, int) et _inp(PORT)
Mon prog tourne à peu près sous 98 mais pas du tout sous NT ! Autre problème comment gérer l'envoi d'une chaine de caractère. L'envoi en format int ne pose aucun problème... Donc en castant ma chaine en int (fct atoi(...)) j'obtient toujours 0 comme resultat de reception. J'ai donc changé de méthode mais sans plus de résultat ! Si qq à une petite idée...
Voici les fonctions d'envoi et de reception:
/*Definition des constantes*/
/*-------------------------*/
#define PORT 0x03FF
#define MAX_BUFFER 100
/*-------------------------------------------------------------------------------
Fonction associee au bouton envoyer. Elle recupere la chaine de caractere
saisie dans la fenetre d'envoi et la transmet au port série.
---------------------------------------------------------------------------------*/
void CPortSerieDlg::OnButtonEnvoyer()
{
/*Initialisation des variables buffer pour recuperation et
cast en type int
----------------------------------------------------------*/
CString buff;
char buffb[MAX_BUFFER];
/*Recuperation du texte et mise à blanc de la zone de saisie*/
/*----------------------------------------------------------*/
m_edit_envoi.GetWindowText(buff);
m_edit_envoi.SetWindowText("");
/*Copie dans le second buffer pour le premier changement de type*/
/*--------------------------------------------------------------*/
strcpy(buffb, buff);
/*Envoi au port série en castant le type au format int*/
/*----------------------------------------------------*/
_outpw(PORT, int(buffb));
}
/*---------------------------------------------------------------------------------
Fonction associée au bouton receptionner. Elle se charge de recuperer les infos
qui sont dans le buffer du port serie.
-----------------------------------------------------------------------------------*/
void CPortSerieDlg::OnButtonReceptionner()
{
/*Initialisation de variable buffer pour la recuperation
des informations du port.
---------------------------------------------------------*/
int res=1;
char buff[MAX_BUFFER];
/*Recuperation de l'envoi du port. L'infos est de type int*/
/*--------------------------------------------------------*/
res = _inp(PORT);
/*Cast de l'information en chaine de caractères*/
/*---------------------------------------------*/
/*Meme en utilisant itoa(...,10) le resultat decodé est incorrect*/
strcpy(buff,(char*)(res));
/*Affichage des infos dans la fenetre reception*/
/*---------------------------------------------*/
m_edit_reception.SetWindowText (buff);
}
Merci à vous tous bisous bisous, Gaëlle