Line data Source code
1 : #pragma once 2 : 3 : #include "AP_HAL_SITL.h" 4 : #if CONFIG_HAL_BOARD == HAL_BOARD_SITL 5 : 6 : class HALSITL::GPIO : public AP_HAL::GPIO { 7 : public: 8 2145 : explicit GPIO(SITL_State *sitlState): _sitlState(sitlState) {} 9 : void init() override; 10 : void pinMode(uint8_t pin, uint8_t output) override; 11 : uint8_t read(uint8_t pin) override; 12 : void write(uint8_t pin, uint8_t value) override; 13 : void toggle(uint8_t pin) override; 14 : 15 : /* Alternative interface: */ 16 : AP_HAL::DigitalSource* channel(uint16_t n) override; 17 : 18 : /* return true if USB cable is connected */ 19 : bool usb_connected(void) override; 20 : 21 260317 : bool valid_pin(uint8_t pin) const override { return pin < 16; } 22 : 23 : private: 24 : SITL_State *_sitlState; 25 : 26 : uint8_t pin_mode_is_write; 27 : }; 28 : 29 : class HALSITL::DigitalSource : public AP_HAL::DigitalSource { 30 : public: 31 : explicit DigitalSource(uint8_t pin); 32 : void mode(uint8_t output) override; 33 : uint8_t read() override; 34 : void write(uint8_t value) override; 35 : void toggle() override; 36 : 37 : private: 38 : uint8_t _pin; 39 : }; 40 : #endif