Skip to content

Commit 7dc8326

Browse files
committed
fixes and made read/write region virtual
1 parent 44b6684 commit 7dc8326

File tree

5 files changed

+17
-10
lines changed

5 files changed

+17
-10
lines changed

src/sfeTk/sfeTkISPI.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,13 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
3030
class sfeTkSPI : public sfeTkIBus
3131
{
3232
public:
33-
sfeTkI2C() : _csPin{kNoCSPin}
33+
sfeTkSPI() : _cs{kNoCSPin}
3434
{
3535
}
3636

37+
sfeTkSPI(uint8_t csPin) : _cs{csPin}
38+
{
39+
}
3740
/// @brief setter for the CS Pin
3841
///
3942
/// @param devCS The device's CS Pin

src/sfeTkArdI2C.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ bool sfeTkArdI2C::writeRegisterWord(uint8_t devReg, uint16_t dataToWrite)
125125
//
126126
// Returns the number of bytes written, < 0 is an error
127127
//
128-
int sfeTkArdI2C::writeRegisterRegion(uint8_t devReg, const uint8_t *data, uint16_t length)
128+
virtual int sfeTkArdI2C::writeRegisterRegion(uint8_t devReg, const uint8_t *data, uint16_t length)
129129
{
130130
if (!_i2cPort)
131131
return -1;
@@ -192,7 +192,7 @@ bool sfeTkArdI2C::readRegisterWord(uint8_t devReg, uint16_t &dataToRead)
192192
//
193193
// Returns the number of bytes read, < 0 is an error
194194
//
195-
int sfeTkArdI2C::readRegisterRegion(uint8_t devReg, uint8_t *data, uint16_t numBytes)
195+
virtual int sfeTkArdI2C::readRegisterRegion(uint8_t devReg, uint8_t *data, uint16_t numBytes)
196196
{
197197
// got port
198198
if (!_i2cPort)

src/sfeTkArdI2C.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,14 @@ class sfeTkArdI2C : public sfeTkII2C
8686

8787
/// @brief Writes a number of bytes starting at the given register's address.
8888
/// @note sfeTkIBus interface method
89+
/// @note This method is virtual to allow it to be overridden to support a device that requires a unique impl
8990
///
9091
/// @param devReg The device's register's address.
9192
/// @param data Data to write.
9293
///
9394
/// @retval returns number of bytes written, < 0 is an error code
9495
///
95-
int writeRegisterRegion(uint8_t devReg, const uint8_t *data, uint16_t length);
96+
virtual int writeRegisterRegion(uint8_t devReg, const uint8_t *data, uint16_t length);
9697

9798
/// @brief Reads a byte of data from the given register.
9899
/// @note sfeTkIBus interface method
@@ -116,13 +117,14 @@ class sfeTkArdI2C : public sfeTkII2C
116117

117118
/// @brief Reads a block of data from the given register.
118119
/// @note sfeTkIBus interface method
120+
/// @note This method is virtual to allow it to be overridden to support a device that requires a unique impl
119121
///
120122
/// @param devReg The device's register's address.
121123
/// @param data Data to write.
122124
///
123125
/// @retval 0 on success, < 0 on error - see error code
124126
///
125-
int readRegisterRegion(uint8_t devReg, uint8_t *data, uint16_t numBytes);
127+
virtual int readRegisterRegion(uint8_t devReg, uint8_t *data, uint16_t numBytes);
126128

127129
private:
128130
// The actual Arduino i2c port

src/sfeTkArdSPI.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ bool sfeTkBusSPI::writeRegisterWord(uint8_t devReg, uint8_t dataToWrite)
128128
//
129129
// Returns the number of bytes written, < 0 is an error
130130
//
131-
int sfeTkBusSPI::writeRegisterRegion(uint8_t devReg, const uint8_t *data, uint16_t length)
131+
virtual int sfeTkBusSPI::writeRegisterRegion(uint8_t devReg, const uint8_t *data, uint16_t length)
132132
{
133133
if (!_spiPort)
134134
return -1;
@@ -166,7 +166,7 @@ bool sfeTkBusSPI::readRegisterWord(uint8_t devReg, uint16_t &data)
166166
//
167167
// Returns the number of bytes read, < 0 is an error
168168
//
169-
int sfeTkBusSPI::readRegisterRegion(uint8_t devReg, uint8_t *data, uint16_t numBytes)
169+
virtual int sfeTkBusSPI::readRegisterRegion(uint8_t devReg, uint8_t *data, uint16_t numBytes)
170170
{
171171
if (!_spiPort)
172172
return -1;

src/sfeTkArdSPI.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,14 @@ class sfeTkBusSPI : public sfeTkIBus
7979
bool writeRegisterWord(uint8_t devReg, uint16_t data);
8080

8181
/// @brief Writes a number of bytes starting at the given register's address.
82-
///
82+
/// @note This method is virtual to allow it to be overridden to support a device that requires a unique impl
83+
//
8384
/// @param devReg The device's register's address.
8485
/// @param data Data to write.
8586
///
8687
/// @retval int - number of bytes written, < 0 = error value
8788
///
88-
int writeRegisterRegion(uint8_t devReg, const uint8_t *data, uint16_t length);
89+
virtual int writeRegisterRegion(uint8_t devReg, const uint8_t *data, uint16_t length);
8990

9091
/// @brief Read a single byte from the given register
9192
///
@@ -106,13 +107,14 @@ class sfeTkBusSPI : public sfeTkIBus
106107
bool readRegisterWord(uint8_t devReg, uint16_t &data);
107108

108109
/// @brief Reads a block of data from the given register.
110+
/// @note This method is virtual to allow it to be overridden to support a device that requires a unique impl
109111
///
110112
/// @param devReg The device's register's address.
111113
/// @param data Data to write.
112114
///
113115
/// @retval int returns the number of bytes read, < 0 on error
114116
///
115-
int readRegisterRegion(uint8_t reg, uint8_t *data, uint16_t numBytes);
117+
virtual int readRegisterRegion(uint8_t reg, uint8_t *data, uint16_t numBytes);
116118

117119
private:
118120
SPIClass *_spiPort;

0 commit comments

Comments
 (0)