@ -123,15 +123,15 @@ RCInput::task_spawn(int argc, char *argv[])
int myoptind = 1 ;
int myoptind = 1 ;
int ch ;
int ch ;
const char * myoptarg = nullptr ;
const char * myoptarg = nullptr ;
const char * device = nullptr ;
const char * device_name = nullptr ;
# if defined(RC_SERIAL_PORT)
# if defined(RC_SERIAL_PORT)
device = RC_SERIAL_PORT ;
device_name = RC_SERIAL_PORT ;
# endif // RC_SERIAL_PORT
# endif // RC_SERIAL_PORT
while ( ( ch = px4_getopt ( argc , argv , " d: " , & myoptind , & myoptarg ) ) ! = EOF ) {
while ( ( ch = px4_getopt ( argc , argv , " d: " , & myoptind , & myoptarg ) ) ! = EOF ) {
switch ( ch ) {
switch ( ch ) {
case ' d ' :
case ' d ' :
device = myoptarg ;
device_name = myoptarg ;
break ;
break ;
case ' ? ' :
case ' ? ' :
@ -149,24 +149,31 @@ RCInput::task_spawn(int argc, char *argv[])
return - 1 ;
return - 1 ;
}
}
if ( device = = nullptr ) {
if ( device_name & & ( access ( device_name , R_OK | W_OK ) = = 0 ) ) {
PX4_ERR ( " valid device required " ) ;
RCInput * instance = new RCInput ( device_name ) ;
return PX4_ERROR ;
}
RCInput * instance = new RCInput ( device ) ;
if ( instance = = nullptr ) {
PX4_ERR ( " alloc failed " ) ;
return PX4_ERROR ;
}
if ( instance = = nullptr ) {
_object . store ( instance ) ;
PX4_ERR ( " alloc failed " ) ;
_task_id = task_id_is_work_queue ;
return PX4_ERROR ;
}
_object . store ( instance ) ;
instance - > ScheduleOnInterval ( _current_update_interval ) ;
_task_id = task_id_is_work_queue ;
instance - > ScheduleOnInterval ( _current_update_interval ) ;
return PX4_OK ;
} else {
if ( device_name ) {
PX4_ERR ( " invalid device (-d) %s " , device_name ) ;
} else {
PX4_INFO ( " valid device required " ) ;
}
}
return PX4_OK ;
return PX4_ERROR ;
}
}
void
void