IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[Windows CE] classe SerialCom


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    D�veloppeur en syst�mes embarqu�s
    Inscrit en
    Avril 2005
    Messages
    87
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur en syst�mes embarqu�s
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Avril 2005
    Messages : 87
    Par d�faut [Windows CE] classe SerialCom
    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

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    tu n'es pas le premier � m'en faire la remarque ,
    l'api32 GetOverlappedResult est absente de windows CE, ce qui est un vrai probl�me car je ne connais pas d"equivalent pour g�rer une communication asynchrone
    Donc si quelqu'un � une id�e je suis preneur...

  3. #3
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    est-ce qu'elle est simplement absente des .h et .lib ou aussi dans la DLL ?

    t'as essay� de la charger dynamiquement � partir de kernel32.dll ?

  4. #4
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    apr�s une courte recherche, il semblerait que CE ne supporte pas l'overlapped I/O.
    Une solution �mise serait de cr�er son propre driver

  5. #5
    Membre tr�s actif
    Profil pro
    D�veloppeur ind�pendant
    Inscrit en
    Ao�t 2004
    Messages
    374
    D�tails du profil
    Informations personnelles :
    �ge : 56
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur ind�pendant
    Secteur : Transports

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 374
    Par d�faut question
    windows CE, est-ce qu'il g�re l'ouverture de fichier comme le windows normal.??
    puisque pour controler mes imprimantes s�ries (des thermiques ),
    j'ai du reprendre une classe de communication asynchrone serie.
    celle ci ouvre des fichiers d'impression, et l'astuce, c'est que par ce biais, on peut aussi ouvrir des communications series, sur des ports com et meme et surtout des usb..
    si tu dois reecrire le drivr, ca revient a faire un thread qui essaie regulierement de lire le fichier, en esperant que ce fait ainsi..
    je te poste le source.?

  6. #6
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    je serais curieux de voir comment la communication asynchrone est g�r�e...

Discussions similaires

  1. [windows] une classe qui cr�e et termine un thread
    Par Biosox dans le forum Windows
    R�ponses: 11
    Dernier message: 07/06/2007, 10h52
  2. [MFC] Classe SerialCom et contr�le de flux
    Par Philippe320 dans le forum MFC
    R�ponses: 2
    Dernier message: 24/05/2006, 09h09
  3. R�ponses: 2
    Dernier message: 05/04/2006, 12h06
  4. Class de Explorer de Windows
    Par YURI2006 dans le forum Langage
    R�ponses: 1
    Dernier message: 14/02/2006, 17h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo