begin process at 2012 05 27 20:39:35
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichiers / Disque

 > TRANSFERT DE FICHIER PAR RS232 [VC++]

TRANSFERT DE FICHIER PAR RS232 [VC++]


 Information sur la source

Note :
8,67 / 10 - par 3 personnes
8,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichiers / Disque Niveau :Débutant Date de création :09/06/2004 Date de mise à jour :09/06/2004 22:37:50 Vu / téléchargé :14 876 / 2 456

Auteur : psyjc

Ecrire un message privé
Site perso
Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

 Description

voici mon 1er programme en Cpp
il n'est pas bien extraordinaire mais il faut bien commencer :)
bref :

cela permet l'envois de fichier (et la reception donc) par port serie suivant un protocole STX/ETX

Source

  • /*
  • +-----+--------------------------------+-----+
  • |STX | DATA |ETX |
  • +-----+--------------------------------+-----+
  • <------------------TRAME--------------------->
  • */
/*

+-----+--------------------------------+-----+
|STX |           DATA         |ETX |
+-----+--------------------------------+-----+
<------------------TRAME--------------------->

*/



 Conclusion

compilé avec Visual Studio C++ 6
code commenté!

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • projet.exeTélécharger ce fichier [Réservé aux membres club]188 508 octets
  • project.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier13 668 octets
  • projet.dspTélécharger ce fichier [Réservé aux membres club]Voir ce fichier4 283 octets
  • projet.dswTélécharger ce fichier [Réservé aux membres club]Voir ce fichier537 octets
  • projet.ncbTélécharger ce fichier [Réservé aux membres club]41 984 octets
  • projet.optTélécharger ce fichier [Réservé aux membres club]53 760 octets
  • projet.plgTélécharger ce fichier [Réservé aux membres club]1 031 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip [MICROSOFT] SERVEUR TELNET SIMPLE

 Sources de la même categorie

COMPTER LE NOMBRE DE PAGES D'UN FICHIER PDF par Renfield
Source avec Zip Source avec une capture GENERE BMP par lajouad
Source avec Zip Source avec une capture GETIONNAIRE D'UNE BIBLIOTHÉQUE EN C par benzarabel
FONCTION D'ÉDITION DE FICHIER BIT À BIT [C-MULTIPLATEFORME] par lynxtyle
Source avec Zip Source avec une capture UN GESTIONNAIRE DU FICHIER par benzarabel

Commentaires et avis

Commentaire de ymca2003 le 09/06/2004 23:10:37

Très bon exemple RS232, Pour un premier prog cpp, chapeau

Commentaire de LordBob le 11/06/2004 09:28:23

oui c'est un debut prometteur !!!

Commentaire de psyjc le 11/06/2004 11:04:11

merci, ca fait plaisir! quand je vois les sources de certains je pensais que la mienne etait vraiiiiiimmmeennnnttttt loin derriere..

je cherche des sites qui explique simplement (pour debutant) comment se servir de l'api windows plutot sous forme de cours (manipulation de fichiers/repertoirs, graphismes, threads ...)
jai regardé du coté de la msdn, mais j'y comprends pas grand chose :(

Commentaire de LordBob le 11/06/2004 11:37:16

moi je te conseille ce site pour debuter (c'est avec celui que j'ai moi meme commencé a manipuler les API):
http://bob.developpez.com/tutapiwin/

Commentaire de ymca2003 le 11/06/2004 22:46:37

petzold(fenêtre, GDI) et richter(sytem, dll, tthreads) (en anglais) :

http://brunews.free.fr/brunews/download/CP5.zip
http://brunews.free.fr/brunews/download/CP5Sources.zip

http://brunews.free.fr/brunews/download/JR4.zip
http://brunews.free.fr/brunews/download/JR4Sources.zip

Commentaire de lkhra le 22/07/2004 11:32:57

salut ,
psyjc au fait j'ai essaye ton prog il est genial ,mais le truc ce que moi je veux just envoyer et recevoir des donnees et non pas des fichiers pour pouvoir piloter une machine via rs232 et avec le protocole SYN/SYN/SYN/STX/DATA/ETX.
peux tu m'eclairer s'il te plait merci

Commentaire de rkadouche le 31/10/2004 03:03:16

Bonjour
j'ai un problème de communiquer avec le port parallèle via Windows 2000
j'utilise les fonctions _inp() et _outp() de Visual C++6
merci

Commentaire de psyjc le 31/10/2004 03:32:51

il me semble (mais je suis pas expert)
qu'avec le port // il faut utiliser un driver special avec windows 2k/XP!

je ne pourrais pas plus t'aider. le programme que j'ai ecris utilise le port serie.

Commentaire de LaTatadu91 le 06/06/2007 14:21:21

salut,

