Bonjour j'utilise visual C++ 2008 express.
Ce que je souhaite faire c'est lire une température, un vent fort ou un vent faible que l'on envoie du PIC16F877a par liaison RS232 pour cela on envoie avant une température le nombre 45, avant un vent faible le nombre 96 et avant un vent fort le nombre 20.
Donc à mon avis le programme devrait être comme ca :
-lire
-Si c'est une température
-lire
-écrire dans un fichier text
-lire
-écrire dans un fichier text (si cela est trop dur on peut avoir qu'une donné température mais cela est moins précis)
-retourner au debut
-Si c'est un vent fort
-lire
-écire dans un fichier text
-retourner au debut
-Si c'est un vent faible
-lire
-écire dans un fichier text
-retourner au debut
Ce que j'ai fait :
Voila les erreur que j'obtient maintenant :
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120 DWORD TCommManager::ReadBlock(LPVOID lpBuffer, DWORD dwNbBytesToRead) { // nombres d'octets que l'on peut lire sur le port DWORD dwErrorFlags; COMSTAT ComStat; m_pComm->ClearError(&dwErrorFlags, &ComStat); dwNbBytesToRead = min(dwNbBytesToRead, ComStat.cbInQue); // si aucune donnée à lire if(dwNbBytesToRead == 0) return 0; // lecture DWORD dwNbBytesRead; OVERLAPPED ov = {0}; if(!m_pComm->Read(lpBuffer, dwNbBytesToRead, &dwNbBytesRead, &ov)) { // si erreur autre que lecture non terminée if(GetLastError() != ERROR_IO_PENDING) return 0; // on attend que la lecture soit finie while(!GetOverlappedResult(m_pComm->GetHandle(), &ov, &dwNbBytesRead, TRUE)) { if(GetLastError() != ERROR_IO_INCOMPLETE) break; } } // on renvoi le nombre d'octets lu return dwNbBytesRead; // Voir si le bytes est égal à 45 if(lpBuffer = 00101101) { int A = 1; int B = 0; int C = 0; } // Voir si le bytes est égal à 20 if(lpBuffer = 00010100) { int A = 0; int B = 1; int C = 0; } // Voir si le bytes est égal à 96 if( lpBuffer = 01100000) { int A = 0; int B = 0; int C = 1; } //Voir si c'est une température if(A = 1) { // ouverture en écriture avec ajout du fichier ouvert ofstream fichier("Donne-meteolorogique.txt", ios::out | ios::app); if(fichier) { int A = 0; int temp = lpBuffer; fichier << "Temperature : " << temp << endl; fichier.close(); } else cerr << "Impossible d'ouvrir le fichier !" << endl; return 0; } //Voir si c'est un vent faible if(B = 1) { // ouverture en écriture avec ajout du fichier ouvert ofstream fichier("Donne-meteolorogique.txt", ios::out | ios::app); if(fichier) { int B = 0; int faible = lpBuffer; fichier << "Vent faible : " << faible << endl; fichier.close(); } else cerr << "Impossible d'ouvrir le fichier !" << endl; return 0; } //Voir si c'est un vent fort if(C = 1) { // ouverture en écriture avec ajout du fichier ouvert ofstream fichier("Donne-meteolorogique.txt", ios::out | ios::app); if(fichier) { int C = 0; int fort = lpBuffer; fichier << "Vent fort : " << fort << endl; fichier.close(); } else cerr << "Impossible d'ouvrir le fichier !" << endl; return 0; } }
1>------ Début de la génération : Projet : Serial, Configuration : Debug Win32 ------
1>Compilation en cours...
1>CommManager.cpp
1>c:\users\luffy44\downloads\serial\serial.h(40) : warning C4005: '_countof' : redéfinition de macro
1> c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(362) : voir la définition précédente de '_countof'
1>c:\users\luffy44\downloads\serial\commmanager.cpp(611) : error C2440: '=' : impossible de convertir de 'int' en 'LPVOID'
1> La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>c:\users\luffy44\downloads\serial\commmanager.cpp(619) : error C2440: '=' : impossible de convertir de 'int' en 'LPVOID'
1> La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>c:\users\luffy44\downloads\serial\commmanager.cpp(627) : error C2440: '=' : impossible de convertir de 'int' en 'LPVOID'
1> La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>c:\users\luffy44\downloads\serial\commmanager.cpp(635) : error C2065: 'A' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(644) : error C2440: 'initialisation' : impossible de convertir de 'LPVOID' en 'int'
1> Aucun contexte dans lequel cette conversion est possible
1>c:\users\luffy44\downloads\serial\commmanager.cpp(657) : error C2065: 'B' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(665) : error C2440: 'initialisation' : impossible de convertir de 'LPVOID' en 'int'
1> Aucun contexte dans lequel cette conversion est possible
1>c:\users\luffy44\downloads\serial\commmanager.cpp(678) : error C2065: 'C' : identificateur non déclaré
1>c:\users\luffy44\downloads\serial\commmanager.cpp(686) : error C2440: 'initialisation' : impossible de convertir de 'LPVOID' en 'int'
1> Aucun contexte dans lequel cette conversion est possible
1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\Luffy44\Downloads\Serial\Debug\BuildLog.htm"
1>Serial - 9 erreur(s), 1 avertissement(s)
========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
Es ce que j'ai bien fait d'enlever int main() avant toute les paragraphe ou il y avait des int cela ne pose pas de soucis? Mais pour les autres erreur je comprend vraiment pas pourquoi seulement certain ipbuffer ou A ne veut-il pas? pourquoi le signe = ne marche pas, comment écire le code alors?
Voila est merci de votre aide, je vais continuer à chercher même si j'ai rien trouver pour l'instant.
Partager