ApraLinuxUtils 1.0.0
C++ utility library for embedded Linux systems
 
Loading...
Searching...
No Matches
I2CBus.h
Go to the documentation of this file.
1/*
2 * I2CBus.h
3 *
4 * Copyright (c) 2024 Apra Labs
5 *
6 * This file is part of ApraUtils.
7 *
8 * Licensed under the MIT License.
9 * See LICENSE file in the project root for full license information.
10 */
11
12#ifndef SRC_APRA_UTILS_I2CBUS_H_
13#define SRC_APRA_UTILS_I2CBUS_H_
14#include <string>
15#include <vector>
16
17using namespace std;
18
19#define CONSEQUENT_I2C_TIME_LIMIT_US 1000
20namespace apra
21{
22class I2CError;
24{
25public:
26 I2C_Bus(string i2cPath, bool shouldPrint);
27 virtual ~I2C_Bus();
29 void closeBus();
30 void setSize(uint8_t registerSize, uint8_t dataSize);
31 I2CError writeOnce(uint8_t chipAddress, uint64_t registerAddress,
32 uint64_t data);
33 I2CError readOnce(uint8_t chipAddress, uint64_t registerAddress,
34 uint64_t &data);
35 I2CError writeOnI2C(uint8_t chipAddress, uint64_t registerAddress,
36 uint64_t data);
37 I2CError readOnI2C(uint8_t chipAddress, uint64_t registerAddress,
38 uint64_t &data);
39 I2CError genericWrite(uint8_t chipAddress, vector<uint8_t> registerAddress,
40 vector<uint8_t> data);
41 I2CError genericRead(uint8_t chipAddress, vector<uint8_t> registerAddress,
42 vector<uint8_t> &readData);
44private:
45 string m_i2cPath;
46 bool m_shouldPrint;
47 int32_t m_i2cFileDescriptor;
48 uint8_t m_registerSize;
49 uint8_t m_dataSize;
50 uint64_t m_lastI2COperationTs;
51};
52}
53
54#endif /* SRC_APRA_UTILS_I2CBUS_H_ */
bool isI2CExecRecommended()
Definition I2CBus.cpp:37
void closeBus()
Definition I2CBus.cpp:69
I2CError genericWrite(uint8_t chipAddress, vector< uint8_t > registerAddress, vector< uint8_t > data)
Definition I2CBus.cpp:80
I2CError writeOnce(uint8_t chipAddress, uint64_t registerAddress, uint64_t data)
Definition I2CBus.cpp:216
I2CError readOnce(uint8_t chipAddress, uint64_t registerAddress, uint64_t &data)
Definition I2CBus.cpp:228
I2CError genericRead(uint8_t chipAddress, vector< uint8_t > registerAddress, vector< uint8_t > &readData)
Definition I2CBus.cpp:140
I2CError openBus()
Definition I2CBus.cpp:49
void setSize(uint8_t registerSize, uint8_t dataSize)
Definition I2CBus.cpp:43
virtual ~I2C_Bus()
Definition I2CBus.cpp:33
I2CError writeOnI2C(uint8_t chipAddress, uint64_t registerAddress, uint64_t data)
Definition I2CBus.cpp:240
I2CError readOnI2C(uint8_t chipAddress, uint64_t registerAddress, uint64_t &data)
Definition I2CBus.cpp:260