summaryrefslogtreecommitdiff
path: root/src/camera/veye_i2c.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/camera/veye_i2c.h')
-rw-r--r--src/camera/veye_i2c.h25
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