[Firebug-cvs] fireboard/sensors/leadtek9546 nmea_parse_test.c,NONE,1.1 leadtek_9546.c,1.3,1.4
Brought to you by:
doolin
From: David M. D. <do...@us...> - 2004-08-30 17:01:34
|
Update of /cvsroot/firebug/fireboard/sensors/leadtek9546 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6565 Modified Files: leadtek_9546.c Added Files: nmea_parse_test.c Log Message: Added a test function for testing out the nmea parsing code. --- NEW FILE: nmea_parse_test.c --- #include <stdio.h> #include <string.h> #include <stdlib.h> #include "nmea_parse.h" int test_gga_parse(void) { int passed = 0; char * gga_string = "$GPGGA,231622.994,3751.3086,N,12216.5235,W,1,09,1.1,-4.5,M,,,,0000*30"; GGA_Data * gga_data = nmea_gga_new(); //(GGA_Data*)malloc(sizeof(GGA_Data)); GGA_Data * gga_parsed; int result; gga_data->hours = 23; gga_data->minutes = 16; gga_data->dec_sec = 22.994; gga_data->Lat_deg = 37; gga_data->Lat_dec_min = 51.3086; gga_data->Long_deg = 122; gga_data->Long_dec_min = 16.5235; gga_data->NSEWind = 17; gga_data->num_sats = 9; gga_parsed = nmea_gga_parse(gga_string); result = memcmp((const void*)gga_parsed,(const void*)(gga_data),sizeof(GGA_Data)); /* nmea_gga_print(gga_data); nmea_gga_print(gga_parsed); printf("result from memcmp: %d\n",result); */ if (result == 0) { printf("Passed nmea_gga_parse\n"); passed = 1; } else { printf("Failed nmea_gga_parse\n"); } nmea_gga_delete(gga_data); nmea_gga_delete(gga_parsed); return passed; } int test_gll_parse() { int passed = 0; const char gll_string[] = {"$GPGLL,3723.2475,N,12158.3416,W,161229.487,A*2C"}; GLL_Data * gll_data = nmea_gll_new(); GLL_Data * gll_parsed; int result; gll_data->hours = 16; gll_data->minutes = 12; gll_data->dec_sec = 29.487; gll_data->Lat_deg = 37; gll_data->Lat_dec_min = 23.2475; gll_data->Long_deg = 121; gll_data->Long_dec_min = 58.3416; gll_data->NSEWind = 17; gll_data->status = 'A'; gll_parsed = nmea_gll_parse(gll_string); result = memcmp((const void*)gll_parsed,(const void*)(gll_data),sizeof(GLL_Data)); //nmea_gll_print(gll_data); //nmea_gll_print(gll_parsed); if (result == 0) { printf("Passed nmea_gll_parse\n"); passed = 1; } else { printf("Failed nmea_gll_parse\n"); } nmea_gll_delete(gll_data); nmea_gll_delete(gll_parsed); return passed; } int test_gsa_parse() { int passed = 0; const char gsa_string[] = {"$GPGSA,A,3,07,02,26,27,09,04,15,,,,,,1.8,1.0,1.5*33"}; GSA_Data * gsa_data = nmea_gsa_new(); GSA_Data * gsa_parsed; int result; gsa_data->mode1 = 'A'; gsa_data->mode2 = 3; gsa_data->sat_used[0] = 7; gsa_data->sat_used[1] = 2; gsa_data->sat_used[2] = 26; gsa_data->sat_used[3] = 27; gsa_data->sat_used[4] = 9; gsa_data->sat_used[5] = 4; gsa_data->sat_used[6] = 15; gsa_data->sat_used[7] = 0; gsa_data->sat_used[8] = 0; gsa_data->sat_used[9] = 0; gsa_data->sat_used[10] = 0; gsa_data->sat_used[11] = 0; gsa_data->PDOP = 1.8; gsa_data->HDOP = 1.0; gsa_data->VDOP = 1.5; gsa_parsed = nmea_gsa_parse(gsa_string); result = memcmp((const void*)gsa_parsed,(const void*)(gsa_data),sizeof(GSA_Data)); //nmea_gsa_print(gsa_data); //nmea_gsa_print(gsa_parsed); if (result == 0) { printf("Passed nmea_gsa_parse\n"); passed = 1; } else { printf("Failed nmea_gsa_parse\n"); } nmea_gsa_delete(gsa_data); nmea_gsa_delete(gsa_parsed); return passed; } int test_gsv_parse() { int passed = 0; const char gsv_string1[] = {"$GPGSV,2,1,07,07,79,048,42,02,51,062,43,26,36,256,42,27,27,138,42,*71"}; const char gsv_string2[] = {"$GPGSV,2,2,07,09,23,313,42,04,19,159,41,15,12,041,42,*41"}; GSV_Data * gsv_data = nmea_gsv_new(); GSV_Data * gsv_parsed; int result; gsv_data->num_messages = 2; gsv_data->message_number = 1; gsv_data->satellites_in_view = 7; gsv_data->channel[0].sat_id = 7; gsv_data->channel[0].elevation = 79; gsv_data->channel[0].azimuth = 48; gsv_data->channel[0].SNR = 42; gsv_data->channel[1].sat_id = 2; gsv_data->channel[1].elevation = 51; gsv_data->channel[1].azimuth = 62; gsv_data->channel[1].SNR = 43; gsv_data->channel[2].sat_id = 26; gsv_data->channel[2].elevation = 36; gsv_data->channel[2].azimuth = 256; gsv_data->channel[2].SNR = 42; gsv_data->channel[3].sat_id = 27; gsv_data->channel[3].elevation = 27; gsv_data->channel[3].azimuth = 138; gsv_data->channel[3].SNR = 42; gsv_parsed = nmea_gsv_parse(gsv_string1); result = memcmp((const void*)gsv_parsed,(const void*)(gsv_data),sizeof(GSV_Data)); //nmea_gsv_print(gsv_data); //nmea_gsv_print(gsv_parsed); nmea_gsv_delete(gsv_parsed); if (result == 0) { printf("Passed nmea_gsv_parse\n"); passed = 1; } else { printf("Failed nmea_gsv_parse\n"); } gsv_parsed = nmea_gsv_parse(gsv_string2); //nmea_gsv_print(gsv_parsed); nmea_gsv_delete(gsv_parsed); nmea_gsv_delete(gsv_data); return passed; } int test_mss_parse() { int passed = 0; const char mss_string[] = {"$GPMSS,55,27,318.0,100,*66"}; MSS_Data * mss_data = nmea_mss_new(); MSS_Data * mss_parsed; int result; mss_data->signal_strength = 55; mss_data->SNR = 27; mss_data->beacon_freq = 318.0; mss_data->bit_rate = 100; mss_parsed = nmea_mss_parse(mss_string); result = memcmp((const void*)mss_parsed,(const void*)(mss_data),sizeof(MSS_Data)); if (result == 0) { printf("Passed nmea_mss_parse\n"); passed = 1; } else { printf("Failed nmea_mss_parse\n"); } //nmea_mss_print(mss_parsed); nmea_mss_delete(mss_data); nmea_mss_delete(mss_parsed); return passed; } int test_vtg_parse() { int passed = 0; const char vtg_string[] = {"$GPVTG,309.62,T,,M,0.13,N,0.2,K*6E"}; VTG_Data * vtg_data = nmea_vtg_new(); VTG_Data * vtg_parsed; int result; vtg_data->course_true = 309.62; vtg_parsed = nmea_vtg_parse(vtg_string); result = memcmp((const void*)vtg_parsed,(const void*)(vtg_data),sizeof(VTG_Data)); if (result == 0) { printf("Passed nmea_vtg_parse\n"); passed = 1; } else { printf("Failed nmea_vtg_parse\n"); } nmea_vtg_delete(vtg_data); nmea_vtg_delete(vtg_parsed); return passed; } int test_rmc_parse() { int passed = 0; //const char rmc_string[] = {"$GPRMC"}; //RMC_Data * rmc_data = nmea_rmc_new(); //RMC_Data * rmc_parsed; int result; if (result == 0) { printf("Passed nmea_rmc_parse\n"); passed = 1; } else { printf("Failed nmea_rmc_parse\n"); } return passed; } int test_nmea_parse() { test_gga_parse(); test_gll_parse(); test_gsa_parse(); test_gsv_parse(); test_mss_parse(); test_vtg_parse(); test_rmc_parse(); return 0; } int main(int argc, char ** argv) { test_nmea_parse(); return 0; } Index: leadtek_9546.c =================================================================== RCS file: /cvsroot/firebug/fireboard/sensors/leadtek9546/leadtek_9546.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** leadtek_9546.c 30 Aug 2004 16:58:15 -0000 1.3 --- leadtek_9546.c 30 Aug 2004 17:01:23 -0000 1.4 *************** *** 44,48 **** char data[] = {"$LTC,1000,0"}; char data1[] = {"$GPGSV,3,3,11,03,19,314,21,29,19,044,39,02,15,293,24"}; ! char data2[] = {"$GPGGA,023129.762,3754.1755,N,12218.2682,W,1,08,1.1,-19.4,M,,,,0000"}; --- 44,48 ---- char data[] = {"$LTC,1000,0"}; char data1[] = {"$GPGSV,3,3,11,03,19,314,21,29,19,044,39,02,15,293,24"}; ! //char data2[] = {"$GPGGA,023129.762,3754.1755,N,12218.2682,W,1,08,1.1,-19.4,M,,,,0000"}; |