chip: Document
diff --git a/src/gpioplus/chip.hpp b/src/gpioplus/chip.hpp
index 7c913a0..7e8f9d7 100644
--- a/src/gpioplus/chip.hpp
+++ b/src/gpioplus/chip.hpp
@@ -7,39 +7,82 @@
namespace gpioplus
{
+/** @brief Information about the queried gpio chip */
struct ChipInfo
{
+ /** @brief Kernel name of the chip */
std::string name;
+ /** @brief Functional name of the chip */
std::string label;
+ /** @brief Number of lines on the chip */
uint32_t lines;
};
+/** @brief Flags pertaining to the gpio line */
struct LineFlags
{
+ /** @brief Is the kernel currently using the line */
bool kernel;
+ /** @brief Is the line used for output (otherwise input) */
bool output;
+ /** @brief Is the line value active at low voltage */
bool active_low;
+ /** @brief Is the line an open drain */
bool open_drain;
+ /** @brief Is the line an open source */
bool open_source;
+ /** @brief Converts the syscall flags to this struct
+ *
+ * @param[in] flags - The int bitfield of flags
+ */
LineFlags(uint32_t flags);
};
+/** @brief Information about the queried gpio line */
struct LineInfo
{
+ /** @brief Flags that apply to the line */
LineFlags flags;
+ /** @brief name of the line as specified by the gpio chip */
std::string name;
+ /** @brief the name of the consumer of the line */
std::string consumer;
};
+/** @class Chip
+ * @brief Handle to a gpio chip
+ * @details Provides a c++ interface to gpio chip operations
+ */
class Chip
{
public:
+ /** @brief Creates a new chip from chip id
+ * Ids come from the /sys/bus/gpio/devices/gpiochip{id}
+ *
+ * @param[in] id - Id of the chip to open
+ * @param[in] sys - Optional underlying syscall implementation
+ */
Chip(unsigned id, const internal::Sys* sys = &internal::sys_impl);
+ /** @brief Gets the information about this chip
+ *
+ * @throws std::system_error for underlying syscall failures
+ * @return The chip information
+ */
ChipInfo getChipInfo() const;
+
+ /** @brief Gets the information about a line on the chip
+ *
+ * @throws std::system_error for underlying syscall failures
+ * @return The line information
+ */
LineInfo getLineInfo(uint32_t offset) const;
+ /** @brief Get the file descriptor associated with the chip
+ *
+ * @return The file descriptor
+ */
const internal::Fd& getFd() const;
private: