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

Delphi Discussion :

vérification de la trame


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 51
    Points : 10
    Points
    10
    Par défaut vérification de la trame
    bonjour;

    j'essaye de vérifier si je reçois la bonne trame. par contre je sais pas comment faire pour le nombre d'octets lus vu qu'il fait 1 octet par contre le nombre de mot fait 2 octets

    merci d'avance

    remarque : nb d'octets lus c'est le Buffer[2] et nombre de mots c'est TxBuf[4] et TxBuf[5]
    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
    21
     
    SetLength(TxBuf,6);
          TxBuf[0]:=$01; TxBuf[1]:=$03; TxBuf[2]:=$00; TxBuf[3]:=$03; TxBuf[4]:=$00; TxBuf[5]:=$01; // trame de départ
    //verification de la trame de lecture 
          setLength(Buffer, 5) ;
            if Buffer[0] = $01 then
              begin
                if Buffer[1] = $03 then
                  begin
                   Buffer[2] :=  2 * Txbuf[5]    ;// ???
                   Buffer[3] :=  Buffer[3];
                   Buffer[4] :=  Buffer[4];
     
                   crc := CRC16(Buffer, Length(Buffer));
                   SetLength(Buffer,Length(Buffer)+2);
                   Buffer[5]:=Byte(Crc Shr 8);
                   Buffer[6]:=Byte(Crc);
                    for i:= 0 to Length(Buffer)-1 do
                      k:=k+IntToHex(Buffer[i]);
                      Memo1.Lines.Add( ' checkLecture     : ' + k );
                  end;
    Images attachées Images attachées  

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    pour tu n'utilises pas des records ?

    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
     
    type
      TLecture = packed record
        NumEsclave: Byte;
        CodeFonction: Byte;
        Adresse1erMot: Word;
        NombreDeMots: Word;
        Controle: Word; 
      end;
     
      TReponse = packed record
        NumEsclave: Byte;
        CodeFonction: Byte;
        NombreOctetsLus: Byte;
        Valeur1erMot: Word;
        Controle: Word;
      end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Expert confirmé Avatar de sergio_is_back
    Homme Profil pro
    Responsable informatique, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable informatique, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 084
    Points : 5 604
    Points
    5 604
    Par défaut
    Décidément tes doigts vont plus vite que ta tête : la réponse est dans l'extrait de documentation que tu as mis dans ton post !!!!
    Relit un peu mieux et surtout RÉFLÉCHIS !!!!

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 51
    Points : 10
    Points
    10
    Par défaut
    oui je l'ai changé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Buffer[2] :=  2 * 1; // car il suffit de multiplier par le nb de mot et non par la valeur de registre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Obtenir une trame Ethernet
    Par Scorff dans le forum Développement
    Réponses: 15
    Dernier message: 11/09/2006, 12h22
  2. [TComPort] -> Pb de trame non complète ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 09/04/2004, 14h22
  3. Réponses: 2
    Dernier message: 04/02/2004, 22h32
  4. redirection de trames
    Par Fry dans le forum Développement
    Réponses: 2
    Dernier message: 06/01/2004, 13h31
  5. JavaScript de vérification de formulaire
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/02/2003, 13h48

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