# I2C RTC Library
This library provides support for I2C real-time clock devices
This library currently supports the following platforms:
* Linux i2c subsystem
* esp-idf
Source for this project can be found at [https://github.com/zorxx/rtci2c](https://github.com/zorxx/rtci2c).
# Usage
## API
The API for this library can be found in the `include/rtci2c/rtci2c.h` header file.
## Portability
Portability among various host platforms (e.g. Linux i2c device interface vs. the esp-idf i2c driver interface) is accomplished via a platform-specific `i2c_lowlevel_config` structure which is defined at compile-time for the project based on build environment and/or toolchain hints. An example configuration for `i2c_lowlevel_config` for Linux is:
```bash
rtci2c_lowlevel_config config = {0};
config.device = "/dev/i2c-0";
```
An example configuration for `i2c_lowlevel_config` for esp-idf is:
```bash
i2c_lowlevel_config config = {0};
config.port = I2C_NUM_0;
config.pin_sda = GPIO_NUM_21;
config.pin_scl = GPIO_NUM_22;
```
Note that the members of the `i2c_lowlevel_config` change (at compile-time) based on the target platform.
# Example Applications
Example applications are provided for each of the supported platforms and can be found in the `examples` directory.
## Linux
Use the following commands to build the Linux test application (execute from the root of the source directory)
```bash
cmake -B build -S .
cmake --build build
```
## esp-idf
To build the esp-idf test application, execute the following commands after initializing the esp-idf environment (e.g. run `source export.sh`):
```bash
cd esp-idf
idf.py build
```
# License
All files delivered with this library are copyright 2024 Zorxx Software and released under the MIT license. See the `LICENSE` file for details.
                            
                        
                    
                
            idf.py add-dependency "zorxx/rtci2c^1.3.0"