bonjour, je suis débutant sur ce site, mon but et de réaliser un transfert de fichier vers un autre pc avec une liaison rs232 , cherche comment faire avec une interface graphique sur c++ merci a vous si quelqu'un a une moindre idées merci
bonjour, je suis débutant sur ce site, mon but et de réaliser un transfert de fichier vers un autre pc avec une liaison rs232 , cherche comment faire avec une interface graphique sur c++ merci a vous si quelqu'un a une moindre idées merci
Bonjour,
Un module de Boost.Asio propose une solution pour cette problématique :
http://www.boost.org/doc/libs/1_52_0...ial_ports.html
Cela simplifiera considérablement le travail par rapport à un pilotage du file descriptor.
Pour l'IHM... libre à toi d'utiliser l'API que tu préfère MFC, Qt, Gtk ....
merci pour la reponse mais pas certainement ça je veux une simple fen^tre avec choix du port un bouton de parcourir et un bouton trasfert un simple comme ça
Salut,Le problème, c'est que tu as réellement deux parties à ta question:
La partie principale concerne tout ce qui a trait à la transmission des informations par la liaison rs232.
La deuxième partie, finalement, beaucoup plus simple à mettre en oeuvre, correspond à la mise au point de la fenêtre avec les différents éléments qui te permettent de faire les choix etc.
Pour cette partie spécifique, le plus facile est sans doute de te diriger vers une bibliothèque IHM comme Qt (au sujet de laquelle tu as une section dédiée du forum ), mais, ce qu'il faut que tu comprenne, c'est que, quoi qu'il arrive, il faudra bel et bien que tu t'intéresse un minimum (important ) à la manière de faire communiquer tes deux ordinateurs par le port série, et ca, tu n'y couperas décidément pas
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Visual studio 2012 n'offre pas déjà une boite à outils pour faire tout sa en .net ?
C'est quoi tu utilise pour la transmission, un câble db9 rs232 femelle-femelle ?
merci a vous oui je vais bien utiliser db9 femelle femelle , et sil ya un autre programme atester c'est bon je peux l'essayer ,moi c'est mon idée de essayer un pc vers pc je trouve un peux simple juste que le code est un peux flou merci
C'est avec quoi que tu as de la misère au juste ? la transmission de donnée entre deux ordinateurs via un port-série ?
voici un example de communication port série :
ps: es que tu vas au collège lionel-groulx ?
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134 ///////////////////////////////////////////////////////////// // // // Exemple de base de communication série sous Windows // // Dernière mise à jour le 2010-11-01 // // // ///////////////////////////////////////////////////////////// #include <windows.h> #include <iostream> using namespace std; void TraiterErreur( char* message, DWORD erreur ) { cout << "Erreur no " << erreur << " dans " << message << endl; ExitProcess( 1 ); } int main( int argc, char* argv[] ) { HANDLE portSerie; // // ouverture du port // portSerie = CreateFile( "COM3", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0 ); if( portSerie == INVALID_HANDLE_VALUE ) { TraiterErreur( "dans CreateFile", GetLastError() ); } // // réglage des paramètres de communication // DCB dcb; // obtention des paramètres courants if( ! GetCommState( portSerie, &dcb ) ) { TraiterErreur( "dans GetCommState", GetLastError() ); } // modification des principaux paramètres dcb.BaudRate = 9600; dcb.ByteSize = 8; dcb.Parity = NOPARITY; dcb.StopBits = ONESTOPBIT; // application des nouveaux paramètres if( ! SetCommState( portSerie, &dcb ) ) { TraiterErreur( "dans SetCommState", GetLastError() ); } // // test d'écriture // char tamponEcriture[] = { "Ceci est un test" }; DWORD nbCaracteresEcrits; if( ! WriteFile( portSerie, tamponEcriture, sizeof( tamponEcriture ), &nbCaracteresEcrits, NULL ) ) { TraiterErreur( "dans WriteFile", GetLastError() ); } cout << nbCaracteresEcrits << " octets ecrits" << endl; // // réglage des délais de lecture // COMMTIMEOUTS delais; // mets tous les champs de la structure à zéro memset( &delais, 0, sizeof( delais ) ); // délai total de lecture de 15 secondes delais.ReadTotalTimeoutConstant = 15000; if( ! SetCommTimeouts( portSerie, &delais ) ) { TraiterErreur( "dans SetCommTimeouts", GetLastError() ); } // // test de lecture // char tamponLecture[ 1024 ]; DWORD nbCaracteresLus; if( ! ReadFile( portSerie, tamponLecture, 10, &nbCaracteresLus, NULL ) ) { TraiterErreur( "dans ReadFile", GetLastError() ); } // affichage des caractères lus cout << nbCaracteresLus << " octets lus" << endl; for( int i = 0; i < ( int )nbCaracteresLus; i++ ) { cout << tamponLecture[ i ]; } cout << endl; // // fermeture du port série // if( ! CloseHandle( portSerie ) ) { TraiterErreur( "dans CloseHandle", GetLastError() ); } }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager