blob: b236cc9b476ca6b3e39e66264b30d1af6fccba5c [file] [log] [blame]
Matt Spinlerb54357f2017-08-21 14:38:54 -05001#pragma once
2
3#include <map>
4#include <string>
5#include <tuple>
Matt Spinlere7e432b2017-08-21 15:01:40 -05006#include <vector>
Matt Spinlerb54357f2017-08-21 14:38:54 -05007
8namespace witherspoon
9{
10namespace power
11{
12namespace ucd90160
13{
14
Matt Spinlerd998b732017-08-21 15:35:54 -050015constexpr auto gpiNumField = 0;
16constexpr auto pinIDField = 1;
17constexpr auto gpiNameField = 2;
18constexpr auto pollField = 3;
19
20using GPIConfig = std::tuple<size_t, size_t, std::string, bool>;
21
22using GPIConfigs = std::vector<GPIConfig>;
23
Matt Spinlere7e432b2017-08-21 15:01:40 -050024using RailNames = std::vector<std::string>;
Matt Spinlerb54357f2017-08-21 14:38:54 -050025
Matt Spinlere7e432b2017-08-21 15:01:40 -050026constexpr auto pathField = 0;
27constexpr auto railNamesField = 1;
Matt Spinlerd998b732017-08-21 15:35:54 -050028constexpr auto gpiConfigField = 2;
Matt Spinlere7e432b2017-08-21 15:01:40 -050029
Matt Spinlerd998b732017-08-21 15:35:54 -050030using DeviceDefinition = std::tuple<std::string, RailNames, GPIConfigs>;
Matt Spinlerb54357f2017-08-21 14:38:54 -050031
32//Maps a device instance to its definition
33using DeviceMap = std::map<size_t, DeviceDefinition>;
34
35}
36}
37}