forked from dgund/BBBKit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathI2C.h
66 lines (48 loc) · 1.63 KB
/
I2C.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*
Copyright 2018 Devin Gund (https://dgund.com)
https://github.com/dgund/BBBKit/
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#ifndef I2C_H
#define I2C_H
#include <string>
namespace bbbkit {
class I2C {
public:
enum BUS {
I2C_1 = 1,
I2C_2 = 2,
};
private:
I2C::BUS bus;
std::string path;
unsigned int deviceAddress;
int file;
public:
I2C(I2C::BUS bus, unsigned int deviceAddress);
virtual ~I2C();
// Open I2C bus to device
virtual int open();
// Check if I2C bus is open
virtual bool isOpen();
// Write value to I2C device
virtual int write(unsigned char value);
// Write value to I2C device register
virtual int writeRegister(unsigned int address, unsigned char value);
// Read value from I2C device register
virtual unsigned char readRegister(unsigned int address);
// Read value from multiple I2C device registers (in one read operation)
virtual unsigned char *readRegisters(unsigned int startAddress, unsigned int count);
// Close I2C bus to device
virtual void close();
};
} /* namespace bbbkit */
#endif /* I2C_H */