Projet

Général

Profil

« Précédent | Suivant » 

Révision 307

Ajouté par Romain CHAMBELLON il y a presque 3 ans

Debut séance 2 :

Fin question 1,2 : Fonction et test unitaires de decode_trame implantés

Voir les différences:

main.c
test_decode_nombre();
test_conversion();
}
//-----------------------------------------------------
}
//-------------------------------------------------------------------------------------
// FIN SEANCE 1
// DEBUT SEANCE 2
//-------------------------------------------------------------------------------------
typedef struct {
float lat;
float lng;
} Position;
typedef struct {
Position rpos;
float vitmax;
} Zone;
Position decode_trame(char * trame){ //Decodage de la trame
if (trame_cmp(trame, "GPGGA")!= 1){ // On ne prend que les trames de tyoe GPGGA
printf("Cette trame n'est pas au bon format.");
}
else{
Position pos_trame; //Initialisation.
char lat[10];
char lng[11];
int n = 0;
int i = 0;
int j = 0;
int k = 0;
while (trame[i] != '\0'){ // On lit la trame
if (trame[i] == ','){ // Reperage des virgules
n = n + 1;
i = i + 1;
}
if (n == 2) { // Apres la deuxieme virgule, la latitude
lat[j] = trame[i]; // Recuperation de la latitude, caractere par caractere
j = j + 1;
}
if (n == 4) { // Apres la quatrieme virgule, la longitude
lng[k] = trame[i]; // Recuperation de la longitude, caractere par caractere
k = k + 1;
}
i ++;
}
lat[j] = '\0'; //On ferme bien la chaine
lng[k] = '\0';
pos_trame.lat = conv_lat(lat);
pos_trame.lng = conv_long(lng); //On stocke la latitude et la longitude convertie dans structure position.
return pos_trame;
}
}
// Ne pas modifier cette fonction
int main(int argc,char ** argv)

Formats disponibles : Unified diff