Skip to content

Commit 368e6a1

Browse files
committed
Beautify up and also test for SPI.
1 parent 36edb44 commit 368e6a1

File tree

3 files changed

+58
-23
lines changed

3 files changed

+58
-23
lines changed

examples/ts_spi/ts_spi.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ void bmp388_thread_func();
2525
* GLOBAL VARIABLES
2626
**************************************************************************************/
2727

28-
BusDevice bmp388 = BusDeviceBase::create(SPI, BMP388_CS_PIN, 1000000, MSBFIRST, SPI_MODE0);
28+
BusDevice bmp388(SPI, BMP388_CS_PIN, 1000000, MSBFIRST, SPI_MODE0);
2929

3030
static char thread_name[NUM_THREADS][32];
3131

@@ -69,7 +69,7 @@ byte bmp388_read_reg(byte const reg_addr)
6969
byte read_buf[3] = {0};
7070

7171
IoRequest req(write_buf, sizeof(write_buf), read_buf, sizeof(read_buf));
72-
IoResponse rsp = bmp388->transfer(req);
72+
IoResponse rsp = bmp388.transfer(req);
7373

7474
/* Do other stuff */
7575

src/BusDevice.cpp

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
#include "wire/WireBusDevice.h"
2727

2828
/**************************************************************************************
29-
* PUBLIC MEMBER FUNCTIONS
29+
* BusDeviceBase PUBLIC MEMBER FUNCTIONS
3030
**************************************************************************************/
3131

3232
BusDevice BusDeviceBase::create(arduino::HardwareSPI & spi, int const cs_pin, SPISettings const & spi_settings, byte const fill_symbol)
@@ -66,3 +66,46 @@ BusDevice BusDeviceBase::create(arduino::HardwareI2C & wire, byte const slave_ad
6666
{
6767
return BusDevice(new WireBusDevice(WireBusDeviceConfig{wire, slave_addr, restart, stop}));
6868
}
69+
70+
/**************************************************************************************
71+
* BusDevice CTOR/DTOR
72+
**************************************************************************************/
73+
74+
BusDevice::BusDevice(BusDeviceBase * dev)
75+
: _dev{dev}
76+
{ }
77+
78+
BusDevice::BusDevice(arduino::HardwareSPI & spi, int const cs_pin, SPISettings const & spi_settings, byte const fill_symbol)
79+
{
80+
*this = BusDeviceBase::create(spi, cs_pin, spi_settings, fill_symbol);
81+
}
82+
83+
BusDevice::BusDevice(arduino::HardwareSPI & spi, int const cs_pin, uint32_t const spi_clock, BitOrder const spi_bit_order, SPIMode const spi_bit_mode, byte const fill_symbol)
84+
{
85+
*this = BusDeviceBase::create(spi, cs_pin, spi_clock, spi_bit_order, spi_bit_mode, fill_symbol);
86+
}
87+
88+
BusDevice::BusDevice(arduino::HardwareSPI & spi, SpiBusDeviceConfig::SpiSelectFunc spi_select, SpiBusDeviceConfig::SpiDeselectFunc spi_deselect, SPISettings const & spi_settings, byte const fill_symbol)
89+
{
90+
*this = BusDeviceBase::create(spi, spi_select, spi_deselect, spi_settings, fill_symbol);
91+
}
92+
93+
BusDevice::BusDevice(arduino::HardwareI2C & wire, byte const slave_addr)
94+
{
95+
*this = BusDeviceBase::create(wire, slave_addr);
96+
}
97+
98+
BusDevice::BusDevice(arduino::HardwareI2C & wire, byte const slave_addr, bool const restart)
99+
{
100+
*this = BusDeviceBase::create(wire, slave_addr, restart);
101+
}
102+
103+
BusDevice::BusDevice(arduino::HardwareI2C & wire, byte const slave_addr, bool const restart, bool const stop)
104+
{
105+
*this = BusDeviceBase::create(wire, slave_addr, restart, stop);
106+
}
107+
108+
IoResponse BusDevice::transfer(IoRequest & req)
109+
{
110+
return _dev->transfer(req);
111+
}

src/BusDevice.h

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,6 @@ namespace arduino
3939

4040
class BusDevice;
4141

42-
/**************************************************************************************
43-
* TYPEDEF
44-
**************************************************************************************/
45-
4642
/**************************************************************************************
4743
* CLASS DECLARATION
4844
**************************************************************************************/
@@ -69,28 +65,24 @@ class BusDeviceBase
6965
class BusDevice
7066
{
7167
public:
72-
BusDevice(BusDeviceBase* dev) : instance(dev) {};
73-
/*
74-
BusDevice(arduino::HardwareSPI & spi, int const cs_pin, SPISettings const & spi_settings, byte const fill_symbol = 0xFF) {
75-
this = BusDeviceBase::create(spi, cs_pin, spi_settings, fill_symbol);
76-
}
68+
69+
BusDevice(BusDeviceBase * dev);
70+
71+
BusDevice(arduino::HardwareSPI & spi, int const cs_pin, SPISettings const & spi_settings, byte const fill_symbol = 0xFF);
7772
BusDevice(arduino::HardwareSPI & spi, int const cs_pin, uint32_t const spi_clock, BitOrder const spi_bit_order, SPIMode const spi_bit_mode, byte const fill_symbol = 0xFF);
7873
BusDevice(arduino::HardwareSPI & spi, SpiBusDeviceConfig::SpiSelectFunc spi_select, SpiBusDeviceConfig::SpiDeselectFunc spi_deselect, SPISettings const & spi_settings, byte const fill_symbol = 0xFF);
79-
*/
80-
//BusDevice(BusDevice&&) = default;
81-
BusDevice(arduino::HardwareI2C & wire, byte const slave_addr) {
82-
*this = BusDeviceBase::create(wire, slave_addr);
83-
}
84-
/*
74+
75+
BusDevice(arduino::HardwareI2C & wire, byte const slave_addr);
8576
BusDevice(arduino::HardwareI2C & wire, byte const slave_addr, bool const restart);
8677
BusDevice(arduino::HardwareI2C & wire, byte const slave_addr, bool const restart, bool const stop);
87-
*/
88-
IoResponse transfer(IoRequest & req) {
89-
return instance->transfer(req);
90-
};
78+
79+
IoResponse transfer(IoRequest & req);
80+
9181

9282
private:
93-
mbed::SharedPtr<BusDeviceBase> instance;
83+
84+
mbed::SharedPtr<BusDeviceBase> _dev;
85+
9486
};
9587

9688
#endif /* BUS_DEVICE_H_ */

0 commit comments

Comments
 (0)