Bonjour,
voila étant en train de mettre en oeuvre une balance via une interface, je dois y recuperer la valeur du poids qu'elle me renvoi.
Pour cela je recuperer la donnée dans un tableau temporaire.
Voici ma fonction en question:
Code :
- CString CTestBalanceDlg::ValeurStable()
- {
- CarEnvoye='s';
- char ValeurStable[18];
- dwNbCarLus=18;
- if(WriteFile (m_hLiaisonSerie, &CarEnvoye, 1, &dwNbCarEcrits, NULL)==false)
- MessageBox("Erreur d'ecriture", "Erreur" );
- ReadFile(m_hLiaisonSerie, //Instance sur l'accès du port série
- &ValeurStable, //Conteneur pour récupérer le byte lu
- dwNbCarLus, //Nombre de byte à lire
- &dwNbCarLus, //Pointer sur le nombre de byte lu, sert à
- //la gestion propre de la fonction read.
- 0);
- return ValeurStable;
- }
|
La variable Valeur stable recupere bien la donnée en question (le poids sous format 499.6g) mais lors de l'affichage j'obtient ceci:
Citation :
4ÌÌÌÌÌÌÌÌÌÌÌÌdþ
|
au lieu d'avoir 499.6g
Voici le code qu'il y a lorsque je clique sur le bouton:
Code :
- void CTestBalanceDlg::OnValeurStable()
- {
- // TODO: Add your control notification handler code here
- CEdit *pEdit=(CEdit *)GetDlgItem(IDC_EDIT_AFFICHE_POIDS);
- pEdit->SetWindowText(ValeurStable());
- }
|
le constructeur est celui-ci:
Code :
- CTestBalanceDlg::CTestBalanceDlg(CWnd* pParent /*=NULL*/)
- : CDialog(CTestBalanceDlg::IDD, pParent)
- {
- //{{AFX_DATA_INIT(CTestBalanceDlg)
- // NOTE: the ClassWizard will add member initialization here
- //}}AFX_DATA_INIT
- // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
- m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
- m_hLiaisonSerie = CreateFile ( _T("COM1:" ), // nom liaison
- GENERIC_READ | GENERIC_WRITE,
- 0,
- NULL,
- OPEN_EXISTING,
- 0,
- NULL );
- dwNbCarEcrits=1;
- }
|
Voila je tourne dessus depuis ce matin 10h sans en voir le bout
Merci d'avance pour vos réponses et bonne journée.
Message édité par Adriensau le 26-05-2005 à 15:06:13