Skip to content

Commit 2ed7da9

Browse files
committed
[driver] vl53 fixup
1 parent 752496d commit 2ed7da9

File tree

2 files changed

+6
-20
lines changed

2 files changed

+6
-20
lines changed

ext/vl53/vl53_transport.hpp

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ class Vl53SpiTransport : public modm::SpiDevice<SpiMaster>, public Vl53Transport
8282
resetSensor() override;
8383

8484
private:
85+
uint8_t addr_buffer[2];
8586
uint8_t rx_buffer[VL53LMZ_COMMS_CHUNK_SIZE + 2];
8687

8788
static uint16_t
@@ -98,23 +99,16 @@ class Vl53SpiTransport : public modm::SpiDevice<SpiMaster>, public Vl53Transport
9899
};
99100

100101
template<typename I2cMaster, typename Lpn>
101-
class Vl53I2cTransport : public modm::I2cDevice<I2cMaster>, public Vl53TransportBase, private I2cEeprom<I2cMaster, 2>
102+
class Vl53I2cTransport : public I2cEeprom<I2cMaster, 2>, public Vl53TransportBase
102103
{
103104
public:
104-
Vl53I2cTransport(const uint8_t address) : I2cDevice<I2cMaster>{address}, I2cEeprom<I2cMaster,2>{address} {};
105+
Vl53I2cTransport(const uint8_t address) : I2cEeprom<I2cMaster,2>{address} {};
105106

106107
Vl53I2cTransport(const Vl53I2cTransport &) = delete;
107108

108109
Vl53I2cTransport &
109110
operator=(const Vl53I2cTransport &) = delete;
110111

111-
void
112-
setAddress(const uint8_t address)
113-
{
114-
I2cEeprom<I2cMaster,2>::transaction.setAddress(address);
115-
I2cDevice<I2cMaster>::transaction.setAddress(address);
116-
};
117-
118112
uint8_t
119113
writeMulti(uint16_t register_address, const uint8_t *p_values, uint32_t size) override;
120114

ext/vl53/vl53_transport_impl.hpp

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ Vl53SpiTransport<SpiMaster, Cs, Lpn, VL53LMZ_COMMS_CHUNK_SIZE>::writeMulti(uint1
4141

4242
const uint16_t temp = RegisterAddress + position;
4343

44-
uint8_t addr_buffer[2];
4544
addr_buffer[0] = SPI_WRITE_MASK(temp) >> 8;
4645
addr_buffer[1] = SPI_WRITE_MASK(temp) & 0xFF;
4746

@@ -126,7 +125,7 @@ Vl53I2cTransport<I2cMaster, Lpn>::readMulti(uint16_t RegisterAddress, uint8_t *p
126125
data_write[0] = (RegisterAddress >> 8) & 0xFF;
127126
data_write[1] = RegisterAddress & 0xFF;
128127

129-
const auto status = I2cDevice<I2cMaster>::writeRead(&data_write[0], 2, p_values, size);
128+
const auto status = this->writeRead(&data_write[0], 2, p_values, size);
130129
return static_cast<uint8_t>(not status);
131130
};
132131

@@ -140,8 +139,7 @@ Vl53I2cTransport<I2cMaster, Lpn>::readByte(uint16_t RegisterAddress, uint8_t *p_
140139
data_write[0] = (RegisterAddress >> 8) & 0xFF;
141140
data_write[1] = RegisterAddress & 0xFF;
142141

143-
const auto status = I2cDevice<I2cMaster>::writeRead(&data_write[0], 2, &data_read[0], 1);
144-
*p_value = data_read[0];
142+
const auto status = this->writeRead(&data_write[0], 2, p_value, 1);
145143

146144
return static_cast<uint8_t>(not status);
147145
}
@@ -150,13 +148,7 @@ template<typename I2cMaster, typename Lpn>
150148
uint8_t
151149
Vl53I2cTransport<I2cMaster, Lpn>::writeByte(uint16_t RegisterAddress, uint8_t value)
152150
{
153-
uint8_t data_write[3];
154-
155-
data_write[0] = (RegisterAddress >> 8) & 0xFF;
156-
data_write[1] = RegisterAddress & 0xFF;
157-
data_write[2] = value & 0xFF;
158-
159-
const auto status = I2cDevice<I2cMaster>::write(&data_write[0], 3);
151+
const auto status = I2cEeprom<I2cMaster,2>::write(RegisterAddress, &value, 1);
160152
return static_cast<uint8_t>(not status);
161153
}
162154

0 commit comments

Comments
 (0)