HAL_PX4: make usb_connected() more robust

thanks to a suggestion from Phillip Kocmoud, this should fix issues
with the XUAV-X2
This commit is contained in:
Andrew Tridgell 2015-07-08 11:19:07 +10:00
parent 2f8a7f316f
commit f4a9f9876f
1 changed files with 7 additions and 1 deletions

View File

@ -242,7 +242,13 @@ bool PX4GPIO::attach_interrupt(uint8_t interrupt_num, AP_HAL::Proc p, uint8_t mo
*/ */
bool PX4GPIO::usb_connected(void) bool PX4GPIO::usb_connected(void)
{ {
return stm32_gpioread(GPIO_OTGFS_VBUS); struct stat st;
/*
we use a combination of voltage on the USB connector and the
existance of the /dev/ttyACM0 character device. This copes with
systems where the VBUS may go high even with no USB connected
*/
return stm32_gpioread(GPIO_OTGFS_VBUS) && stat("/dev/ttyACM0", &st) == 0;
} }