begin process at 2012 02 10 20:47:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Traiter Trame météo URGENT !!!!!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Traiter Trame météo URGENT !!!!!

jeudi 19 mai 2005 à 09:16:00 | Traiter Trame météo URGENT !!!!!

Ruben_Manu

Bonjour à tout le monde !

Je suis sur un projet informatique sur une station météo WMR928. Mon but est de traiter chaque trames envoyer par cette station.

J'aimerais avoir des renseignements surla conversion ascii héxa ainsi que la désencapsulation de trame.
Il y a 9 trames différentes : pluie, vent, temperature,etc...
Les trames se composent différement selon lur donner mais commence toujours par l'en-tête 'FF FF' et le sixième octets ds chaque trame spécifie la trame.
Ex: si l'octet 6 = '0' c'est la trame pour le vent
      si l'octet 6 = '1' c'est la trame pour le pluie,etc...

ensuite selon la trame on a des données qui sont soit de type entier (int) soit de type flottant (float)

Exemple d'une trame vent:
FF FF 00 40 53  03 00 00 56 70 BG 

FFFF: en-tête
00: capteur vent
40: etat batterie capteur -> OK
353: direction du vent en °
etc...

A l'aide pour le desencapsulation des données tableau ? pointeurs ?
Merci d'avance pour votre aide ... 

 
jeudi 19 mai 2005 à 12:03:51 | Re : Traiter Trame météo URGENT !!!!!

MNEMONIC

#include <cstdlib>
#include <iostream>

using namespace std;
#define TYPE1 0x00
#define TYPE2 0x01

int main(int argc, char *argv[])
{
    //...
   
    unsigned char test[15];
    test[0]=0xFF;
    test[1]=0xFF;
    test[2]=0x00;
    test[3]=0x40;
    test[4]=0x53;
    test[5]=0x03;
    test[6]=0x00;
    test[7]=0x00;
    test[8]=0x56;
    test[9]=0x70;
    test[10]=0xBF;

    unsigned char *test2;
    //...
    test2 = test;
    for(;;)
    {//Boucle de parcours de la chaine jusqu'à fin de chaine...a completer bien sur
        if((test2[0]==0xFF)&&(test2[1]==0xFF))
        {
            test2 = test2+2;//passe à la suite
        }
        else
        {
            switch(test2[0])
            {
                case TYPE1 ://Agit en fonction du type
                    {
                        short valint;
                        test2++;//Positionnement sur 40
                        if(test2[0]==0x40)
                        {
                            //capteur OK
                        }
                        test2++;//positionnement sur 53, je dois récupérer un int...?
                        //ok, j'y vais
                        valint = (short)&test2[0];
                        //postionnement suivant...
                        test2 += 2;//Puisqu'on a traité 2 octets
                        //...
                    }
                    break;
                case TYPE2 :
                    break;
                default:
                    break;
            }
        }
    }
   
    system("PAUSE");
    return EXIT_SUCCESS;
}

Comme ça...?

Au fait, j'aime bien les valeurs exa 0xBG......;)



Cette discussion est classée dans : traiter, trame, météo, ff, vent


Répondre à ce message

Sujets en rapport avec ce message

traiter une trame [ par ronandmcdonald ] Je voudrais savoir comment faire pour traiter une trame :Nottemment comment séparer les informations de cette dernière.Je pensse utiliser les vecteurs Recuperation et traitement de données météo [ par Ruben_Manu ] URGENT !!!!!!!J'ai besoin de savoir rapidement comment on fait pour traiter des données provenant d'une station météo ( protocole WMR918).Sachant que  CRC trame UDP ( Prise de tête ... :( ) [ par Booster ] Bonjour à tous,Alors voilà je fais de la redirection de trame. Le problème est que lorsque je change l'ip de destination du cou le CRC doit aussi chan decoupage de trame NMEA [ par max59000 ] Bonjours,je souhaite decouper une trame MNEA du type:$IIMWV,R,000.30,N,A$WIXDR,C,020.0,C,$IIVHW, , , , ,7.2,N, ,$IIMTW,9,Cet p Analyse du sniffeur et recuperation d'une trame [ par Razily ] Bonjour à tous , je suis un peu débutant en programmation et surtout sur tout ce qui est réseau : en fait voilà , mon travail consiste après avoir la traiter un dessin technique a partir d'autocad [ par zeom ] je suis entrain de faire un projet fin d'étude dans le sujet est l'étude du dispositif de découpe par plasma assisté par ordinateur.j'ai le problème d developpement c embarqué [ par maouhoubsmine ] Bonjour, je travail sur un microprocesseur imx27 qui est integré sur la carte APF27 et je suis débutant en c embarqué, je besoin de votre aide svp ;) Modification de Trame UDP en C++ [ par manu0713 ] Bonjour a tous Voila je souhaite ecrire une aplication pour windows qui me permetrai de recevoir des trames UDP et de les modifier puis de les trans n'arrive pas a clignoter le message [ par cyro31 ] Edouard Voilà dans la doc de mon afficheur je peux mettre des caractères clignotant par exemple pour un 'A' c'est 0xC1 clignotant mais le problème es Utilisation d'un reinterpret_cast ? [ par romain60112 ] Bonjour, J'ai un petit soucis de conversion, voici mon problème : CString m_tempsminz1; unsigned long int Zone1; // de 0 à FF FF FF unsigned long in


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 2,761 sec (4)

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