GPGSA support: fix indentation

This commit is contained in:
Kosma Moczek 2014-02-26 15:03:20 +01:00
parent da55e342e3
commit a04115b3f4
3 changed files with 85 additions and 92 deletions

View File

@ -335,63 +335,56 @@ bool minmea_parse_gpgga(struct minmea_gpgga *frame, const char *sentence)
return true;
}
bool minmea_parse_gpgsa(struct minmea_gpgsa *frame, const char *sentence){
// $GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39
char type[6];
bool minmea_parse_gpgsa(struct minmea_gpgsa *frame, const char *sentence)
{
// $GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39
char type[6];
if (!minmea_scan(sentence, "tciiiiiiiiiiiiifff",
type,
&frame->mode,
&frame->fix_type,
&frame->sat1,
&frame->sat2,
&frame->sat3,
&frame->sat4,
&frame->sat5,
&frame->sat6,
&frame->sat7,
&frame->sat8,
&frame->sat9,
&frame->sat10,
&frame->sat11,
&frame->sat12,
&frame->pdop,
&frame->pdop_scale,
&frame->hdop,
&frame->hdop_scale,
&frame->vdop,
&frame->vdop_scale
)){
return false;
}
if (strcmp(type, "GPGSA")){
return false;
}
if (!minmea_scan(sentence, "tciiiiiiiiiiiiifff",
type,
&frame->mode,
&frame->fix_type,
&frame->sat1,
&frame->sat2,
&frame->sat3,
&frame->sat4,
&frame->sat5,
&frame->sat6,
&frame->sat7,
&frame->sat8,
&frame->sat9,
&frame->sat10,
&frame->sat11,
&frame->sat12,
&frame->pdop,
&frame->pdop_scale,
&frame->hdop,
&frame->hdop_scale,
&frame->vdop,
&frame->vdop_scale
)){
return false;
}
if (strcmp(type, "GPGSA"))
return false;
if(frame->mode == 'A'){
frame->mode = GPGSA_MODE_AUTO;
}
else if(frame->mode == 'M'){
frame->mode = GPGSA_MODE_FORCED;
}
else{
return false;
}
if (frame->mode == 'A')
frame->mode = GPGSA_MODE_AUTO;
else if (frame->mode == 'M')
frame->mode = GPGSA_MODE_FORCED;
else
return false;
if(frame->fix_type == 1){
frame->fix_type = GPGSA_FIX_NONE;
}
else if(frame->fix_type == 2){
frame->fix_type = GPGSA_FIX_2D;
}
else if(frame->fix_type == 3){
frame->fix_type = GPGSA_FIX_3D;
}
else{
return false;
}
if (frame->fix_type == 1)
frame->fix_type = GPGSA_FIX_NONE;
else if (frame->fix_type == 2)
frame->fix_type = GPGSA_FIX_2D;
else if (frame->fix_type == 3)
frame->fix_type = GPGSA_FIX_3D;
else
return false;
return true;
return true;
}
int minmea_gettimeofday(struct timeval *tv, const struct minmea_date *date, const struct minmea_time *time)

View File

@ -67,31 +67,31 @@ struct minmea_gpgga {
};
enum minmea_gpgsa_mode {
GPGSA_MODE_AUTO,
GPGSA_MODE_FORCED
GPGSA_MODE_AUTO,
GPGSA_MODE_FORCED
};
enum minmea_gpgsa_fix_type {
GPGSA_FIX_NONE,
GPGSA_FIX_2D,
GPGSA_FIX_3D
GPGSA_FIX_NONE,
GPGSA_FIX_2D,
GPGSA_FIX_3D
};
struct minmea_gpgsa {
int mode;
int fix_type;
int sat1;
int sat2;
int sat3;
int sat4;
int sat5;
int sat6;
int sat7;
int sat8;
int sat9;
int sat10;
int sat11;
int sat12;
int mode;
int fix_type;
int sat1;
int sat2;
int sat3;
int sat4;
int sat5;
int sat6;
int sat7;
int sat8;
int sat9;
int sat10;
int sat11;
int sat12;
int pdop, pdop_scale;
int hdop, hdop_scale;
int vdop, vdop_scale;

40
tests.c
View File

@ -337,26 +337,26 @@ START_TEST(test_minmea_parse_gpgsa1)
const char *sentence = "$GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39";
struct minmea_gpgsa frame = {};
struct minmea_gpgsa expected = {
.mode = GPGSA_MODE_AUTO,
.fix_type = GPGSA_FIX_3D,
.sat1 = 4,
.sat2 = 5,
.sat3 = 0,
.sat4 = 9,
.sat5 = 12,
.sat6 = 0,
.sat7 = 0,
.sat8 = 24,
.sat9 = 0,
.sat10 = 0,
.sat11 = 0,
.sat12 = 0,
.pdop = 25,
.pdop_scale = 10,
.hdop = 13,
.hdop_scale = 10,
.vdop = 21,
.vdop_scale = 10
.mode = GPGSA_MODE_AUTO,
.fix_type = GPGSA_FIX_3D,
.sat1 = 4,
.sat2 = 5,
.sat3 = 0,
.sat4 = 9,
.sat5 = 12,
.sat6 = 0,
.sat7 = 0,
.sat8 = 24,
.sat9 = 0,
.sat10 = 0,
.sat11 = 0,
.sat12 = 0,
.pdop = 25,
.pdop_scale = 10,
.hdop = 13,
.hdop_scale = 10,
.vdop = 21,
.vdop_scale = 10
};
ck_assert(minmea_check(sentence) == true);
ck_assert(minmea_parse_gpgsa(&frame, sentence) == true);