From 4693501d9d67c64ecc0feb9f18929d3956301dfd Mon Sep 17 00:00:00 2001 From: Gustavo Jose de Sousa Date: Fri, 24 Jun 2016 14:17:01 -0300 Subject: [PATCH] AP_HAL: Device: add bus_type field Sometimes it's necessary to know the type of bus to make some decisions where AP_HAL::Device abstraction is used. --- libraries/AP_HAL/Device.h | 11 +++++++++++ libraries/AP_HAL/I2CDevice.h | 2 ++ libraries/AP_HAL/SPIDevice.h | 2 ++ 3 files changed, 15 insertions(+) diff --git a/libraries/AP_HAL/Device.h b/libraries/AP_HAL/Device.h index fad3449ee6..8f6af29b90 100644 --- a/libraries/AP_HAL/Device.h +++ b/libraries/AP_HAL/Device.h @@ -26,6 +26,11 @@ */ class AP_HAL::Device { public: + enum BusType { + I2C, + SPI, + }; + enum Speed { SPEED_HIGH, SPEED_LOW, @@ -33,6 +38,12 @@ public: typedef void PeriodicHandle; + const enum BusType bus_type; + + Device(enum BusType type) + : bus_type(type) + { } + virtual ~Device() { } /* diff --git a/libraries/AP_HAL/I2CDevice.h b/libraries/AP_HAL/I2CDevice.h index 49c62dca22..68481872a4 100644 --- a/libraries/AP_HAL/I2CDevice.h +++ b/libraries/AP_HAL/I2CDevice.h @@ -27,6 +27,8 @@ namespace AP_HAL { class I2CDevice : public Device { public: + I2CDevice() : Device(I2C) { } + virtual ~I2CDevice() { } /* diff --git a/libraries/AP_HAL/SPIDevice.h b/libraries/AP_HAL/SPIDevice.h index 7a158985c4..917a5c5388 100644 --- a/libraries/AP_HAL/SPIDevice.h +++ b/libraries/AP_HAL/SPIDevice.h @@ -27,6 +27,8 @@ namespace AP_HAL { class SPIDevice : public Device { public: + SPIDevice() : Device(SPI) { } + virtual ~SPIDevice() { } /* Device implementation */