// [ref] ${NMEALIB_HOME)/samples/generator/main.c. void use_generator() { nmeaINFO info; nmea_zero_INFO(&info); nmeaGENERATOR *gen = nmea_create_generator(NMEA_GEN_ROTATE, &info); if (0 == gen) { std::cerr << "generator not created" << std::endl; return; } char buff[2048]; for (int i = 0; i < 10000; ++i) { const int gen_sz = nmea_generate_from(buff, 2048, &info, gen, GPGGA | GPGSA | GPGSV | GPRMC | GPVTG); // for display. buff[gen_sz] = '\0'; std::cout << buff << std::endl; #ifdef NMEA_WIN Sleep(500); #else usleep(500000); #endif } nmea_gen_destroy(gen); }
void nmea_gen_destroy(nmeaGENERATOR *gen) { if(gen->next) { nmea_gen_destroy(gen->next); gen->next = 0; } if(gen->destroy_call) (*gen->destroy_call)(gen); free(gen); }
int main() { nmeaGENERATOR *gen; nmeaINFO info; char buff[2048]; int gen_sz; int it; FILE* file; nmea_zero_INFO(&info); if(0 == (gen = nmea_create_generator(NMEA_GEN_ROTATE, &info))) return -1; file = fopen("go.txt", "w"); for(it = 0; it < 100; ++it) { memset(buff, 0, 2048); gen_sz = nmea_generate_from( &buff[0], 2048, &info, gen, GPGGA | SDDBT // | GPGSA | GPGSV | GPRMC | GPVTG ); buff[gen_sz] = 0; //printf("%s\n", &buff[0]); fprintf(file, "%s", buff); #ifdef NMEA_WIN //Sleep(500); #else usleep(500000); #endif } fclose(file); nmea_gen_destroy(gen); return 0; }
void nmea_destroy_generator(nmeaGENERATOR *gen) { nmea_gen_destroy(gen); }