Révision 215
Ajouté par nipelloux il y a presque 4 ans
main.c | ||
---|---|---|
"$GPZDA,141914.00,01,02,2006,00,00*69",
|
||
0};
|
||
|
||
int trame_cmp(char* trame,char* type){
|
||
int i=0;
|
||
while (type[i]!='\0'){
|
||
if (trame[i+1] != type[i]){
|
||
return 0;
|
||
|
||
int trame_cmp(char *trame, char *type)
|
||
{
|
||
int i=0,res=1;
|
||
do
|
||
{
|
||
if (trame[i+1]==type[i])
|
||
{
|
||
i++;
|
||
}
|
||
i++;
|
||
}
|
||
return 1;
|
||
else{res=0;}
|
||
}while ((type[i]!='\0')&&(res==1));
|
||
return (res);
|
||
}
|
||
|
||
int decode_int(char c){
|
||
int val=c-48;
|
||
if(val>=9 || val<0){
|
||
return -1;
|
||
|
||
int decode_int(char c)
|
||
{
|
||
int res;
|
||
res = c-48;
|
||
if ((res>9)||(res<0))
|
||
{
|
||
res=(-1);
|
||
}
|
||
return (res);
|
||
}
|
||
}
|
||
|
||
int decode_nbr(char *ch,int n){
|
||
int res=0;
|
||
int i;
|
||
for(i=n-1;i>=0;i++){
|
||
res += (decode_int(ch[i]))*pow(10,n-1-i);
|
||
int decode_nombre (char ch[], int x)
|
||
{
|
||
int i,nb=0;
|
||
for(i=0;i<x;i++)
|
||
{
|
||
nb=nb*10;
|
||
nb=nb+decode_int(ch[i]);
|
||
}
|
||
return res;
|
||
return nb;
|
||
}
|
||
|
||
float conv_latitude(char * ch){
|
||
float res=0;
|
||
int i;
|
||
float val_sexa=decode_nbr(ch,4);
|
||
float val_sexa=decode_nombre(ch,4);
|
||
|
||
for(i=5;i<0;i++){
|
||
for(i=5;i<9;i++){
|
||
val_sexa+=(decode_int(ch[i]))*pow(10,-i+4);
|
||
|
||
}
|
||
... | ... | |
float conv_longitude(char * ch){
|
||
float res=0;
|
||
int i;
|
||
float val_sexa=decode_nbr(ch,5);
|
||
float val_sexa=decode_nombre(ch,5);
|
||
|
||
for(i=6;i<10;i++){
|
||
val_sexa+=(decode_int(ch[i]))*pow(10,-i+5);
|
||
... | ... | |
//Fonction ? modifier !!!!!
|
||
void traitement(char * trame)
|
||
{
|
||
if (trame_cmp(trame,"GPGGA")==1){
|
||
static int cpt=0 ;
|
||
cpt++;
|
||
if (trame_cmp(trame,"GPGGA"))
|
||
{
|
||
printf ("> %s\n",trame);
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
void decode_trame(char *trame, pos)
|
||
{
|
||
tramdeg[7];
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
//Ajouter vos tests unitaires dans cette fonction.
|
||
void tests_unitaires(void){
|
||
... | ... | |
printf ("Erreur Test unitaire decode_nbr.\n");
|
||
exit(-1);
|
||
}
|
||
if (decode_nbr("987654321",2)!=98){
|
||
if (decode_nombre("987654321",2)!=98){
|
||
printf ("Erreur Test unitaire decode_nbr.\n");
|
||
exit(-1);
|
||
}
|
||
if (decode_nbr("123",3)!=123){
|
||
if (decode_nombre("123",3)!=123){
|
||
printf ("Erreur Test unitaire decode_nbr.\n");
|
||
printf ("%d",decode_nbr("123",3));
|
||
printf ("%d",decode_nombre("123",3));
|
||
exit(-1);
|
||
}
|
||
if (fabs(conv_latitude("3723.2475")-37.387458)>=pow(10,-6)){
|
Formats disponibles : Unified diff
Avancement du projet decode tram ou je rencontre des problemes