1 #pragma once 2 3 #include <map> 4 #include <string> 5 #include <tuple> 6 #include <vector> 7 8 namespace witherspoon 9 { 10 namespace power 11 { 12 namespace ucd90160 13 { 14 15 constexpr auto gpiNumField = 0; 16 constexpr auto pinIDField = 1; 17 constexpr auto gpiNameField = 2; 18 constexpr auto pollField = 3; 19 20 using GPIConfig = std::tuple<size_t, size_t, std::string, bool>; 21 22 using GPIConfigs = std::vector<GPIConfig>; 23 24 using RailNames = std::vector<std::string>; 25 26 constexpr auto pathField = 0; 27 constexpr auto railNamesField = 1; 28 constexpr auto gpiConfigField = 2; 29 30 using DeviceDefinition = std::tuple<std::string, RailNames, GPIConfigs>; 31 32 //Maps a device instance to its definition 33 using DeviceMap = std::map<size_t, DeviceDefinition>; 34 35 } 36 } 37 } 38