Bonjour,
J'essaie d'écrire un programme C++ (Visual C++ 6.0) qui a pour but de lire ce qui arrive sur un port série (RS232) et de le stocker dans un fichier texte.
Mon code est le suivant :
J'ai récupéré le code pour le receiveData, il fonctionne (au debugger, bufferResDP contient bien la chaine de caractère envoyée via le port série), le voilà quand même au cas où :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 string bufferResDP; FILE *f; while(1) { bufferResDP = ""; // Lecture des port séries ComPortSerie.receiveData(&bufferResDP); f = fopen("test.txt", "a"); fprintf(f, "%s\n", &bufferResDP); fclose(f); Sleep(1000); }
Le problème est que ce que j'écris dans le fichier texte a à peu près cette tête-là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 int LSerie::receiveData(string* data) { char buffer[1025]; int nbChar=0; //--- Vérification des paramétres passés à la fonction: if( data==NULL) return false; nbChar = receiveData(1024, (LPBYTE)buffer); buffer[nbChar] = 0; // caractère de fin de chaine. data->assign(buffer); return nbChar; } int LSerie::receiveData(DWORD lg, LPBYTE data) { DWORD result=0; //--- Vérification des paramètres passés à la fonction: if( lg<0 || data==NULL) return false; if (!ReadFile(hcom, data, lg, &result, 0)) return -1; else return (int)result; }
ÌÌÌÌ
ÌÌÌÌ
ÌÌÌÌ
ÌÌÌÌC/
ÌÌÌÌC/
ÌÌÌÌ
J'ai essayé en convertissant bufferResDP avec LPCTSTR et LPCSTR... sans résultat.
Quelqu'un peut-il m'aider ?
Merci !
Partager