int main(int argc, char *argv[]) { int gps_nr = 0; SerialDevice dev; carmen_gps_gpgga_message gpgga; carmen_gps_gprmc_message gprmc; carmen_erase_structure(&gpgga, sizeof(carmen_gps_gpgga_message) ); carmen_erase_structure(&gprmc, sizeof(carmen_gps_gprmc_message) ); gpgga.host = carmen_get_host(); gprmc.host = carmen_get_host(); DEVICE_init_params( &dev ); carmen_ipc_initialize( argc, argv ); ipc_initialize_messages(); read_parameters( &dev, argc, argv ); carmen_extern_gpgga_ptr = &gpgga; carmen_extern_gpgga_ptr->nr = gps_nr; carmen_extern_gprmc_ptr = &gprmc; carmen_extern_gprmc_ptr->nr = gps_nr; fprintf( stderr, "INFO: ************************\n" ); fprintf( stderr, "INFO: ********* GPS ********\n" ); fprintf( stderr, "INFO: ************************\n" ); fprintf( stderr, "INFO: open device: %s\n", dev.ttyport ); if (DEVICE_connect_port( &dev )<0) { fprintf( stderr, "ERROR: can't open device !!!\n\n" ); exit(1); } else { fprintf( stderr, "INFO: done\n" ); } while(TRUE) { if ( DEVICE_bytes_waiting( dev.fd )>10 ) { if (DEVICE_read_data( dev )) { gpgga.timestamp = carmen_get_time(); gprmc.timestamp = carmen_get_time(); ipc_publish_position(); } usleep(100000); } else { carmen_ipc_sleep(0.25); //IPC_listen(0); //usleep(250000); } } return(0); }
int carmen_hokuyo_start(int argc, char **argv) { /* initialize laser messages */ ipc_initialize_messages(); /* get laser parameters */ set_default_parameters(&hokuyo); read_parameters(argc, argv); printf("starting device\n"); hokuyo_start(&hokuyo); return 0; }
int carmen_laser_start(int argc, char **argv) { /* initialize laser messages */ ipc_initialize_messages(); /* get laser parameters */ set_default_parameters(&laser1, CARMEN_FRONT_LASER_NUM); set_default_parameters(&laser2, CARMEN_REAR_LASER_NUM); set_default_parameters(&laser3, CARMEN_LASER3_NUM); set_default_parameters(&laser4, CARMEN_LASER4_NUM); set_default_parameters(&laser5, CARMEN_LASER5_NUM); read_parameters(argc, argv); /* start lasers, and start publishing scans */ if(use_laser1) { set_laser_config_structure(&laser1, &laser1_config); sick_start_laser(&laser1); } if(use_laser2) { set_laser_config_structure(&laser2, &laser2_config); sick_start_laser(&laser2); } if(use_laser3) { set_laser_config_structure(&laser3, &laser3_config); sick_start_laser(&laser3); } if(use_laser4) { set_laser_config_structure(&laser4, &laser4_config); sick_start_laser(&laser4); } if(use_laser5) { set_laser_config_structure(&laser5, &laser5_config); sick_start_laser(&laser5); } return 0; }