je voudrais savoir si il est possible que tu m'aides a comprendre ta fonction stxetxdecode
car j'ai une com sur un port série a effectuer avec des trames STX-N-I-NE-INFOS-R.ETX-PL-ETX
----------------------------------------------------------------------------------------------------------------------
N: Nbre octet total
I: indice du message , code 4 à FF
NE: nbre d'ETX. les codes égaux a ETX seront supprimés du message et remplacés apr leur rang en fin de message(R.ETX)
INFOS: infos requises
R.ETX: rang ds le buffer d'origine de la premiere config. code arret(ETX) supprimée dans la aprtie infos
PL: Checksum

j'arrive a lire des octets sur le port mais apres je dois decoder ma trame stx-etx
pr en retirer la chaine d'informations
et ensuite décomposer cette chaine...

si jamais tu peux me guider un peu, ca doit ressembler a ta fonction je pense!

merci d'avance...

Commentaire de psyjc le 06/06/2007 14:52:20

Salut,
Dans mes souvenirs, mon protocole stx/etx etait vraiment tres con.
j'ouvre mon flux par STX, j'envois tout mon flux d'une seule traite (en echappant eventuellement ETX si son code se presente) puis je ferme par ETX. ca fonctionnait mais il n'y avait aucun controle d'erreur et pas de notion de trames.
Ma fonction stxetxdecode remplace uniquement les caracteres echappe dans le buffer recu.

J'ai bien peur que tu ne puisse pas vraiment t'inspirer de cette source pour faire ton protocole.


PS:le code est vraiment tres sale...

Desole.

Commentaire de LaTatadu91 le 06/06/2007 15:03:02

oki ,
mais tu pourrais aps m'aider ou tenter de m'aider un peu?
en gros j'aimerais faire comme pr les chaines de caracteres style
strcpy(stx,buffer+1,1)
strcpy(N,buffer+2,1)
strcpy(INFOS, buffer+3,N);

enfin un truc du genre mais ca bug
la chaine lue sur le port c des octets sous forme heaxadecimale?
comment je peux decomposer mon buffer lu comme chaine de caractere?

je suis trop nul pr ce qui est hexa; ascii etc...*
si t'as une idée je suis preneur

Commentaire de psyjc le 06/06/2007 15:43:56

tu cree une structure qui a le format de ta trame et tu place un pointeur sur le debut de ta trame que tu cast en ta structure. Si la trame est de longueur variable tu le fais pour le header de ta trame.

un truc du genre:
typedef struct s_stx {
    size_t   N;       // Nbre octet total
    short    I;       //indice du message , code 4 à FF
    int      NE;      //nbre d'ETX. les codes égaux a ETX seront supprimés du message et remplacés apr leur rang en fin de message(R.ETX)
} t_stx;

typedef struct s_etx {
    int      R.ETX;   //rang ds le buffer d'origine de la premiere config. code arret(ETX) supprimée dans la aprtie infos
    short    PL;      //Checksum
} t_etx;


char *buff; // Ma Trame

t_stx  *stx;
t_etx  *etx;
char   *data;
size_t dataLenght;

stx = (t_stx *)buff;
data = (char *)(stx + 1);
dataLenght = stx->N - (sizeof(stx) + sizeof(etx))
etx = (t_etx *)(data + dataLenght);

Commentaire de LaTatadu91 le 06/06/2007 16:38:02

oki merci
mais je capte aps bien ca:
//tu castes la trame sur une structure qui sera pas assez grande?
stx = (t_stx *)buff;
//stx est un pointeur, alors +1 ???
data = (char *)(stx + 1);
//OK :-)
dataLenght = stx->N - (sizeof(stx) + sizeof(etx))
//???
etx = (t_etx *)(data + dataLenght);

Commentaire de LaTatadu91 le 06/06/2007 16:47:12

et aussi pr precision ma fonction read me retourne :
un buffer de ce type :BYTE buffer[RX_SIZE+1];

Commentaire de psyjc le 06/06/2007 18:01:40

Si tu ne maitrise pas les pointeurs ni l'algèbre des pointeurs, il faut que tu commence par là.
Demande a google de t'expliquer, tu trouvera ton bonheur ;)
Bonne chance.

Commentaire de zezitinho le 09/10/2007 15:27:12

hello, il y a un bug dans ton programme...

Le fichier n'est pas reçu correctement, il est incomplet...

Je sais pas si c'est du a l'emetteur ou au recepteur, mais c'est dommage car il avait l'air intéressant ce programme !

Commentaire de Schreiben le 01/05/2008 19:38:58

salut les amis j'ai un probleme dans mon projet de fin d'etude je vais essayer d'envoyer une trame serie RS232 par hyperterminal j'ai enregistré le trame dans un fichier texte puis j'ai l'envoyer mais rien ne ce passe est ce que la structure du trame est fausse (stx addresse index blokchek etx)
en code ascii ou ilya une autre problem ? je suis bloqué dans cette fase j'attend vos aident les amis (nizar_tun@hotmail.com)
merci

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales