Commit b91c7def authored by ZIMMERMANN Olivier's avatar ZIMMERMANN Olivier
Browse files

Import adapté de "Trends" et "Scaler" à partir du projet Phoenix (pour référence avant refactoring)

Cette version de "Trends" et "Scaler" s'appuie sur une constante globale fonctionnelle définie par l'utilisateur (spécification des noms, unités de base, flags divers de chaque voie) et apprêtée par le premier appel du programme (dérivation des indices des élélements "activés" en fonction de leur flag...).
D'un côté, on a là une infrastructure qui pourrait permettre une personnalisation assez poussée des métadonnées des voies (le flag "enabled" mis en oeuvre en est l'incarnation). Mais de l'autre, cette personnalisation impose un refactoring assez lourd des fonctions, et le mécanisme en place autour du flag "enabled", mis au point pour Phoenix, semble inapproprié pour le besoin général auquel prétend répondre un module réutilisable.
On se propose donc de figer cette version pour référence, et de reprendre ce code pour le rendre plus générique. Actuellement, les fonctions utiles sont dépendantes du mécanisme d'activation des voies sans que cela se traduise par un typage spécifique des entrées pour éviter les confusions. Une idée est de rétablir les métadonnées sous forme d'un flot de données accompagnant les waveforms qu'elles caractérisent afin d'aliminer ce risque de confusion.
parent c86be3d7
......@@ -2,12 +2,30 @@
Module de code réutilisable pour LabVIEW.
RTChart (Real Time Chart) a pour but d'**d'afficher des ordonnées en temps réaliste sur un indicateur de type "chart" (graphe déroulant)** dans LabVIEW.
Lot 1 : "RTChart" (Real Time Chart) sert à **afficher des abscisses en temps réaliste sur un graphe déroulant (Chart)** dans LabVIEW.
Ce type de graphe prend en principe des valeurs successives sans abscisse, qu'il affiche sur une courbe à espacement régulier (comme le graphe simple d'Excel). LE temps écoulé entre deux points successifs n'apparait pas sur la courbe.
Lot 2 : "Scaler" et "Trends" servent à **manipuler des courbes d'historiques avec gestion d'unités**.
RTChart tire parti du fait que le graphe déroulant de LabVIEW accepte aussi une "waveform", qui comporte une date origine et peut ne comporter qu'un seul point. Dans ce cas de figure, la courbe présentera des abscisses en temps réaliste.
Les fonctions proposées facilitent donc le passage de valeurs horodatées et leur transformation en "waveforms" pour obtenir un graphe en temps réaliste sans avoir à gérer soi-même un buffer tournant, comme on pourrait le faire avec le graphe XY de LabVIEW pour obtenir un résultat similaire.
Chaque lot peut être utilisé séparément.
La **[liste des Releases](https://gitlab.in2p3.fr/oz-reuse/labview/ozr-RTChart/-/releases)** donne accès à tous les téléchargements utiles.
## Détails / RTChart
Le graphe déroulant de LabVIEW trace par défaut des valeurs à intervalle d'abscisses constant. Le temps écoulé entre deux points successifs, en particulier, est ignoré.
Ce n'est toutefois pas le cas si les valeurs envoyées au graphe sont des "waveforms". Dans ce cas la courbe présentera des abscisses en temps réaliste.
RTChart offre dans ce but des fonctions pour transformer les points ou tableaux de points en "waveforms" avant de les envoyer au graphe déroulant.
## Détails / Scaler, Trends
Dans le cas de mesures lentes (monitorings), l'échantillon de base du graphe déroulant peut être une "single-point waveform" (ou un tableau de SPW) qui transporte la date et la valeur de la mesure.
Il peut aussi transporter dans ses métadonnées un label (qui s'affichera dans la légende du graphe) faisant apparaitre son nom et son unité physique.
Ainsi "Scaler" et "Trends" s'appuient sur un label de la forme "<mesure>[ (<unité>)]".
Les fonctions manipulent le nom, l'unité et son préfixe multiplicateur de façon à permettre à l'utilisateur final de choisir lui-même le préfixe le mieux adapté à l'affichage.
Cette approche permet d'afficher de nombreuses courbes sur un même graphe (1) sans conflits de dynamique, (2) avec un nom et une unité correctes en légende, (3) avec un préfixe d'unité paramétrable pour chaque voie.
No preview for this file type
No preview for this file type
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment