La plupart des données de temps sont stockées sur un intervalle de temps en utilisant l’instruction DataInterval (). Mais, parfois, vous voulez stocker des données en fonction de condition bien spécifique. C'est ce qu'on appelle des données conditionnelles, et l'instruction DataEvent (), qui permet de modifier l’instruction DataTable (), est une façon de l'accomplir. C'est ce que dit l'aide de l’éditeur CRBasic :

L'instruction DataEvent est utilisée pour démarrer et arrêter conditionnellement le stockage des données à de l’instruction DataTable. Les événements déclencheurs peuvent être spécifiés pour déterminer le moment où le stockage de données commence et quand se termine le stockage de données. En outre, un certain nombre de données à enregistrer peut être spécifié avant et / ou après l'événement.

Par exemple, disons que vous mesurez et stockez des données de température. Vous prenez des mesures toutes les secondes et vous stockez des données toutes les heures. Si, en plus de ces données, vous voulez aussi stocker toutes les secondes une mesure lorsque la température dépasse une valeur de consigne, vous pouvez utiliser l’instruction DataEvent ().

Il y a quatre arguments dans l'instruction DataEvent () : Enregistre Avant (Records Before), Démarrage du déclenchement (Start Trigger), Fin de déclenchement (End Trigger), et Enregistre après (Records After). Parlons d'abord du Démarrage du déclenchement (ou Start Trigger (StartTrig)). Start Trigger est une constante, variable ou expression à évaluer pour le démarrage d'une séquence de stockage de données. Dans notre exemple, nous pourrions utiliser une expression telle que tempC> 25. Lorsque le tempC variable dépasse 25, l'argument StartTrig est vrai et l'événement de stockage de données commence. De même, le déclenchement final (EndTrig) est une constante, une variable ou une expression à la fin de l'événement. Dans notre exemple, nous pourrions utiliser tempC <= 25 qui stoppera le stockage de données lorsque la température tombe en dessous de 25°C. L'instruction devrait ressembler à ceci :

     DataEvent (0,TempC >25,TempC < =25,0)

Les déclencheurs de début et de fin peuvent être sans rapport. Vous pourriez avoir le déclenchement de démarrage basé sur la température et le déclenchement de fin sur la base d'autres variables telles que la vitesse du vent.

Records Before et Records After permet de capturer les données avant et après les déclenchements de début et de fin lorsque les conditions sont remplies. Non, la centrale de mesure ne sait pas quand un événement va se produire avant qu'il ne se produise. Elle va glisser les données dans une mémoire tampon au cas où un événement de données est déclenchée. Dans notre exemple, nous allons stocker 30 données avant, et 15 après. L’instruction DataTable complète peut ressembler à ceci :

     DataTable (Event,True,1000)
         DataEvent (30,TempC >25,TempC < =25,15)
         Sample (1,TempC,FP2)
     EndTable

Il est important de spécifier le nombre d'enregistrements dans une table de données conditionnelle : DataTable (Event,True,1000). Pour plus d'informations, voir le tutoriel ‘’Data Table Memory Allocation’’ www.campbellsci.fr/19_1_9999_153 et mon article sur les détails du programme compilé à www.campbellsci.fr/tips-details.

Faites un essai avec l'instruction DataEvent (), lorsque vous devez prendre des données uniques. Utilisez l'argument Records Before pour glisser les données, et pour ne jamais manquer un événement spécial.

C'est conçus pour vous,