Avionics
Core avionics package for CURE flight computers
Loading...
Searching...
No Matches
spi_mock.h
Go to the documentation of this file.
1#ifndef SPI_MOCK_H
2#define SPI_MOCK_H
3
4#include <array>
5#include <cstddef>
6#include <cstdint>
7#include <cstdio>
8
9/* ──────────────────────────────
10 Simple Arduino‑style helpers
11 ──────────────────────────────*/
12#define F(x) x // PROGMEM macro stub
13
15public:
16 template<typename T> void print(const T&) {}
17 template<typename T> void println(const T&) {}
18 // clear mock
19 void clear() {
20 }
21};
22// inline MockSerialClass Serial; // global mock instance
23
24/* ──────────────────────────────
25 SPI mock
26 ──────────────────────────────*/
27#define MSBFIRST 0
28#define SPI_MODE0 0
29
31public:
32 SPISettings(int, int, int) {}
33};
34
36public:
37 MockSPIClass(uint32_t&, uint32_t&, uint32_t&, uint32_t&) {}
39
40 static void begin() {}
41 static void end() {}
43 static void endTransaction() {}
44
45 /* dumb stubs that always “succeed” */
46 static bool transfer(uint8_t&) { return true; }
47 static bool transfer(uint8_t*, std::nullptr_t, int) { return true; }
48 static bool transfer(uint8_t*, uint8_t*&, size_t&) { return true; }
49 static bool transfer(const uint8_t*, std::nullptr_t, int){ return true; }
50 static bool transfer(uint8_t*, uint8_t, int) { return true; }
51 static bool transfer(uint8_t*, uint8_t*, int) { return true; }
52 static bool transfer(uint8_t*, uint8_t*, int*) { return true; }
53
54 static bool writeBytes(const uint8_t*, int) { return true; }
55 static bool writeBytes(uint8_t*, uint8_t*, int) { return true; }
56 static bool writeBytes(uint8_t*, uint8_t*, int*) { return true; }
57
58 static bool transferBytes(uint8_t*, uint8_t*, int) { return true; }
59 static bool transferBytes(uint8_t*, uint8_t*, int*) { return true; }
60};
61
62class SPIClass : public MockSPIClass {
63public:
64 SPIClass(uint32_t& mosi, uint32_t& miso,
65 uint32_t& sclk, uint32_t& ssel)
66 : MockSPIClass(mosi, miso, sclk, ssel) {}
68};
69extern SPIClass SPI; // declared; you can define in a test .cpp
70
71/* ──────────────────────────────
72 SdFat / File mocks
73 ──────────────────────────────*/
74struct File32 {
75 bool open(const char*, int) { return true; }
76 void close() {}
77 bool exists(const char*) { return false; }
78
79 /* Arduino‑style file API */
80 int write(const void*, size_t n) { return static_cast<int>(n); }
81 void sync() {}
82
83 template<typename T> void print (const T&) {}
84 template<typename T> void println(const T&) {}
85
86 bool preAllocate(uint32_t) { return true; }
87
88 /* truthiness test: if(file) … */
89 explicit operator bool() const { return true; }
90};
92
93struct SdFat {
94 bool begin(uint8_t, int) { return true; }
95 bool exists(const char*) { return false; }
96 SdFile_t open(const char*, int) { return SdFile_t(); }
97};
98
99/* file‑open flags + helper macro */
100#define O_WRITE 0x01
101#define O_CREAT 0x02
102#define O_APPEND 0x04
103#define SD_SCK_MHZ(x) (x)
104
105#endif /* SPI_MOCK_H */
static bool transfer(uint8_t *, std::nullptr_t, int)
Definition spi_mock.h:47
static bool transfer(uint8_t *, uint8_t *, int *)
Definition spi_mock.h:52
static void endTransaction()
Definition spi_mock.h:43
static bool transfer(uint8_t *, uint8_t *&, size_t &)
Definition spi_mock.h:48
static bool writeBytes(const uint8_t *, int)
Definition spi_mock.h:54
static bool transfer(const uint8_t *, std::nullptr_t, int)
Definition spi_mock.h:49
static bool transfer(uint8_t &)
Definition spi_mock.h:46
static bool writeBytes(uint8_t *, uint8_t *, int)
Definition spi_mock.h:55
static void beginTransaction(SPISettings)
Definition spi_mock.h:42
static bool transfer(uint8_t *, uint8_t, int)
Definition spi_mock.h:50
static bool writeBytes(uint8_t *, uint8_t *, int *)
Definition spi_mock.h:56
static bool transfer(uint8_t *, uint8_t *, int)
Definition spi_mock.h:51
MockSPIClass(uint32_t &, uint32_t &, uint32_t &, uint32_t &)
Definition spi_mock.h:37
static void end()
Definition spi_mock.h:41
static bool transferBytes(uint8_t *, uint8_t *, int)
Definition spi_mock.h:58
static void begin()
Definition spi_mock.h:40
static bool transferBytes(uint8_t *, uint8_t *, int *)
Definition spi_mock.h:59
void print(const T &)
Definition spi_mock.h:16
void println(const T &)
Definition spi_mock.h:17
SPIClass(uint32_t &mosi, uint32_t &miso, uint32_t &sclk, uint32_t &ssel)
Definition spi_mock.h:64
SPIClass()
Definition spi_mock.h:67
SPISettings(int, int, int)
Definition spi_mock.h:32
File32 SdFile_t
Definition spi_mock.h:91
SPIClass SPI
void sync()
Definition spi_mock.h:81
int write(const void *, size_t n)
Definition spi_mock.h:80
void println(const T &)
Definition spi_mock.h:84
bool exists(const char *)
Definition spi_mock.h:77
bool preAllocate(uint32_t)
Definition spi_mock.h:86
void close()
Definition spi_mock.h:76
void print(const T &)
Definition spi_mock.h:83
bool open(const char *, int)
Definition spi_mock.h:75
bool exists(const char *)
Definition spi_mock.h:95
bool begin(uint8_t, int)
Definition spi_mock.h:94
SdFile_t open(const char *, int)
Definition spi_mock.h:96