question sur valeur 2Bytes - Version imprimable +- Forum KNX francophone / English KNX forum (https://www.knx-fr.com) +-- Forum : Français (https://www.knx-fr.com/forumdisplay.php?fid=3) +--- Forum : Archives eib-domotique (https://www.knx-fr.com/forumdisplay.php?fid=8) +--- Sujet : question sur valeur 2Bytes (/showthread.php?tid=1204) |
question sur valeur 2Bytes - christjar26 - 27/05/2010 Hello, j'ai un petit souci je cherche a exploiter une température pour faire des graphs, ma valeur est donc en 2bytes mais je n'arrive pas a la transformé en valeur en °C, quand je transforme l'hexa vers decimal cela me donne une valeur érroné.... des idées?? question sur valeur 2Bytes - marc.assin - 27/05/2010 On 27 mai, 19:20, christjar26 <christopher.jary.e...@hotmail.fr> wrote: > ma valeur est donc en 2bytes mais je n'arrive pas a la transformé en > valeur en °C, > quand je transforme l'hexa vers decimal cela me donne une valeur > érroné.... Faudrais savoir le Data Type exact, j'en vois au moins 3 sur 2 bytes (format différent) question sur valeur 2Bytes - christjar26 - 27/05/2010 comment savoir? question sur valeur 2Bytes - christjar26 - 27/05/2010 c'est une valeur flottante si c'est ca que tu appelle type... question sur valeur 2Bytes - marc.assin - 27/05/2010 On 27 mai, 19:40, christjar26 <christopher.jary.e...@hotmail.fr> wrote: > c'est une valeur flottante OK, il n'y a qu'un format, c'est le EIS5 > si c'est ca que tu appelle type... heuu, j'emploie la terminologie KNX, "Interworking Datapoint types" plus communément Data Type (je ne me rapelle plus si c'est le nouveau nom ou toujours l'ancien) Tu as déjà jeté un oeil dans la partie "Fichiers" ? ets_03_07_02 Datapoint Types v13 AS.pdf question sur valeur 2Bytes - alain - 27/05/2010 Salut Selon la terminologie KNX, le flottant sur 16 bits correspondant au data types 9.*. Voici l'algo de décodage (en Perl) que j'utilise Considérant que data[1] contient l'octet de poids fort, et data[2] l'octet de poids faible du mot de 16 bits. my $sign = $data[1] & 0x80; my $exp = ($data[1] & 0x78) >> 3; my $mant = (($data[1] & 0x7) << 8) | $data[2]; $mant = -(~($mant - 1) & 0x7ff) if $sign != 0; $val = (1 << $exp) * 0.01 * $mant; return $val; En d'autres termes, le 16 bits est décomposé en : - 1 bit de signe (bit 15) - 4 bits d'exposant - 11 bits de mantisse, avec complément à 2 pour les négatifs Alain question sur valeur 2Bytes - christjar26 - 28/05/2010 merci pour les infos, c'est pas tout rose mais je vais bossé dessus. En effet j'aitrouvé un fichier interessant sur la composition d'un code hexa en EIS5! |