08-10-2020 07:30 AM
En développant un buffer tournant pour une application, je suis tombé sur des bugs originaux sur la gestion des NaN via la fonction TimeStamp que je trouve intéressant de faire partager :
1) Même affichage ? (bug affiché en orange sur le VI mis en PJ)
On prend une constante numérique "0", on la transforme en TimeStamp : cela affiche DD/MM/YYYY
On prend une constante numérique "NaN", on la transforme en TimeStamp : cela affiche DD/MM/YYYY
==> coté Face Avant, l'utilisateur ne peut pas dire si le TimeStamp qu'il voit affiche la valeur de 0 ou de NaN
2) Conversion à l'aide de la fonction Second to Date/Time (bug affiché en violet sur le VI mis en PJ)
On prend une constante numérique "0", on la transforme en cluster "DatetimeRec" puis re-transformer en TimeStamp
On prend une constante numérique "NaN", on la transforme en cluster "DatetimeRec" puis re-transformer en TimeStamp
==> Les 2 TimeStamp transformé sont strictement identique et affiche "0". On perd du coup l'information du "NaN"
3) Conversion à l'aide de la fonction Second to Date/Time d'un tableau (bug affiché en Rouge sur le VI mis en PJ)
On prend une constante numérique "NaN", on la concactene avec un TimeStamp à la date d'aujourd'hui,
On transforme en cluster "DatetimeRec" puis re-transformer en TimeStamp à l'aide d'une boucle FOR
==> La valeur NaN prend alors la valeur précédente, c'est à dire la date d'aujourd'hui donc perte complète de la valeur NaN.
Je mets en PJ le VI qui montre les bugs (LabVIEW V2019 SP1) ainsi qu'une capture d'écran du code avec les résultats obtenus
J'ai remonté le bug à NI via un support mais c'est bon à savoir 😉