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 :
if (BuildCommDCB(szBaud, &m_dcb)) result=SetCommState(m_hCom, &m_dcb);
remplacé par :
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 :
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
Partager