Révision 373
Ajouté par anclaud il y a presque 4 ans
main.c | ||
---|---|---|
test_decode_nombre();
|
||
|
||
// Appel de la fonction de tests pour conv_latitude()
|
||
test_conv_latitude();
|
||
test_conversion();
|
||
}
|
||
|
||
int decode_int(char c) // Fonction permettant de transformer un code ASCII en d?cimal
|
||
... | ... | |
float conv_latitude(char* lat_sexa)
|
||
{
|
||
float lat_dec=0;
|
||
int degres_lat = 0;
|
||
float degres_lat = decode_nombre(lat_sexa,4);
|
||
int i;
|
||
|
||
degres_lat = decode_nombre(lat_sexa,4);
|
||
for (i=5;i<9;i++)
|
||
{
|
||
degres_lat += (decode_int(lat_sexa[i]))*pow(10,-i+4);
|
||
... | ... | |
float conv_longitude (char* long_sexa)
|
||
{
|
||
float long_dec=0;
|
||
int degres_long = 0;
|
||
float degres_long = decode_nombre(long_sexa,5);
|
||
int i;
|
||
|
||
degres_long = decode_nombre(long_sexa,5);
|
||
for (i=6;i<10;i++)
|
||
{
|
||
degres_long += (decode_int(long_sexa[i]))*pow(10,-i+5);
|
||
... | ... | |
}
|
||
|
||
|
||
// Fonction test unitaire latitude
|
||
void test_conv_latitude(void)
|
||
{
|
||
int res_lat = 0;
|
||
res_lat = conv_latitude("3723.2475");
|
||
printf("%d \n", res_lat);
|
||
}
|
||
|
||
float Conversion_gen (char * chaine){ //Cette fonction convertie soit une latitude soit une longitude en degr?.
|
||
int cpt = 0;
|
||
while (chaine[cpt]!='\0'){
|
||
cpt++;
|
||
float conversion_gen (char * chaine){ //Cette fonction convertie soit une latitude soit une longitude en d?cimal (float)
|
||
int compteur = 0;
|
||
while (chaine[compteur]!='\0'){
|
||
compteur++;
|
||
}
|
||
|
||
if (cpt == 9){
|
||
if (compteur == 9){
|
||
return conv_latitude(chaine);
|
||
}
|
||
else if(cpt==10){
|
||
else if(compteur==10){
|
||
return conv_longitude(chaine);
|
||
}
|
||
else{
|
||
return 1000.0;
|
||
}
|
||
}
|
||
|
||
// Fonction test unitaire latitude
|
||
void test_conversion(void)
|
||
{
|
||
if (fabs(conv_latitude("3723.2475")-37.387458)>= pow(10,-6)){
|
||
printf ("Erreur Test unitaire conv_latitude.\n");
|
||
exit(-1);
|
||
}
|
||
if (fabs(conversion_gen("00306.6036")-3.11006)>= pow(10,-6)){
|
||
printf ("Erreur Test unitaire Conversion_gen.\n");
|
||
exit(-1);
|
||
}
|
||
if (fabs(conversion_gen("3723.2475")-37.387458)>= pow(10,-6)){
|
||
printf ("Erreur Test unitaire Conversion_gen.\n");
|
||
exit(-1);
|
||
}
|
||
}
|
||
|
||
// ----------------------------------------------------------------------------------------------
|
||
// Fin S?ance 1a
|
||
// D?but s?ance 2a
|
||
// ----------------------------------------------------------------------------------------------
|
||
|
||
|
||
typedef struct {
|
||
float latitude;
|
||
float longitude;
|
||
} Position;
|
||
|
||
int decode_trame(char * trame, Position *p){
|
||
char longitude_trame[10];
|
||
char latitude_trame[9];
|
||
int compteur = 0;
|
||
int i = 0;
|
||
int j = 0;
|
||
int y = 0;
|
||
if (trame_cmp(trame, "GPGGA") == 1)
|
||
{
|
||
|
||
}
|
||
|
||
}
|
||
|
||
// Ne pas modifier cette fonction
|
||
int main(int argc,char ** argv)
|
||
... | ... | |
}
|
||
|
||
|
||
/*
|
||
/* Code Anthony (? regarder !)
|
||
float decode_nombre (char * trame) {
|
||
int i=0;
|
||
int j=0,memoire=0;
|
Formats disponibles : Unified diff
Debut fonction decode_trame