22. Programmation avancée
module hébergeant la fonction, de manière à ce que le module n'oublie pas la calibration dès qu'il
sera débranché.
Double[]
ValuesBefore
Double[]
ValuesAfter
YGenericSensor
f
= YGenericSensor.FirstGenericSensor();
f.calibrateFromPoints(ValuesBefore,
f.get_module().saveToFlash();
Correction 2 points
La correction 2 points permet d'effectuer à la fois un décalage et une multiplication par un facteur
donné entre deux points. Si vous fournissez les deux points (a,b) et (c,d), le résultat de la fonction
sera multiplié par (d-b)/(c-a) dans l'intervalle [a,c] et décalé, de sorte à ce que quand la valeur lue par
le senseur est a ou c, la fonction genericSensor1 retournera b ou respectivement d. A l'extérieur de
l'intervalle [a,c], les valeurs seront simplement décalées de sorte à préserver la continuité des
mesures: une augmentation de 1 sur la valeur lue par le senseur induira une augmentation de 1 sur
la valeur retournée.
Correction de mesures avec 2 points de calibrations (10,5) et (25,10).
Le code permettant de programmer cette calibration est très similaire au code précédent
Double[]
ValuesBefore
Double[]
ValuesAfter
YGenericSensor
f
= YGenericSensor.FirstGenericSensor();
f.calibrateFromPoints(ValuesBefore,
f.get_module().saveToFlash();
Notez que les valeurs avant correction doivent être triées dans un ordre strictement croissant, sinon
elles seront purement et simplement ignorées.
Correction de 3 à 5 points
Les corrections de 3 à 5 points ne sont qu'une généralisation de la méthode à deux points,
permettant de ainsi de créer jusqu' 4 intervalles de correction pour plus de précision. Ces intervalles
ne peuvent pas être disjoints.
178
= {5};
= {10};
ValuesAfter);
= {10,25};
= {5,10};
ValuesAfter);
www.yoctopuce.com