Petit tuto après avoir perdu plusieurs cheveux
Le paramétrage se fait en hexadécimal, comme indiqué sur la notice. Il y a deux octets, un pour le delta, et l'autre pour l'unité. Mais la saisie se fait en décimal signé !
0x(xx)(xx)
0x(Octet1)(octet2)
Par défaut 0x0001, (00)=delta de 0 et (01)=unité celcius
Dans l'exemple de la notice, on a deux deltas, un de -2,1° (0xEB) et l'autre de +3,1°(0x1F). Si on convertit les valeurs hex en décimal, obtient EB = 235 et 1F = 31.
Pourquoi 235 ? Car cet octet est un octet non signé !
Un octet décimal non signé va de 0 a 255, soit 256 valeurs.
Comme le delta est négatif, il faut partir de 256 et soustraire la valeur du delta, soit 256-21=235.
Attention ici le calcul n'est que pour le premier octet ! Il faut rajouter le deuxième, et refaire la conversion !
Donc on se retrouve avec nos 2 octets suivants :
0xEB01 et 0x3101.
Si on convertit ces valeurs hex en décimal, on a :
EB01=60161 et 3101=12545.
Attention ! Le double octet final a renseigner dans le champ de saisie est signé, comme indiqué dans la notice !
Temperature calibration (the available value range is [-128,127] or [-12.8℃, 12.7℃]).
Et comme on a 2 octets, 256x256=65536 en décimal.
Donc pour un delta positif, valeur a renseigner dans le champ de saisie = 12545
Mais pour le delta négatif, on repart de 65536, on soustrait 60161, et on ajoute le signe moins, soit -5375.
On le refait une autre fois :
Valeur réelle : 23°
Valeur mesurée zw100 : 26,5°
Delta = -3,5°
256-35=221
221 converti en hex = DD
octets finaux = 0xDD01
Conversion de DD01 hex en decimal = 56577
65536 - 56577 = 8959. Avec le moins, -8959 à renseigner.