mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-26 17:36:40 +08:00
drivers/gps: require valid device to start
This commit is contained in:
+14
-4
@@ -1320,7 +1320,7 @@ GPS *GPS::instantiate(int argc, char *argv[])
|
||||
|
||||
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;
|
||||
int baudrate_main = 0;
|
||||
int baudrate_secondary = 0;
|
||||
@@ -1427,9 +1427,14 @@ GPS *GPS::instantiate(int argc, char *argv[], Instance instance)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
GPS *gps;
|
||||
GPS *gps = nullptr;
|
||||
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) {
|
||||
task_spawn(argc, argv, Instance::Secondary);
|
||||
@@ -1447,7 +1452,12 @@ GPS *GPS::instantiate(int argc, char *argv[], Instance 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;
|
||||
|
||||
Reference in New Issue
Block a user