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

VB.NET Discussion :

Convertir un hexadécimal en time!


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 76
    Points : 32
    Points
    32
    Par défaut Convertir un hexadécimal en time!
    Bonjour,
    Je reçois d'un gps une trame de 46 octets en hexadécimal, dont 5 octets représentant l'heure sous le format indiqué sur l'image ci-joint.
    Les 5 octets sont en héxa, je veux les convertir en format normal Heure,minutes...
    en cherchant sur le net j'ai trouvé ça :
    1 "hexheure" = 675 s × 8 = 1 H 30
    1 "hexminute" = 675 s ÷ 32 ≥ 21.09 s
    1 "hexseconde" = 675 s ÷ 512 ≤ 1.32 s

    mais je sais pas vraiment comment obtenir le bon résultat
    Merci d'avance

    Ces 5 octets sont définis de la manière suivante (codage BCD):
    - Heures, sur 1 octet, dizaines = b4 et b5, et unités = b0 à b3
    - Minutes, sur 1 octet, dizaines = b4 à b7, et unités = b0 à b3
    - Secondes, sur 1 octet, dizaines = b4 à b7, et unités = b0 à b3
    - Fractions de secondes sur 2 octets:
    • Octet de poids fort: dixièmes de seconde = b4 à b7 et centièmes de seconde = b0 à b3
    • Octet de poids faible: millièmes de seconde = b4 à b7, réserve = b0 à b3. Cette réserve est positionnée à Hex'0' par défaut :0
    Images attachées Images attachées  

  2. #2
    Membre averti
    Homme Profil pro
    Caféinomane
    Inscrit en
    Septembre 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Caféinomane

    Informations forums :
    Inscription : Septembre 2011
    Messages : 202
    Points : 391
    Points
    391
    Par défaut
    Bonjour,

    Sous réserve d'avoir bien compris le cahier des charges, voilà la solution que je vous propose :

    soit octet1 l'octet des heures, octet2 l'octet des minutes, etc...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Dim heures, minutes, secondes As Integer
     
            heures = BitsPoidsFort(octet1) * 10 + BitsPoidsFaible(octet1)
            minutes = BitsPoidsFort(octet2) * 10 + BitsPoidsFaible(octet2)
            secondes = BitsPoidsFort(octet3) * 10 + BitsPoidsFaible(octet3)

    Fonctions associées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        ' Retourne la valeurs entière correspondante aux 4 bits de poids fort d'un octet
        Private Function BitsPoidsFort(ByVal Octet As Integer) As Integer
            Return (Octet And &HF0) / &H10
        End Function
        ' Retourne la valeurs entière correspondante aux 4 bits de poids faible d'un octet
        Private Function BitsPoidsFaible(ByVal Octet As Integer) As Integer
            Return (Octet And &HF)
        End Function
    Pour les fractions de secondes, le système est le même.
    En mode lecture/écriture.

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/06/2007, 18h24
  2. Convertir en Hexadécimal ?
    Par Tyrael dans le forum WinDev
    Réponses: 5
    Dernier message: 04/05/2007, 15h36
  3. Convertir d'hexadécimal vers décimal
    Par WebPac dans le forum Delphi
    Réponses: 4
    Dernier message: 05/09/2006, 12h01
  4. Convertir en hexadécimal
    Par mambo dans le forum Visual C++
    Réponses: 11
    Dernier message: 25/08/2006, 11h11
  5. Convertir une somme de TIME
    Par Amélie Ladoque dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 08/12/2005, 12h28

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