1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2017
    Messages : 12
    Points : 8
    Points
    8

    Par défaut Compteur du temps entre deux trames provenant d'un capteur

    Bonjour à tous,

    Je suis actuellement en train de réaliser une application pour raspberry pi qui permet l'affichage d'un courant mesuré par une pince ampèremétrique. Le capteur communique avec le PI via un bus CAN.

    Je pense pouvoir dire que l'application est fonctionnelle, sa fonction principale est remplie, cependant j'aimerais afficher un voyant à côté de ma valeur si jamais aucune trame n'a été reçue. En effet, on imagine un défaut capteur, aucune trame n'est envoyée mais on affiche toujours 0,7A, l'utilisateur se permet certaines manip et BIM! Il y'avait en fait 2A...

    Donc je voudrais qu'à chaque fois qu'une trame de la pince arrive, un compteur se remette à zéro, comme cela si le compteur devient > à un temps t, j'indique la non-fiabilité de la valeur affichée sur l'écran !

    En C++ je saurais faire assez facilement, en C# c'est une autre histoire, alors si quelqu'un à une idée de solution, qu'il me la transmette ou se taise à jamais.

    Merci d'avance, et bon aprem' !

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : juin 2007
    Messages : 386
    Points : 597
    Points
    597

    Par défaut

    Tu peux utiliser un Timer réinitialisé à chaque trame et qui envoie un message d'erreur lorsqu'il est écoulé.

  3. #3
    Membre chevronné

    Homme Profil pro
    Responsable déploiement (SCCM, AirWatch, AMP)
    Inscrit en
    juillet 2014
    Messages
    1 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, AirWatch, AMP)
    Secteur : Transports

    Informations forums :
    Inscription : juillet 2014
    Messages : 1 100
    Points : 2 049
    Points
    2 049

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    avril 2007
    Messages
    12 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : avril 2007
    Messages : 12 849
    Points : 23 147
    Points
    23 147

    Par défaut

    utiliser une propriété pour la valeur
    au moment de la lecture par le bus, setter la date de dernière lecture
    au moment de la lecture de la propriété valeur, si la date de dernière lecture date de plus de tant de temps retourner null

    c'est un exemple
    si l'interface ne pull pas la valeur alors il faut un timer qui fait le tour de toutes les instances de capteur pour vérifier la date de dernière lecture et avertir du changement de valeur (null)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2017
    Messages : 12
    Points : 8
    Points
    8

    Par défaut

    Savez-vous si le date.Time.Now capte les millisecondes et à quelle précision?

  6. #6
    Membre chevronné

    Homme Profil pro
    Responsable déploiement (SCCM, AirWatch, AMP)
    Inscrit en
    juillet 2014
    Messages
    1 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, AirWatch, AMP)
    Secteur : Transports

    Informations forums :
    Inscription : juillet 2014
    Messages : 1 100
    Points : 2 049
    Points
    2 049

    Par défaut

    Toujours sur le lien que je t'ai transmis
    https://msdn.microsoft.com/fr-fr/lib...v=vs.110).aspx
    La résolution de cette propriété dépend de l’horloge système, qui est d’environ 15 millisecondes sur les systèmes Windows. Par conséquent, les appels répétés à la Now propriété dans un intervalle d’heure courte, comme dans une boucle, peut-être retourner la même valeur.


    Sinon une autre façon peut être plus précise est d'utiliser la classe StopWatch.
    https://msdn.microsoft.com/fr-fr/lib...v=vs.110).aspx

    Il y a un champ IsHighResolution et Frequency pour affiner les mesures
    Voir la note de Frequency pour la précision : https://msdn.microsoft.com/fr-fr/lib...v=vs.110).aspx

  7. #7
    Rédacteur/Modérateur

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    juillet 2016
    Messages
    1 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2016
    Messages : 1 417
    Points : 4 777
    Points
    4 777
    Billets dans le blog
    5

    Par défaut

    Bonjour,

    Petit mot de vocabulaire pour t'aider dans tes recherches : ce que tu cherches à implémenter s'appelle un chien de garde (ou watchdog en anglais). Une implémentation classique est d'utiliser un timer qui est réinitialiser à chaque fois qu'une requête arrive. Ainsi, en l'absence de requête, le timer se déclenche au bout d'un certain temps.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

Discussions similaires

  1. caculer le temps entre deux heures différentes
    Par andregoub dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 30/05/2007, 15h03
  2. Intervalle de temps entre deux clics et date.ToString
    Par calagan99 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 28/05/2007, 10h51
  3. Requête pour calculer le temps entre deux dates
    Par Badboy62cfp dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2006, 14h50
  4. Perte de temps entre Deux bases MySQL
    Par ramm50 dans le forum Outils
    Réponses: 7
    Dernier message: 08/09/2005, 10h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo