Désencapsulation de trames Météo

Ruben_Manu Messages postés 8 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 19 mai 2005 - 23 mars 2005 à 11:32
cs_slybest Messages postés 1 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 15 janvier 2009 - 15 janv. 2009 à 17:51
URGENT !!!!!!!!!!!!!!!
Bonjour à tous,

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

7 réponses

cleter Messages postés 92 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 15 mai 2006
24 mars 2005 à 17:45
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
0
Ruben_Manu Messages postés 8 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 19 mai 2005
6 avril 2005 à 15:02
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 .

Merci d'avance de votre aide.
0
Ruben_Manu Messages postés 8 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 19 mai 2005
14 mai 2005 à 18:57
URGENTISME !!!!!!!!!!
Détaille en plus:

- 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.

Merci d'avance pour ce qui peuvent m'aiguiller...
0
DouDaL Messages postés 1 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 22 février 2006
22 févr. 2006 à 15:03
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chooloveloo Messages postés 3 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 14 mai 2006
22 mars 2006 à 22:07
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

{
unsigned long OctetsLus;
ReadFile( hCom , Entete , 3 , &OctetsLus , NULL );
};

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.

ex structure trame pluie :

struct Rain
{
bool RateOver;
bool TotalOver;
bool YesterdayOver;
unsigned int CurrentRainRate;
float TotalRainFall;
unsigned int YesterdayRainFall;
struct Horloge TotalStartDate;
};

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
0
cs_slybest Messages postés 1 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 15 janvier 2009
15 janv. 2009 à 17:51
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 :

[mailto:laisse_betom@hotmail.com laisse_betom@hotmail.com]
0
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
23 mars 2005 à 11:52
Bonjour,

Si tu ne donne aucune précision je ne vois pas comment on pourrait t'aider.

@+
Arnotic,
Admin CS, MVP Visual C++
-2
Rejoignez-nous