Browse Source

drivers/gps: require valid device to start

master
Daniel Agar 3 years ago committed by Beat Küng
parent
commit
fe23718e2c
  1. 18
      src/drivers/gps/gps.cpp

18
src/drivers/gps/gps.cpp

@ -1320,7 +1320,7 @@ GPS *GPS::instantiate(int argc, char *argv[])
GPS *GPS::instantiate(int argc, char *argv[], Instance instance) GPS *GPS::instantiate(int argc, char *argv[], Instance instance)
{ {
const char *device_name = "/dev/ttyS3"; const char *device_name = nullptr;
const char *device_name_secondary = nullptr; const char *device_name_secondary = nullptr;
int baudrate_main = 0; int baudrate_main = 0;
int baudrate_secondary = 0; int baudrate_secondary = 0;
@ -1427,9 +1427,14 @@ GPS *GPS::instantiate(int argc, char *argv[], Instance instance)
return nullptr; return nullptr;
} }
GPS *gps; GPS *gps = nullptr;
if (instance == Instance::Main) { if (instance == Instance::Main) {
gps = new GPS(device_name, mode, interface, enable_sat_info, instance, baudrate_main); if (device_name && (access(device_name, R_OK|W_OK) == 0)) {
gps = new GPS(device_name, mode, interface, enable_sat_info, instance, baudrate_main);
} else {
PX4_ERR("invalid device (-d) %s", device_name ? device_name : "");
}
if (gps && device_name_secondary) { if (gps && device_name_secondary) {
task_spawn(argc, argv, Instance::Secondary); task_spawn(argc, argv, Instance::Secondary);
@ -1447,7 +1452,12 @@ GPS *GPS::instantiate(int argc, char *argv[], Instance instance)
} }
} }
} else { // secondary instance } else { // secondary instance
gps = new GPS(device_name_secondary, mode, interface_secondary, enable_sat_info, instance, baudrate_secondary); if (device_name_secondary && (access(device_name_secondary, R_OK|W_OK) == 0)) {
gps = new GPS(device_name_secondary, mode, interface_secondary, enable_sat_info, instance, baudrate_secondary);
} else {
PX4_ERR("invalid secondary device (-g) %s", device_name_secondary ? device_name_secondary : "");
}
} }
return gps; return gps;

Loading…
Cancel
Save