Envoie et reception d'un fichier bite à bite sous rs232 en c++

cs_abloski Messages postés 1 Date d'inscription vendredi 27 avril 2007 Statut Membre Dernière intervention 2 mai 2007 - 2 mai 2007 à 00:45
hibakusha Messages postés 25 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 23 mai 2007 - 16 mai 2007 à 18:49
abloski

Bonjour, j cherche à envoyer un fichier en mode binaire à traver un port serie. 
Apres avoir trouver le handle du fichier et du port serie, je sais pas comment parcourire le fichier bite à bite à fin de l'envoyer sur le port serie.

Voici mon code source

void envoie_image::envoie()
{
   //Creation d'1 pointeur sur la fichier
  m_hFile = CreateFile("emplacement du fichier", 0, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  //determine la taille du fichier
  int taille = GetFileSize(m_hFile, NULL);



    if (m_hFile!=NULL)
    {
       do
       {
        ???????
        ???????
        ???????
       }
       while(????????);
    }
    else
    {
        //erreur lor de l'ouverture du fichier
    }
}

mercie d'avance

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 mai 2007 à 09:23
Faut regarder sur MSDN, CreateFile retourne INVALID_HANDLE_VALUE (-1) et non pas NULL (0).

Regarde ici pour la suite:
http://www.cppfrance.com/code.aspx?ID=22441
http://www.cppfrance.com/code.aspx?ID=18704

ciao...
BruNews, MVP VC++
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
2 mai 2007 à 10:41
Bit a bit ? Ca risque d'etre long ton affaire surtout via RS232.
Sinon pour tout ce qui est RS232 cf les codes de ymca2003.

Shell
0
hibakusha Messages postés 25 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 23 mai 2007 1
16 mai 2007 à 18:49
Il faut déja avoir ouvert le port série qui t'interresse, l'avoir configuré comme il te plait (vitesse, parité etc.) ==> par ici MSDN

ensuite il faut :
    solution 1 :
       tant-que plein octet dedans fichier
           lire 1 octet dans fichier
           "transferer" le octet dans port serie
       fin tant-que

    solution 2 :
       lire tout le fichier d'un bloc (le monter en memoire par exemple dans un buffer toto)
       transferer toto sur le port seri d'un coup

dans tous les cas c'est octet par octet que les données seriont transferées.

En gros c'est ça, le plus gros du travail etant lié à la manipulation de fichier et de port série (surtout port serie, qui avec les modems  sont deux belles grosses malédiction)

zNoRt~!
0
Rejoignez-nous