diff options
| author | Nikita Kostovsky <nikita@kostovsky.me> | 2025-11-14 21:05:12 +0100 |
|---|---|---|
| committer | Nikita Kostovsky <nikita@kostovsky.me> | 2025-11-14 21:05:12 +0100 |
| commit | 5df63c0bc7e3d6f1850d04f5bafbae2dd6fa619e (patch) | |
| tree | 7b98d59baec4aac62cab374e95795a2ce6b88d03 /src/camera/veye_i2c.h | |
| parent | 36ef6a75e3418d88227e84ab175c0057e860c151 (diff) | |
organize things a bit, populate ICamera
Diffstat (limited to 'src/camera/veye_i2c.h')
| -rw-r--r-- | src/camera/veye_i2c.h | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/camera/veye_i2c.h b/src/camera/veye_i2c.h index 001d483..24ef10b 100644 --- a/src/camera/veye_i2c.h +++ b/src/camera/veye_i2c.h @@ -1,6 +1,7 @@ #pragma once #include <cstdint> +#include <optional> #include <string> namespace veye { @@ -12,20 +13,30 @@ public: ~i2c(); public: - bool read(uint16_t reg, uint32_t &value); - bool write(uint16_t reg, const uint32_t value); - -private: + /*! + * \brief open - open i2c device with `name` passed to constructor + * \return - true on success or if already open, false otherwise + */ bool open(); + std::optional<uint32_t> read(uint16_t reg); + bool write(uint16_t reg, const uint32_t value); + private: int m_fd{-1}; std::string m_name; int m_address{-1}; }; -bool i2cRead(int fd, uint8_t i2c_addr, uint16_t reg, uint32_t &value); -bool i2cWrite(int fd, uint16_t reg, const uint32_t value); -bool test(uint32_t value); +/*! + * \brief i2c_read - read device registers using i2c + * \param fd - device file descriptor + * \param i2c_addr - i2c adderr + * \param reg - register + * \param value - value to set + * \return non-empty register value on success, empty value on failure + */ +std::optional<uint32_t> i2c_read(int fd, uint8_t i2c_addr, uint16_t reg); +bool i2c_write(int fd, uint16_t reg, const uint32_t value); } // namespace imx287m } // namespace veye |
