IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Checksum pour Trame GPS et Météo


Sujet :

Langage Delphi

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Checksum pour Trame GPS et Météo
    Bonjour,
    Dans le cadre du projet de deuxième année du BTS IRIS, nous devons realiser une station météo embarquée.
    Dans un premier temps nous devons analyser les trames envoyées par la station météo ainsi que par le GPS. Nous sommes arrivés à décoder tout le contenu des trames mais notre problème est la compréhension du checksum à la fin des trames et précédé par *.

    J'ai vu que sur le forum une personne avait le même problème que nous mais je n'ai toujours pas compris! Si quelqu'un pouvait m'aider sur la signification du checksum et son calcul, je lui en serait très reconnaissant.
    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 577
    Points : 25 225
    Points
    25 225
    Par défaut
    Le CheckSum est un calcul sur l'ensemble des données d'une Trame, cela peut-être un CRC32 par exemple ou une somme/modulo, ...

    Maintenant, ce CheckSum peut dépendre du matériel utilisé, il faut donc se reporter au manuel technique (spécifications et protocoles) de vos appareils, soit le prof les a mis en accès libre, soit ils sont connus et donc disponibles sur Internet ...

  3. #3
    Membre régulier
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2005
    Messages : 120
    Points : 93
    Points
    93
    Par défaut
    salut ,
    yauna plusieur cryptage MD5 , MD4 , CRC16 , CRC32 , Checksum16 , Checksum 32 ...........
    essaye de voire ce lien http://fr.wikipedia.org/wiki/Checksum

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 141
    Points : 109
    Points
    109
    Par défaut
    Quelques précisions sur le checksum des trames GPS :

    Les trames GPS commencent par un symobole $ et se terminent par un symbole *. Le checksum est un XOR byte à byte sur l'ensemble des caractères de la chaîne à l'exception du $ et du *.

    Voici la fonction Add_Checksum que j'utilise dans une appli GPS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    function AddCheckSum(Chaine: String): String;
     
    var i, chksum: Integer;
     
    begin
      chksum:= 0;
      //Suppression des caractères '$' et '*' s'ils sont inclus dans la chaine
      if Chaine[1] = '$' then
        delete(Chaine, 1, 1);
      if Chaine[Length(Chaine)] = '*' then
        delete(Chaine, Length(Chaine), 1);
      //Calcul du CheckSum
      for i := 1 to length(Chaine) do
      begin
        chksum:= chksum xor Ord(Chaine[i])
      end;
      // On replace le $, le * et on ajoute le checksum à la fin
      Result := '$'+Chaine+'*' + IntToHex(chksum, 2);
    end;
    Pour plus de détails, taper NMEA chez nos amis Google, tu devrais retrouver le site de la norme. Je n'ai plus le lien dans mes notes.

    Pour les stations météo, je crois que c'est exactement le même calcul... Cela reste à vérifier, car je n'ai pas vraiment travaillé dessus.

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour vos réponses!!!
    Il ne me reste plus qu'à les mettres en pratique et si je n'arrive toujours pas a comprendre le checksum je vous recontacterai et je vous direz d'où vient le problème!

    Merci beaucoup

Discussions similaires

  1. Communication série Trames gps NMEA problemes bufferedreader
    Par Ginoaria dans le forum Général Java
    Réponses: 1
    Dernier message: 18/02/2011, 08h49
  2. Checksum pour file bin
    Par simon1 dans le forum Langage
    Réponses: 1
    Dernier message: 10/09/2009, 15h33
  3. entete option pour trame ip
    Par darkmen11 dans le forum Réseau
    Réponses: 0
    Dernier message: 11/05/2009, 01h36
  4. Checksum trames GPS
    Par giloutho dans le forum Langage
    Réponses: 3
    Dernier message: 14/02/2005, 12h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo