LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

lire une trame de taille défini

Bonjour,

 

Je suis nouveau en labview. J'aimerai savoir s'il était possible de lire une taille de trame précise sur le port COM.

Je doit lire des trames qui vont arriver sans arret, et j'aimerai pouvoir detecter le début et la fin de ma trame pour la récupéré, cela est -il possible?

 

Merci d'avance

Cordialement

0 Kudos
Message 1 of 9
(3,030 Views)
Yes, this is possible. Please provide details on the format of each frame. Typically, you just set the termination character to be what the last byte in the frame is. This is often a carriage return or line feed. You only need to specify some arbitrarily high byte count to read. The VISA Read will automatically terminate when the character is detected.
0 Kudos
Message 2 of 9
(3,016 Views)

Bonjour et merci de votre réponse,

 

Mes trames ne sont pas fixes, le problèmes est la. C'est pour sa que je voulais savoir si une taille pourrait permettre de découpé la trame, ou alors en détectant le header de chaque trames.

 

Ma trame serait de cette sorte

 

(Header)(ID)(Data)(Checksum)

1003 2802 8900550000000000000000000000 15AC

 

Cordialement

 

0 Kudos
Message 3 of 9
(3,009 Views)
Why don't you attach the manual for the device so that someone can see exactly what you mean?
Message 4 of 9
(3,005 Views)

Les trames ne comportent donc pas de caractère de terminaison ?

Comportent-elles toutes le même nombre d'octets ?

Commencent-elles toutes par le même header ?

 

La réponse à ces questions nous permettra de répondre plus précisément.

0 Kudos
Message 5 of 9
(3,001 Views)

Ceertaines en ont d'autre pas.

La à l'occurence je m'attaque au cas ou il n'y en à pas, mais elles ont toutes la même taille.

Et elles commencent toutes par le même header. La seule chose qui va changer et la data à l'interieur et le checksum

 

Merci par avance,

Cordialement

0 Kudos
Message 6 of 9
(2,997 Views)

Si elles proviennent toutes du même appareil, je serais très surpris que certaines trames comportent un caractère de terminaison et d'autres pas. Etes-vous bien familier avec cette fonctionnalité ?

La méthode pour récupérer les trames va dépendre principalement de la présence d'un tel caractère.

 

  • OUI  : activer cette fonctionnalité en définissant le caractère et la lecture NI-VISA va lire les données trame par trame. Méthode la plus simple.
  • NON :
    • header invariable et unique (n'ose pas se trouver dans les autres octets d'une trame) :
      1. trames de longueur invariable : lire octet par octet pour chercher un header. A partir de là, lire à chaque fois le nombre d'octets d'une trame pour lire trame par trame.
      2. trames de longueur variable : lire tous les octets présents pour les analyser ensuite pour en extraire les trames en recherchant le header. Conserver les octets restants pour les ajouter devant ceux qui seront lus dans une nouvelle itération.
    • header variable mais longueur invariable : comme le point 2. ci-dessus mais en parcourant les octets selon le nombre attendu et en se décalant octet par octet pour en extraire les trames sur la base du calcul du checksum

Je n'entre pas dans plus de détails puisqu'une seule de ces méthodes sera la plus appropriée.

0 Kudos
Message 7 of 9
(2,984 Views)

Les trames ne viennent pas toute du même appareil d'où la différence entre le caractère de terminaison ou non.

 

Merci pour votre réponse je vais essayer ce que vous avez dit

Cordialement,

0 Kudos
Message 8 of 9
(2,974 Views)

Bonjour,

 

Comment peut-on lire octet par octet sous labview?

Sinon comment puis-je lire uen trame possédant un caractère de terminaison? Il y a un composant VISA qui peut faire ceci?

 

Merci d'avance,

Cordialement, R.D.

0 Kudos
Message 9 of 9
(2,938 Views)