[gull] déserialiser une valeur double (ieee 754) avec be64toh
Daniel Cordey
dc at mjt.ch
Thu Mar 1 17:50:04 CET 2012
On Thu, 1 Mar 2012 15:53:22 +0100 - Philippe Strauss
<philippe at strauss-acoustics.ch> wrote:
> sur le fil avec wireshark j'ai un champ à :
>
> 0xC0 44 00 00 00 00 00 00, ce pour la valeur -40.0 encodée. d'après
> binaryconvert.com, c'est juste.
>
> en C je fais:
>
> case volume:
> dprintf("a volume message: %f; mute: %d\n",
> be64toh(msgp->payload.vol.volume), be32toh(msgp->payload.vol.mute));
> break;
>
> j'ai pas l'air d'avoir de décalage dans mes bytes, et pourtant
> s'affiche:
>
> parsing msg, mtype=30, a volume message: 1330613449.029229; mute: 0
Tu veux dire que ce qui passe sur le reseau est correcte (0xC0 44
00 ...), mais qu'a l'impression la conversion en 'host' ne se fait
pas ? Es-tubien certain que msgp->payload.vol.volume est bien en BE ?
Perso, j'afficherais msgp->payload.vol.volume en 0x pour etre sure de
ce que j'essaie de convertir...
Ou alors il y a quelque chose que je n'ai pas compris... :-)
dc
More information about the gull
mailing list