Skip to content

Commit b4fe9a0

Browse files
Merge pull request #69 from kolod/spi-transfer16
Add SPI transfer16 method
2 parents 205fa00 + 86c0945 commit b4fe9a0

File tree

4 files changed

+10
-0
lines changed

4 files changed

+10
-0
lines changed

src/SPIFake.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ uint8_t SPIClass::transfer(uint8_t data) {
1717
return ArduinoFakeInstance(SPI)->transfer(data);
1818
};
1919

20+
uint16_t SPIClass::transfer16(uint16_t data) {
21+
return ArduinoFakeInstance(SPI)->transfer16(data);
22+
};
23+
2024
void SPIClass::transfer(void *buf, size_t count) {
2125
return ArduinoFakeInstance(SPI)->transfer(buf, count);
2226
};

src/SPIFake.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
struct SPIFake {
77
virtual uint8_t transfer(uint8_t data) = 0;
8+
virtual uint16_t transfer16(uint16_t data) = 0;
89
virtual void transfer(void *buf, size_t count) = 0;
910

1011
virtual void beginTransaction(SPISettings settings) = 0;

src/arduino/SPI.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ class SPIClass {
9999

100100
// Write to the SPI bus (MOSI pin) and also receive (MISO pin)
101101
virtual uint8_t transfer(uint8_t data);
102+
virtual uint16_t transfer16(uint16_t data);
102103
virtual void transfer(void *buf, size_t count);
103104

104105
// After performing a group of transfers and releasing the chip select

test/test_spi.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ namespace SpiTest {
77
void test_basics(void) {
88
SPISettings settings(4000000, MSBFIRST, SPI_MODE0);
99
uint8_t data = 0x01;
10+
uint16_t data16 = 0x1234;
1011
uint8_t buffer[] = {0x02, 0x03, 0x04};
1112
uint8_t *ptr = buffer;
1213

@@ -15,11 +16,13 @@ void test_basics(void) {
1516
When(OverloadedMethod(ArduinoFake(SPI), beginTransaction, void(SPISettings)).Using(settings)).AlwaysReturn();
1617
When(OverloadedMethod(ArduinoFake(SPI), endTransaction, void(void))).AlwaysReturn();
1718
When(OverloadedMethod(ArduinoFake(SPI), transfer, uint8_t(uint8_t)).Using(data)).AlwaysReturn();
19+
When(OverloadedMethod(ArduinoFake(SPI), transfer16, uint16_t(uint16_t)).Using(data16)).AlwaysReturn();
1820
When(OverloadedMethod(ArduinoFake(SPI), transfer, void(void*, size_t)).Using(ptr, sizeof(buffer))).AlwaysReturn();
1921

2022
SPI.begin();
2123
SPI.beginTransaction(settings);
2224
SPI.transfer(data);
25+
SPI.transfer16(data16);
2326
SPI.transfer(buffer, sizeof(buffer));
2427
SPI.endTransaction();
2528
SPI.end();
@@ -29,6 +32,7 @@ void test_basics(void) {
2932
Verify(OverloadedMethod(ArduinoFake(SPI), beginTransaction, void(SPISettings))).Once();
3033
Verify(OverloadedMethod(ArduinoFake(SPI), endTransaction, void(void))).Once();
3134
Verify(OverloadedMethod(ArduinoFake(SPI), transfer, uint8_t(uint8_t))).Once();
35+
Verify(OverloadedMethod(ArduinoFake(SPI), transfer16, uint16_t(uint16_t))).Once();
3236
Verify(OverloadedMethod(ArduinoFake(SPI), transfer, void(void*, size_t))).Once();
3337
}
3438

0 commit comments

Comments
 (0)