Bonsoir à tous.

j'avais réalisé une IHM sur PC que l'on me demande aujourd'hui de porter sur Windows CE. Mon IHM utilise la classe CCom de Farscape ; mais pour le portage je dois remplacer deux fonctions qui ne sont pas présentes.

méthode PortSet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if (BuildCommDCB(szBaud, &m_dcb)) result=SetCommState(m_hCom, &m_dcb);
remplacé par :
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
//parser "light"... BuildCommDCB isn't available on WinCE
		switch(baudrate) {
			case 110:
			case 300:
			case 600:
			case 1200:
			case 2400:
			case 4800:
			case 9600:
			case 14400:
			case 19200:
			case 38400:
			case 57600:
			case 115200:
			case 256000:
				m_dcb.BaudRate = baudrate;
				break;
			default:
				m_dcb.BaudRate = 57600; // default value
		}
		switch(parity) {
			case 1:
			case 2:
			case 3:
			case 4:
				m_dcb.fParity = true;
				m_dcb.Parity = parity;
				break;
			case 'O':
			case 'Y':
				m_dcb.fParity = true;
				m_dcb.fParity = 1; // default
				break;
			case 0:
			case 'N':
			default:
				m_dcb.fParity = false;
				m_dcb.Parity = 0;
				break;
		}
		switch(wordlength) {
			case 5:
			case 6:
			case 7:
			case 8:
				m_dcb.ByteSize = wordlength;
				break;
			default :
				m_dcb.ByteSize = 8;
				break;
		}
		switch(stopbits) {
			case 1:
				m_dcb.StopBits = 0;
				break;
			case 2: 
				m_dcb.StopBits = 2;
				break;
			default :
				m_dcb.StopBits = 0; // 1 stop bit by default
				break;
		}
		result=SetCommState(m_hCom, &m_dcb);
par contre, je bloque dans la méthode ReadBuffer : je ne sais pas comment remplacer l'appel suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
GetOverlappedResult( m_hCom, &m_Ov, &countread, TRUE )
si vous aviez une idée... je suis preneur ! ou une autre classe éprouvée sur CE...
merci par avance