CANTram Framework 1.0.1
Dieses Framework ermöglicht die Nutzung der CANTram Hardware, einer Mikrocontroller basierten mdoularen Steuerung.
Loading...
Searching...
No Matches
I2CInterface.h
1#ifndef I2C_INTERFACE_H
2#define I2C_INTERFACE_H
3
4#include "Interface.h"
5#include "I2CCore.h"
6#include "Wire.h"
7
8class I2CInterface : public Interface{
9public:
10 I2CInterface() = default;
11
12 Interface::Type getType() const override {
13 return Interface::BUS;
14 }
15
16 void setI2CCore(I2CCore* core){i2cCore = core;}
17 I2CCore* getI2CCore(){return i2cCore;}
18
19 bool begin(){
20 if(!i2cCore->begin()){
21 ERROR_PRINTLN("[I2CInterface] ERROR: I2C initialization failed.");
22 return false;
23 }
24 return true;
25 }
26
27 void beginTransmission(uint16_t address){
28 i2cCore->beginTransmission((uint8_t)address);
29 };
30 void beginTransmission(uint8_t address){
31 i2cCore->beginTransmission(address);
32 };
33
34 void beginTransmission(int address){
35 i2cCore->beginTransmission((uint8_t)address);
36 };
37
38 uint8_t endTransmission(bool sendStop){
39 return i2cCore->endTransmission();
40 };
41 uint8_t endTransmission(void){
42 return i2cCore->endTransmission();
43 };
44
45 size_t write(uint8_t data){
46 return i2cCore->write(data);
47 };
48 size_t write(const uint8_t* data, size_t length){
49 return i2cCore->write(data, length);
50 }
51 int available(void){
52 return i2cCore->available();
53 };
54 int read(void){
55 return i2cCore->read();
56 };
57 int peek(void){
58 return i2cCore->peek();
59 };
60 void flush(void){
61 i2cCore->flush();
62 };
63
64 inline size_t write(const char * s)
65 {
66 return write((uint8_t*) s, strlen(s));
67 }
68 inline size_t write(unsigned long n)
69 {
70 return write((uint8_t)n);
71 }
72 inline size_t write(long n)
73 {
74 return write((uint8_t)n);
75 }
76 inline size_t write(unsigned int n)
77 {
78 return write((uint8_t)n);
79 }
80 inline size_t write(int n)
81 {
82 return write((uint8_t)n);
83 }
84
85private:
86 I2CCore* i2cCore;
87};
88 #endif
#define ERROR_PRINTLN(x)
Print an error-level message with newline.
Definition Debug.h:161
Definition I2CCore.h:7