le 05-05-2009 03:17 AM
Bonjour,
je souhaite lire un fichier binaire dont les données sont codées sur 12bits, le probleme est que LabVIEW propose les formats 8, 16, 32 et 64 bits.
Existe t'il un moyen simple de lire mes données 12 bits.
Merci d'avance.
le 05-05-2009 03:21 AM
Bonjour,
En utilisant une variables 16 bits vous aurez vos 12 bits utiles dans les 12bits de poids faible de la variables de 16bits.
Par exemple si vous avez 4095 : 1111 1111 1111
Si vous faites une recopie dans la variables de 16 bits alors elle aura comme valeur : 0000 1111 1111 1111
le 05-05-2009 06:44 AM
Lorsque je lis un fichier binaire je doit préciser le format des données que je veux lire, je pense donc que je ne peux pas mettre d'entrée mes 12 bits dans une variable 16 bits(enfin si j'ai bien compris).
Actuellement ce que je fais mais qui n'est pas concluant, c'est que je lis dans mon fichier binaire un certains nombre d'entiers 16 bits qui sont ensuite stockés dans un tableau.
Dans un second temps je prends les 3 premiers entiers 16 bits de mon tableau et je le sdécoupe de la façon suivante : 16 16 16 => 8+8(masque sur les 4 premiers et les 4 derniers bits) 8+8 (masque sur les 4 premiers bits et les 4 derniers bits)8+8, ce qui me permet d'obtenir 4 entiers 16 bits contenant chacun 12 bits qui m'interresse.
Mais voila comme je l'ai dis ça ne marche pas déja parce que je part avec des entiers signés et que les découpages et les masques donnent des entiers non signés et même en convertisant si l'entier de départ est négatif je ne trouve pas les bonnes valeurs. Alors c'est peut être du au fait que mes données sont codées en big-endian mais bon c'est bien compliqué et j'aurai vraiment besoin d'un super héro.
le 05-05-2009 07:28 AM
le 05-06-2009 03:07 AM
Voila la partie de mon code qui concerne la lecture des données binaires ainsi qu'un fichier de données binaires.
En testant j'ai remarqué que le problème pourrai se situer au niveau des entiers négatifs.
le 05-06-2009 03:42 AM
Bonjour,
Lorsque vous enregistrez votre fichier binaire, en entrée "Données" de la fonction "Ecrire dans un fichier binaire", quel type de variable est utilisé ?
C'est exactement ce type qu'il faudra utiliser en entrée "Type de données" de la fonction "Lire un fichier binaire".
Par exemple, si vous écrivez un tableau de U16 , alors il faudra placer un U16 en type de données lors de la lecture du fichier.
Dans le post précédent, vous disiez qu'il n'était pas possible de mettre une variable de 12bits dans une variable de 16bits alors que si. C'est le cas contraire qui est à éviter. Imaginez que vous avez 75cl de St Emilion (notre variable de 12bits), ce sera toujours possible de les mettre dans une bouteille de 100cl (notre variable de 16bits)tandis que dans le sens contraire ça débordera !
le 05-06-2009 04:06 AM
Pour repondre à votre première remarque, le problème est que je ne sais pas comment le fichier a été enregistré car il m'a été fourni et justement je dois arriver a le lire en sachant seulement que les données sont codées sur 12bits.
Ensuite pour la deuxième remarque, je me suis mal exprimée je n'insinuait pas ne pas pouvoir mettre en générale un entier 12biots dans une variable 16bits, ce que je voulais dire c'est que le vi qui permet la lecture d'une fichier binaire attent qu'on lui précise le format des données or je ne peut pas lui donner comme format 12 bits, c'est pour cela que j'ai choisi le format 16 bits et qu'ensuite j'effectue un découpage.
le 05-06-2009 04:32 AM
bonjour,
pour guider un peu, connaissez vous les 4-5 premieres valeurs que vous vous attendez à recevoir
@+
Tinnitus
le 05-06-2009 04:41 AM
le 05-06-2009 07:24 AM
Salut,
une question bête , avec quoi a été enregistré ce fichier binaire ,labview ?
sinon es tu sur que ce fichiers ne comprends que des données 12bits,
on a l'impression qu'il pourrait y avoir d'autres choses au debut
@+
Tinnitus