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 :

Horloge Windows et horloge RTC


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Par défaut Horloge Windows et horloge RTC
    Bonjour,


    J'aurais besoin de votre aide pour un petit souci :.
    voici le contexte j'ai un appli développée en c# .Net 2.0 qui tourne sous Windows XPe .
    L'appli reçoit des mesures de différents capteurs qu'elle doit intégrer pour calculer une dose.
    Il y a donc un timer ( 5 sec) qui prend la valeur sur le capteur regarde l'heure grâce à system.DateTime.now fait la différence par rapport à l'heure de la dernière acquisition car le timer ne se déclenche pas toujours au bout d'exactement cinq secondes puis multiplie ce temps par la valeur du capteur.

    Mon problème est donc le suivant : comment être sur que le temps Windows (la différence entre les deux DateTime.Now) soit vraiment le temps "réel"

    D'après ce que j'ai compris de la gestion de l'heure de Windows :

    Il y la clock hardware RTC qui est géré au niveau de la carte mère et dont la valeur est accessible au niveau du BIOS.

    Windows gère une clock software : elle se synchronise avec la clock RTC au démarrage du système puis récupère des interruptions de la clock RTC afin de " voir" le temps passé.
    Il semble que de temps en temps Windows rate certaine de ces interruptions ce qui a pour effet de " ralentir " le temps Windows.
    Concrètement Windows m'annonce 5 secondes alors qu'en fait 5,1 secondes se sont déroulées. L'effet le plus visible est l'heure windows qui varie fortement lorsqu'on laisse un PC Windows tourné longtemps.

    Ensuite j'ai un peu un manque d'information et c'est là que j'aurais besoin de votre aide :

    Existe il des donnée Windows permettant de quantifier à peu près cette dérive, connaissez vous des documents à ce sujet ?
    J'ai lu par ci par la que la clock Windows se synchronise avec la clock RTC lorsque la différence entre les 2 est supérieur à 1 sec et effectue cette vérification à peu près toute les heures.

    J'ai trouvé un soft ClockMon qui est censé resynchroniser l'horloge RTC et Windows plus régulièrement mais je ne suis pas trop sur de sa fiabilité quelqu'un a t'il des infos sur ce soft.

    L'autre solution est de lire directement la Clock RTC dans mon appli C# , il semble que je peux lire directement cette valeurs en tapant dans un registre via des classe WMI ou je ne sais quoi.
    Quelqu'un a il déjà fait ce genre de chose ?


    Merci à ceux qui sont arrivé au bout ! et merci d'avance à ceux qui pourront me donner un coup de main car j'ai du mal à trouver de l'info fiable sur le Web

    Olivier

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Le problème est que les windows desktop ne sont pas des OS temps réels.
    Il faudrait plutôt t'orienter sur un windows qui l'est (embedded il me semble)

  3. #3
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Par défaut
    En fait je suis déjà sur embedded qui au final est comme un XPpro où l'on peut choisir quel module est installé. Le problème n'est pas vraiment d’être temps réel : je n'ai pas besoin que mes taches s’exécutent systématiquement dans un temps précis . C'est n'est pas grave si je fais une acquisition tous les 4 ou 6 secondes au lieu de 5 .
    Mais par contre j'ai besoin de savoir si il s'est réellement écoule 4 , 5 ou 6 secondes .
    Mon inquiétude vient du fait que l'horloge software Windows peut compter trop lentement et donc être imprécise sur les durées.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    Je ne suis pas compétent dans ce domaine mais ce post ne répond pas à ton besoin ?
    http://stackoverflow.com/questions/2...ime-clock-in-c

    bon courage

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/02/2011, 21h18
  2. asservir l'horloge windows à ntpd
    Par copro dans le forum Réseau
    Réponses: 3
    Dernier message: 02/12/2008, 11h00
  3. Affichage MsgBox en fonction de l'horloge Windows
    Par Benjycool dans le forum VBA Access
    Réponses: 16
    Dernier message: 05/08/2008, 10h46
  4. [VB6]un quart de seconde avec l'horloge windows
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 09/01/2006, 09h57
  5. Réponses: 2
    Dernier message: 19/12/2005, 15h52

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