Une question fréquente : peut-on attacher des métadonnées à une mesure individuelle ? Par exemple, le signal A mesurait 1 V, et l'alimentation était à 28 V / 10 mA à cet instant.
Il n'existe pas de champ de métadonnées sur les mesures individuelles, et pour des conditions de capture ce serait de toute façon le mauvais outil. La tension d'alimentation au moment de la capture est elle-même une mesure. Enregistrez-la comme telle, et elle devient une donnée de premier ordre : tracée dans le contrôle des mesures, filtrable, exportable et disponible pour l'analyse de corrélation. Une annotation ne serait rien de tout cela.
La règle générale :
| La valeur... | À enregistrer comme |
|---|---|
| Peut varier pendant ou entre les tests (tension d'alimentation, température ambiante, courant de charge) | Une mesure dans la même phase |
| Est constante sur tout le run et non mesurable (numéro de lot, identifiant de montage, équipe de l'opérateur) | Métadonnées de run |
| Est de la documentation en texte libre | Une docstring |
Étape 1 : mesurer les conditions en même temps que le signal
Enregistrez les conditions dans la même phase que le signal qu'elles contextualisent :
def signal_check(measurements, supply, dmm): # Les conditions d'abord : enregistrées comme mesures, pas comme annotations measurements.supply_voltage = supply.measured_voltage() # V measurements.supply_current = supply.measured_current() # mA # Le signal lui-même measurements.signal_a = dmm.measure_dc_volts("A")Les conditions peuvent elles aussi porter des validateurs. Une lecture d'alimentation hors de sa fenêtre attendue est en soi un résultat de test : elle indique que la mesure a été prise dans de mauvaises conditions, avant que quelqu'un ne passe une après-midi à déboguer l'unité.
Étape 2 : utiliser les métadonnées de run pour le contexte constant
Pour les valeurs constantes sur tout le run, attachez des métadonnées de run sous forme de paires clé/valeur à l'envoi. Clés typiques : lot, montage, identifiant de banc, firmware testé. Les métadonnées de run sont filtrables dans les listes de runs et via l'API, mais elles s'appliquent par run, pas par mesure.
Étape 3 : corréler les conditions avec les résultats
Parce que les conditions sont des mesures, elles participent aux mêmes analyses que tout le reste. Si le signal A dérive et que la tension d'alimentation dérive avec lui, les deux séries le montrent dans le contrôle des mesures sur le même axe temporel. Si un écart de valeur n'apparaît que dans certaines conditions, ces conditions sont dans les données, donc la relation peut réellement être vérifiée au lieu d'être mémorisée.
Le principe général : les corrélations ne peuvent être calculées qu'entre des éléments enregistrés comme données. Chaque condition que le banc enregistre comme mesure est un élément de plus que l'analyse peut vérifier sans que personne n'ait eu à savoir à l'avance qu'il fallait le regarder.
