le 11-30-2017 03:28 AM
Bonjour,
Actuellement je développe une application qui repose sur la réception de données via liaison Série, pour l'exploiter sous Labview pour l'affichage sur des gauges et des indicateurs.
j'arrive à recevoir la données via le VI VISA et la lecture de donnée est bonne, mais la trame que je reçoit est variable en taille , elle a la forme suivantes
<Heder (2 bytes)><ID-frame><Data-Lengh><Data><CRC>
d'où la taille de ma trame dépend de l'ID-frame.
Comment je peux développer une idées pour recevoir cette donnée dans un registre ou bien tableau pour tirer l'information utile pour l'afficher?
Merci
le 11-30-2017 03:44 AM
Salut Marouene,
j'imagine que les données utiles sont les data 🙂 et que le reste ne t'intéresse pas!?!?
Le Header, le ID-frame ainsi que Data-Length ont sans doute toujours la même longueur, il te suffirait dans ce cas de les éliminer de la trame complète, il te restera les données (et CRC à éliminer aussi), avec une longueur variable, mais si tu as la trame entière, ça ne pause aucun soucis.
Ou alors, tu as besoin de l'ID-frame pour savoir de quelles données il s'agit, mais le résultat est le même, tu piège l'ID-frame et en fonction de sa valeur, tu traites les données de la manière adéquate.
Si tu pouvais donner un ou deux exemple de trames différentes, ça aiderait 😉
le 11-30-2017 04:11 AM
Merci pour votre réactivité,
En fait la trame comme j'ai mentionné a la forme suivante :
Header: two byte for frame start mark
Message type: byte informing the type of data present
Data length: one byte informing the size of data being transferred (possible value is from
1 to 255 byte)
Data: the transferred data (number of bytes informed in the previous item)
CRC: 2 byte with the calculated CRC
Mon but est de récupérer chaque trame à part et la mettre dans un un tableau , bien sur à chaque arrivé de trame pour que je puisse exploiter la donnée contenu dedans et l'afficher sur les Gauges.
Le ID-Frame est important car avec celui-ci je peux identifier sur quelle gauge sera l'affichage.
J'ai besoin d'une idée ou algorithme ou bien un exemple sous Labview pour l'acquisition de ce type où la trame est variable si la trame été standard en taille c'est pas difficile mais ma problématique c'est qu'elle est variable .
Merci
le 11-30-2017 04:23 AM
en fait, seules les data changent de taille, le reste ne change pas.
J'imagine que tu reçois la trame sous forme de chaine de caractère, et si c'est le cas, ça ne devrait pas être bien compliqué de scinder les infos, et les mettre dans un tableau si tu veux ou dans toute autre chose.
Je vais voir pour te faire un petit Vi en imaginant une trame quelconque qui répond aux critères.
le 11-30-2017 04:28 AM
Merci , je serai reconnaissant 😉 pour votre exemple 🙂 ça m'aiderai pour avancer.
le 11-30-2017 04:50 AM
quelle version de LV as tu?
le 11-30-2017 04:54 AM
J'ai la dernière Version: Labview 2017
le 11-30-2017 05:01 AM
Parfait, ce sera plus simple (encore que c'est pas compliqué d'enrgistrer un Vi pour une version antérieure 🙂 )
Je te file le petit Vi, il extrait les différentes parties de la trame, après, tu en fais ce que tu veux (conversion en valeurs numériques, stockage dans un tableau, tout est permis.
La trame que j'ai immaginée n'est peut-être pas très top, l'idéal serait de partir d'une trame réelle que tu aurais reçu de ta liaison série.
le 11-30-2017 05:19 AM
Je vous remercie énormément 🙂 pour l'exemple , je vais l'essayer et vous tenir au courant , ainsi que de poster mon projet complet afin de servir les demandeurs d'aide.
🙂
le 11-30-2017 09:16 AM
Je remarque que notre ami Phil est toujours au taquet pour "aider".
C'est très sympa ça ... kudo !