Ruben_Manu
Messages postés8Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention19 mai 2005
-
23 mars 2005 à 11:32
cs_slybest
Messages postés1Date d'inscriptionvendredi 6 juin 2008StatutMembreDernière intervention15 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.
cleter
Messages postés92Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention15 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
Ruben_Manu
Messages postés8Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention19 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 .
Ruben_Manu
Messages postés8Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention19 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.
DouDaL
Messages postés1Date d'inscriptionmardi 15 novembre 2005StatutMembreDernière intervention22 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
chooloveloo
Messages postés3Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention14 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
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
cs_slybest
Messages postés1Date d'inscriptionvendredi 6 juin 2008StatutMembreDernière intervention15 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 :