SegLCDLib
Loading...
Searching...
No Matches
SegTransport.h
Go to the documentation of this file.
1#ifndef SEGTRANSPORT_H
2#define SEGTRANSPORT_H
3
4#include <Wire.h>
5
10
11};
12
19 public:
20 virtual ~SegTransport3Wire() = default;
21
28 virtual void set_cs(uint8_t chipselect, bool state) = 0;
29
36 virtual void write(uint16_t data, uint8_t bitCount) = 0;
37};
38
43 public:
51 SegTransport3WireArduino(uint8_t data, uint8_t write, uint8_t read = -1);
52
53 void set_cs(uint8_t chipselect, bool state) override;
54 void write(uint16_t data, uint8_t bitCount) override;
55
56 private:
57 uint8_t _data;
58 uint8_t _write;
59 uint8_t _read;
60};
61
66 public:
67 virtual ~SegTransportI2C() = default;
68
75 virtual void write(uint8_t address, uint8_t data) = 0;
76
84 virtual void write(uint8_t address, uint8_t *data, size_t length) = 0;
85};
86
91 public:
97 SegTransportI2CArduino(TwoWire& i2c);
98 void write(uint8_t address, uint8_t data) override;
99 void write(uint8_t address, uint8_t *data, size_t length) override;
100
101 private:
102 TwoWire& _i2c;
103};
104
105#endif
Arduino GPIO implementation of the 3-wire transport.
Definition SegTransport.h:42
void set_cs(uint8_t chipselect, bool state) override
Drive chip-select line.
Definition SegTransport.cpp:13
void write(uint16_t data, uint8_t bitCount) override
Write bits to the 3-wire bus, MSB first.
Definition SegTransport.cpp:19
uint8_t _write
Definition SegTransport.h:58
uint8_t _read
Definition SegTransport.h:59
uint8_t _data
Definition SegTransport.h:57
Abstract 3-wire serial transport.
Definition SegTransport.h:18
virtual void set_cs(uint8_t chipselect, bool state)=0
Drive chip-select line.
virtual void write(uint16_t data, uint8_t bitCount)=0
Write bits to the 3-wire bus, MSB first.
virtual ~SegTransport3Wire()=default
Arduino TwoWire implementation of the I2C transport.
Definition SegTransport.h:90
void write(uint8_t address, uint8_t data) override
Write one byte to an I2C device.
Definition SegTransport.cpp:32
TwoWire & _i2c
Definition SegTransport.h:102
Abstract I2C transport.
Definition SegTransport.h:65
virtual ~SegTransportI2C()=default
virtual void write(uint8_t address, uint8_t data)=0
Write one byte to an I2C device.
virtual void write(uint8_t address, uint8_t *data, size_t length)=0
Write multiple bytes to an I2C device.
Abstract base class for low-level bus transports.
Definition SegTransport.h:9