IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Compteur du temps entre deux trames provenant d'un capteur


Sujet :

C#

  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 : 26
    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 chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 898
    Points : 1 915
    Points
    1 915
    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
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    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 : 26
    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
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    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
    Expert éminent sénior

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

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

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 541
    Points
    10 541
    Billets dans le blog
    21
    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, 14h03
  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, 09h51
  3. Requête pour calculer le temps entre deux dates
    Par Badboy62cfp dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2006, 13h50
  4. Perte de temps entre Deux bases MySQL
    Par ramm50 dans le forum Outils
    Réponses: 7
    Dernier message: 08/09/2005, 09h33

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