APM:Libraries
GPIO.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "AP_HAL_VRBRAIN.h"
4 
5 #if CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN
6  # define HAL_GPIO_A_LED_PIN 25
7  # define HAL_GPIO_B_LED_PIN 26
8  # define HAL_GPIO_C_LED_PIN 27
9  # define EXTERNAL_LED_GPS 28
10  # define EXTERNAL_LED_ARMED 29
11  # define EXTERNAL_LED_MOTOR1 30
12  # define EXTERNAL_LED_MOTOR2 31
13 
14  # define EXTERNAL_RELAY1_PIN 34
15  # define EXTERNAL_RELAY2_PIN 33
16 
17  # define HAL_GPIO_LED_ON HIGH
18  # define HAL_GPIO_LED_OFF LOW
19 #endif
20 
22 public:
23  VRBRAINGPIO();
24  void init() override;
25  void pinMode(uint8_t pin, uint8_t output) override;
26  int8_t analogPinToDigitalPin(uint8_t pin) override;
27  uint8_t read(uint8_t pin) override;
28  void write(uint8_t pin, uint8_t value) override;
29  void toggle(uint8_t pin) override;
30 
31  /* Alternative interface: */
32  AP_HAL::DigitalSource* channel(uint16_t n) override;
33 
34  /* Interrupt interface: */
35  bool attach_interrupt(uint8_t interrupt_num, AP_HAL::Proc p, uint8_t mode) override;
36 
37  /* return true if USB cable is connected */
38  bool usb_connected(void) override;
39 
40  // used by UART code to avoid a hw bug in the AUAV-X2
41  void set_usb_connected(void) { _usb_connected = true; }
42 
43 private:
44  int _led_fd = -1;
45  int _tone_alarm_fd = -1;
46  int _gpio_fmu_fd = -1;
47 
48  bool _usb_connected = false;
49 };
50 
52 public:
53  VRBRAINDigitalSource(uint8_t v);
54  void mode(uint8_t output);
55  uint8_t read();
56  void write(uint8_t value);
57  void toggle();
58 private:
59  uint8_t _v;
60 };
int8_t analogPinToDigitalPin(uint8_t pin) override
Definition: GPIO.cpp:87
void write(uint8_t pin, uint8_t value) override
Definition: GPIO.cpp:116
int _tone_alarm_fd
Definition: GPIO.h:45
void pinMode(uint8_t pin, uint8_t output) override
Definition: GPIO.cpp:81
void(* Proc)(void)
void init() override
Definition: GPIO.cpp:30
void toggle(uint8_t pin) override
Definition: GPIO.cpp:171
AP_HAL::DigitalSource * channel(uint16_t n) override
Definition: GPIO.cpp:177
void set_usb_connected(void)
Definition: GPIO.h:41
bool _usb_connected
Definition: GPIO.h:48
float v
Definition: Printf.cpp:15
float value
bool usb_connected(void) override
Definition: GPIO.cpp:190
static int8_t pin
Definition: AnalogIn.cpp:15
uint8_t read(uint8_t pin) override
Definition: GPIO.cpp:93
bool attach_interrupt(uint8_t interrupt_num, AP_HAL::Proc p, uint8_t mode) override
Definition: GPIO.cpp:182