Browse Source

AP_HAL_Linux: attach_interrupt now takes a functor

AP_HAL_Linux: add type-safety for interrupt types
master
Peter Barker 7 years ago committed by Randy Mackay
parent
commit
8d5a9ead48
  1. 4
      libraries/AP_HAL_Linux/GPIO_BBB.cpp
  2. 5
      libraries/AP_HAL_Linux/GPIO_BBB.h
  3. 4
      libraries/AP_HAL_Linux/GPIO_RPI.cpp
  4. 5
      libraries/AP_HAL_Linux/GPIO_RPI.h
  5. 5
      libraries/AP_HAL_Linux/GPIO_Sysfs.cpp
  6. 4
      libraries/AP_HAL_Linux/GPIO_Sysfs.h

4
libraries/AP_HAL_Linux/GPIO_BBB.cpp

@ -113,7 +113,9 @@ AP_HAL::DigitalSource* GPIO_BBB::channel(uint16_t n) { @@ -113,7 +113,9 @@ AP_HAL::DigitalSource* GPIO_BBB::channel(uint16_t n) {
}
/* Interrupt interface: */
bool GPIO_BBB::attach_interrupt(uint8_t interrupt_num, AP_HAL::Proc p, uint8_t mode)
bool GPIO_BBB::attach_interrupt(uint8_t interrupt_num,
irq_handler_fn_t fn,
INTERRUPT_TRIGGER_TYPE mode)
{
return true;
}

5
libraries/AP_HAL_Linux/GPIO_BBB.h

@ -130,8 +130,9 @@ public: @@ -130,8 +130,9 @@ public:
AP_HAL::DigitalSource* channel(uint16_t n);
/* Interrupt interface: */
bool attach_interrupt(uint8_t interrupt_num, AP_HAL::Proc p,
uint8_t mode);
bool attach_interrupt(uint8_t interrupt_num,
irq_handler_fn_t fn,
INTERRUPT_TRIGGER_TYPE mode) override;
/* return true if USB cable is connected */
bool usb_connected(void);

4
libraries/AP_HAL_Linux/GPIO_RPI.cpp

@ -122,7 +122,9 @@ AP_HAL::DigitalSource* GPIO_RPI::channel(uint16_t n) @@ -122,7 +122,9 @@ AP_HAL::DigitalSource* GPIO_RPI::channel(uint16_t n)
}
/* Interrupt interface: */
bool GPIO_RPI::attach_interrupt(uint8_t interrupt_num, AP_HAL::Proc p, uint8_t mode)
bool GPIO_RPI::attach_interrupt(uint8_t interrupt_num,
irq_handler_fn_t fn,
INTERRUPT_TRIGGER_TYPE mode)
{
return true;
}

5
libraries/AP_HAL_Linux/GPIO_RPI.h

@ -57,8 +57,9 @@ public: @@ -57,8 +57,9 @@ public:
AP_HAL::DigitalSource* channel(uint16_t n);
/* Interrupt interface: */
bool attach_interrupt(uint8_t interrupt_num, AP_HAL::Proc p,
uint8_t mode);
bool attach_interrupt(uint8_t interrupt_num,
irq_handler_fn_t fn,
INTERRUPT_TRIGGER_TYPE mode);
/* return true if USB cable is connected */
bool usb_connected(void);

5
libraries/AP_HAL_Linux/GPIO_Sysfs.cpp

@ -188,8 +188,9 @@ AP_HAL::DigitalSource* GPIO_Sysfs::channel(uint16_t vpin) @@ -188,8 +188,9 @@ AP_HAL::DigitalSource* GPIO_Sysfs::channel(uint16_t vpin)
return new DigitalSource_Sysfs(pin, value_fd);
}
bool GPIO_Sysfs::attach_interrupt(uint8_t interrupt_num, AP_HAL::Proc p,
uint8_t mode)
bool GPIO_Sysfs::attach_interrupt(uint8_t interrupt_num,
irq_handler_fn_t p,
INTERRUPT_TRIGGER_TYPE mode)
{
return false;
}

4
libraries/AP_HAL_Linux/GPIO_Sysfs.h

@ -52,7 +52,9 @@ public: @@ -52,7 +52,9 @@ public:
/*
* Currently this function always returns false.
*/
bool attach_interrupt(uint8_t interrupt_num, AP_HAL::Proc p, uint8_t mode) override;
bool attach_interrupt(uint8_t interrupt_num,
irq_handler_fn_t p,
INTERRUPT_TRIGGER_TYPE mode) override;
/*
* Currently this function always returns false.

Loading…
Cancel
Save