Voilà j'ai commencé mon projet de BTS IRIS et celui-ci consiste à récuperer
des trames météo grâca à un port série RS232.
J'ai réussi à établir la liaison RS232 ( ouverture,ecriture,lecture,fermeture).
Maintenant, il me reste à désencapsuler chaque données métorologiques se
trouvant dans les trames.
Je voudrais savoir, quelles fonctions faut-il utilisées pour ce genre de trames ?
Sur le site aucune personne n'a ce genre de code à proposer.
Il me reste qu'à esperer que l'un d'entre vous puisse m'aiguiller.
Merci d'avance,
Cordialement,
Ruben
A voir également:
Desencapsulation
Desencapsulation des données - Meilleures réponses
heu précise ton probleme, di nous si tu programme en c ou c++,
et je voi pas trop ou est le pb, tu recoi des infos que tu range ds une variable je suppose.
Si tes données sont en binnaire, bein, pr les récupéré, tu fai comme en
cours de logique: des ET des OR (pour les masques) et des décalage a
droite ou a gauche, je pense que c'est es principaux outils.
Maintenant si c'est des chaine de caractere que tu recoi, c'est un peu
plus simple, tu utilise les fonction de string.h et ca ira tou seul
Je code en C++
Je recois des trames météo de protocole WMR918 (station météo WMR918 ONCORE) qui sont envoyés par chaque capteurs ( capteur pluie, vent,
température,...).
Mon problème est tout simple.
Je voudrais savoir comment on fait pour prendre les données utiles dans ces
trames, les convertir et les mettre dans un tableau.
Le protocole de cs trames sont spécifique à la station météo WMR918.
Quelles fonctions utilise t-on ?
Je ne vois pas quels éléments je pourrais vous donner .
- trames qu'il faut convertir d'ascii en héxa.
- 9 trames différentes au total identifiable sur le sixième octet.
0: vent 1: pluie 3:temperature, etc...
-chaque trame a la même en-tête 'FF FF'.
je pense qu'il faudrait que je mette le trame dans un tableau mais que c'est pas comment m'y prendre pour séparer chaque trame et y mettre des condition ainsi que des pointeurs
chaque trame trames contiennent des données qui doivent etre extraite séparément.
Ex: trame pluie
FF FF 00 04 45 03 51 00 00 00 58 BG
FF FF : en-tête 00: Identifiant capteur (ici pluie)
04: état batterie 45: direction du vent
etc....
Les données peuvent être soit de type float soit de type int.
Bonjour, j'ai la meme chose a effectuer mais je ne vois pas quelle fonction utiliser pour recuperer les informartions codes en hexadecimal. Si quelqu'un peut m'aider, sa serait cool. J'ai mon premier oral dans 2 semaines
Je suis egalement en BTS IRIS, mon projet est le même que toi. J'ai effectuer la liaison entre la station et le PC.
Tout d'abord j'ai utilisé un Thread d'écoute permettant de ne pas bouffer toute la memoire vive car je lis continuellement sur la RS242. J'effectu donc un partage de memoire. Dans ce Thread, je devrais recevoir une trame, la decoder, la moyenner avec la precedente et la renger dans une structure.
Tout d'abord,
Il faut lire la trame, non comme un tout mais plutot comme une serie d'informations qu'il faut extraire.
FF FF 00 04 45 03 51 00 00 00 58 BG
Tu dois d'abord extraire l'entete pour aprés reccuperer le type de la trame (pluie ici).
Tu (nous) vas donc devoir apeller la fonction readfile pour lire la trame.
Pour degager l'entete, il faut declarer un tabeleau de 3 octets (1 pour FF, 1 pour FF et 1 pour le type)
void CRS232::LireXOctets(3 ,EnTete ) //3 est le nombre d'octet à lire. EnTete est du type char
puis tantque le premier ou le deuxieme octet de EnTete ne sont pas egals à FF tu fait un decalage à gauche.
En sortie de la boucle tu te retrouves donc avec EnTete qui est egale à : "FF FF 00" où 00 est le type.
while( ( EnTete[0] != 0xFF ) || ( EnTete[1] != 0xFF ) )
{
EnTete[0] = EnTete[1];
EnTete[1] = EnTete[2];
ObjetCRS232.LireXOctets( 1 , &EnTete[2] );
};
Selon le type (EnTete[2]) tu va relire X octets sur le port serie. (le nombre d'octets est differents suivant le type de la trame)
Ensuite il suffit de ranger la "vraie" trame (donc sans l'entete FF FF et sans le type) dans SA structure appropriée.
Créé une structure pour chaque type de trame.
Ce n'est qu'une idée parmis tant d'autres...mais je n'est trouvé que celle ci :p
Le code est en cours d'ellaboration.
En tout cas j'espere t'avoir aidé!!
Pour plus d'info contact moi : chooloveloo@hotmail.fr
Bonjour,
Alors suite a ce poste très enrichissant et étant donnée que je me confronte au même problème que citer précédemment j'aimerais rouvrir ce topic pour avoir plus de détails. En effet on trouve très peut de données ou de documentation sur la station météo WMR 918 sur internet c'est pourquoi j'aimerais avoir des nouvelles et des détails supplémentaire sur la structure des trames, etc... Voilà si les personnes ayant déjà réussi à créer des programmes pour cette station qu'il mette leurs codes.
Merci d'avance pour votre aide vous pouvez me contacter directement par mail à l'adresse suivante :