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 :

programme pour afficher l'heure d'après une acquisition GPS


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut programme pour afficher l'heure d'après une acquisition GPS
    j'ai un projet a réaliser, je dois lire l'heure qui est dans un fichier. Enfaite, on capture des données réceptionnées par un GPS, elles sont codées en ASCII donc lisible, on obtient toute une série de valeurs car on fait une acquisition toutes les secondes du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    #1034111111001*#2035111114002*#2036111126003*#2037111134004*#2038111145005*#2044111166006*#2055111214007*#2066111224008*#2012111334009*#2015111345010*#2025111356011*$GPGGA,,,,,,0,00,,,,,,,*66
    $GPGSA,A,1,,,,,,,,,,,,,1.31,0.84,1.00*0E
    $GPGSV,3,1,12,14,74,119,00,16,69,322,50,22,69,142,48,21,68,069,00*7F
    $GPGSV,3,2,12,24,29,004,,09,23,257,,05,17,325,,18,15,197,*7F
    $GPGSV,3,3,12,23,13,041,,06,11,100,,17,,237,,04,,050,*7A
    $GPRMC,144546,V,0333.8418,N,01135.7782,E,0.000,0.0,121206,2.5,W*7E
    $PRWIZCH,22,4,21,0,21,0,21,0,21,0,16,6,21,0,21,0,21,0,21,0,21,0,14,0*4E
    $GPGGA,,,,,,0,00,,,,,,,*66
    $GPGSA,A,1,,,,,,,,,,,,,1.31,0.84,1.00*0E
    $GPRMC,144547,V,0333.6349,N,01135.6696,E,0.000,0.0,121206,2.5,W*77
    $PRWIZCH,22,4,21,0,21,0,21,0,21,0,16,6,21,0,21,0,21,0,21,0,21,0,14,0*4E
    $GPGGA,,,,,,0,00,,,,,,,*66
    $GPGSA,A,1,,,,,,,,,,,,,1.31,0.84,1.00*0E
    $GPGSV,3,1,12,14,74,119,,16,69,322,50,22,69,142,48,21,68,069,00*7F
    $GPGSV,3,2,12,24,29,004,,09,23,257,,05,17,325,,18,15,197,*7F
    $GPGSV,3,3,12,23,13,041,,06,11,100,,17,,237,,04,,050,*7A
    $GPRMC,144548,V,0333.4281,N,01135.5610,E,0.000,0.0,121206,2.5,W*72
    $PRWIZCH,22,4,21,0,21,0,21,0,21,0,16,6,21,0,21,0,21,0,21,0,21,0,21,0*48
    $GPGGA,,,,,,0,00,,,,,,,*66
    $GPGSA,A,1,,,,,,,,,,,,,1.28,0.81,1.00*03
    $GPRMC,144549,V,0333.2212,N,01135.4524,E,0.000,0.0,121206,2.5,W*7A
    $PRWIZCH,22,4,21,0,21,0,21,0,21,0,16,6,21,0,21,0,21,0,21,0,21,0,21,0*48
    $GPGGA,,,,,,0,00,,,,,,,*66
    $GPGSA,A,1,,,,,,,,,,,,,1.28,0.81,1.00*03
    $GPGSV,3,1,12,14,74,119,,16,69,322,50,22,69,142,48,21,68,069,00*7F
    $GPGSV,3,2,12,07,30,075,00,24,29,004,,09,23,257,,05,17,325,*7B
    $GPGSV,3,3,12,18,15,197,,23,13,041,,06,11,100,,17,,237,*79
    $GPRMC,144550,V,0333.0144,N,01135.3438,E,0.000,0.0,121206,2.5,W*7B
    $PRWIZCH,22,4,21,0,21,0,21,0,21,0,16,6,21,0,21,0,21,0,21,0,21,0,21,0*48
    $GPGGA,,,,,,0,00,,,,,,,*66
    $GPGSA,A,1,,,,,,,,,,,,,1.28,0.81,1.00*03
    $GPRMC,144551,V,0332.8075,N,01135.2352,E,0.000,0.0,121206,2.5,W*7A
    $PRWIZCH,22,4,21,0,21,0,07,0,21,0,16,6,21,0,21,0,21,0,21,0,21,0,21,0*4C
    $GPGGA,,,,,,0,00,,,,,,,*66
    $GPGSA,A,1,,,,,,,,,,,,,1.28,0.81,1.00*03
    $GPGSV,3,1,12,14,74,119,,16,69,322,50,22,69,142,47,21,68,069,00*70
    $GPGSV,3,2,12,07,30,075,00,24,29,004,,09,23,257,,05,17,325,*7B
    $GPGSV,3,3,12,18,15,197,,23,13,041,,06,11,100,,17,,237,*79
    $GPRMC,144552,V,0332.6007,N,01135.1266,E,0.000,0.0,121206,2.5,W*77
    $PRWIZCH,22,4,07,0,07,0,07,0,07,0,16,6,07,0,07,0,07,0,07,0,07,0,21,0*4C
    $GPGGA,,,,,,0,00,,,,,,,*66
    $GPGSA,A,1,,,,,,,,,,,,,1.28,0.81,1.00*03
    $GPRMC,144553,V,0332.3938,N,01135.0180,E,0.000,0.0,121206,2.5,W*7C
    $PRWIZCH,22,4,07,0,07,0,07,0,07,0,16,6,07,0,07,0,07,0,07,0,07,0,21,0*4C
    $GPGGA,,,,,,0,00,,,,,,,*66
    $GPGSA,A,1,,,,,,,,,,,,,1.28,0.81,1.00*03
    l'heure est placée après $GPRMC, les 6 chiffres qui suivent comme 144553 correspondent à l'heure 14h45min et 53sec, le reste, on s'en occupe pas.
    On doit donc créer un programme qui permet de voir l'heure,à l'écran, située dans le fichier d'acquisition, toute les secondes.
    Je suis nouveau dans le langage C, si quelqu'un peut me donner une ébauche de programme ou des indications pour me guider, ça serait simpa !
    Merci

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    La lecture de l'heure ne devrait pas poser de problème :

    1. ouvrir le fichier (fopen)
    2. lire une ligne dans le fichier (fgets)
    3. analyser la ligne avec sscanf(..., "$GPRMC,%d,", ...);
    4. si le fichier n'est pas fini, aller en 2 (while)
    5. fermer le fichier (fclose)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    je suis d'acord avec tout cela, mais je ne vois pas comment pouvoir lire seulement les chiffres qui correspondent a l'heure.
    je commence par un traitement des caractères, analyse de la trame GPRMC, affichage de l'heure et saisie du fuseau horraire. Mais je ne connais pas les fonctions qui me permettraient de réaliser tout ça.

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par Antoine82 Voir le message
    je suis d'acord avec tout cela, mais je ne vois pas comment pouvoir lire seulement les chiffres qui correspondent a l'heure.
    je commence par un traitement des caractères, analyse de la trame GPRMC, affichage de l'heure et saisie du fuseau horraire. Mais je ne connais pas les fonctions qui me permettraient de réaliser tout ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int tim, nb_read;
    char line[256];
     
    /* pour chaque ligne du fichier */
    nb_read = sscanf(line, "$GPRMC,%d,", &tim));
    if(nb_read == 1) {
      printf("time is %d\n", tim);
    }
    Après, on peut aller plus loin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int tim, hour, min, sec;
    /* on obtient tim */
    hour = tim / 10000;
    min = tim / 100;
    min %= 100;
    sec = tim % 100;

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mabu Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int tim, nb_read;
    char line[256];
     
    /* pour chaque ligne du fichier */
    nb_read = sscanf(line, "$GPRMC,%d,", &tim));
    if(nb_read == 1) {
      printf("time is %d\n", tim);
    }
    Après, on peut aller plus loin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int tim, hour, min, sec;
    /* on obtient tim */
    hour = tim / 10000;
    min = tim / 100;
    min %= 100;
    sec = tim % 100;
    heu.. pourquoi se compliquer la vie ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    int nb_read, heure,minu,sec;
    char line[256];
     
    /* pour chaque ligne du fichier */
    nb_read = sscanf(line, "$GPRMC %2d%2d%2d", &heure, &minu, &sec);
    if(nb_read == 3) {
      printf("time is %.02d%h.02d:%.02d\n", heure, minu, sec);
    }

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    merci pour vos réponses, j'ai réalisé mon programme, tout fonctionne !
    merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JSP]Comment afficher l'heure actuel dans une page JSP?
    Par adil_vpb dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 19/02/2007, 15h32
  2. [CKEditor] Probleme pour afficher le code html apres insertion dans bdd
    Par Pepito2030 dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 28/12/2006, 21h52
  3. Réponses: 1
    Dernier message: 18/07/2006, 23h38
  4. Programme qui créer des images d'après une vidéo
    Par snoopy69 dans le forum Vidéo
    Réponses: 7
    Dernier message: 03/04/2006, 08h33
  5. problème pour afficher l'image recuperer d'une base
    Par vbcasimir dans le forum SGBD
    Réponses: 2
    Dernier message: 02/11/2005, 09h47

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