blob: 02d69b6a182a25daca72c9243d68f2fd0b267cb2 [file] [log] [blame]
// SPDX-License-Identifier: LGPL-2.1-or-later
/*
* This file is part of libgpiod.
*
* Copyright (C) 2017-2018 Bartosz Golaszewski <bartekgola@gmail.com>
*/
/* Simplified C++ reimplementation of the gpioinfo tool. */
#include <gpiod.hpp>
#include <cstdlib>
#include <iostream>
int main(int argc, char **argv)
{
if (argc != 1) {
::std::cerr << "usage: " << argv[0] << ::std::endl;
return EXIT_FAILURE;
}
for (auto& cit: ::gpiod::make_chip_iter()) {
::std::cout << cit.name() << " - " << cit.num_lines() << " lines:" << ::std::endl;
for (auto& lit: ::gpiod::line_iter(cit)) {
::std::cout << "\tline ";
::std::cout.width(3);
::std::cout << lit.offset() << ": ";
::std::cout.width(12);
::std::cout << (lit.name().empty() ? "unnamed" : lit.name());
::std::cout << " ";
::std::cout.width(12);
::std::cout << (lit.consumer().empty() ? "unused" : lit.consumer());
::std::cout << " ";
::std::cout.width(8);
::std::cout << (lit.direction() == ::gpiod::line::DIRECTION_INPUT ? "input" : "output");
::std::cout << " ";
::std::cout.width(10);
::std::cout << (lit.active_state() == ::gpiod::line::ACTIVE_LOW
? "active-low" : "active-high");
::std::cout << ::std::endl;
}
}
return EXIT_SUCCESS;
}