Projet

Général

Profil

« Précédent | Suivant » 

Révision 302

Ajouté par Massamba FALL il y a presque 3 ans

decode_trame terminée

Voir les différences:

branch/fall_massamba/sp4a12/main.c
#include <stdio.h>
#include <stdlib.h>
......
// Fonction decode_nombre
/*
int decode_nombre (char * trame) {
int decode_nombre_1(char *ch,int n)
{
int tab[n],i=0;
int res2=0;
for(i=0;i<n;i++)
{
tab[i]=decode_int(ch[i]);
res2=res2*10+tab[i];
}
return res2;
} */
float decode_nombre (char * trame) {
int i=0;
int j=0,memoire=0;
long res3=0;
int res3=0;
char tab[9];
long res4=0;
int res4=0;
while (i<10)
......
}
/* while (i<12)
{
if (decode_int(trame[i]=='S'))
{
res4 = res3 - (2*res3);
printf("%d\n",res4);
}
else
{
res4 = res3;
}
i++;
} */
switch(trame[memoire+2])
{
......
}
float Conversion_sexagesimale(long nb_sexa)
int Conversion_sexagesimale(int nb_sexa)
{
float result=0,reste, result_min=0;
int result=0, result_min=0;
int degres=0;
int result_vf=0;
degres=nb_sexa/1000000;
result_min=(nb_sexa-(degres*1000000));
result_min=(reste/10000);
result=(degres+(result_min/60));
result=(degres+(reste/60));
/* 1/10000 de minute => K = 1.666*10^-6 pour passer en degr?s
return result;
K_rad = 1.666*10^-6 * Pi/180 */
result_vf = (degres*600000)+(result_min*10000);
// printf("%ld\n",result_vf);
return result_vf;
}
//Fonction ? modifier !!!!!
......
cpt++ ;
int i,j;
char tab_lat[11];
char tab_lon[12];
long resultat_l;
long resultat_L;
long conversion_L;
long conversion_l;
if (trame_cmp(trame,"GPGGA")==1) {
printf ("> %s\n",trame);
printf ("> %s\n",trame);
decode_trame(&tab_lat,&tab_lon,trame);
resultat_L = decode_nombre(&tab_lat);
resultat_l = decode_nombre(&tab_lon);
/* printf("Latitude %ld\n",resultat_L);
printf("Longitude : %ld\n",resultat_l); */
conversion_L = Conversion_sexagesimale(resultat_L);
conversion_l = Conversion_sexagesimale(resultat_l);
printf("Latitude %ld\n",conversion_L);
printf("Longitude : %ld\n",conversion_l);
}
}
void decode_trame(char * tab_lat, char * tab_lon, char *trame)
{
int i=17,j=29;
for (i=17;i<27;i++)
{
tab_lat[i-17] = trame[i];
}
for (j=29;j<40;j++)
{
tab_lon[j-29] = trame[j];
}
}
//Ajouter vos tests unitaires dans cette fonction.
void tests_unitaires(void){
......
void test_decode_nombre (void) {
long resultat = decode_nombre("4343.0000,N");
long resultat = decode_nombre("14343.0000,W");
printf("Le resultat est : %d\n",resultat);
float resultat2 = Conversion_sexagesimale(resultat);
unsigned long int resultat2 = Conversion_sexagesimale(resultat);
printf("Le resultat de la conversion est : %f\n",resultat2);
//printf("Le resultat de la conversion est : %ld\n",resultat2);
}
/*
/*void test_matrice_valperso (void) {
void test_conversion (void){
/* D?claration */
// Matrice A de test : //
}
/*double A[2][2]={{15,20},{9,99}};
*/
double B[2][2]={{21,36},{13,4}};
// Matrice contenant le resultat : //
double R[2][2];
// Resultat attendu pour A+B //
double R1[2][2]={{36,56},{22,103}};
// Resultat attendu pour A.B //
double R2[2][2]={{575,620},{1476,720}};
// Resultat attendu pour A-B //
double R3[2][2]={{-6,-16},{-4,95}};
// Resultat attendu pour A' //
double R4[2][2]={{15,9},{20,99}};
// Resultat attendu pour A^-1 //
double R5[2][2]={{(11/145),(-4/261)},{(-1/145),(1/87}}; */
/* Op?rations : */
//}
// Ne pas modifier cette fonction
int main(int argc,char ** argv)

Formats disponibles : Unified diff