1d1491724SPatrick Venture #pragma once
2d1491724SPatrick Venture 
3d1491724SPatrick Venture #include "conf.hpp"
4d1491724SPatrick Venture 
5d1491724SPatrick Venture #include <nlohmann/json.hpp>
6a83a3eccSPatrick Venture 
7a83a3eccSPatrick Venture #include <map>
8d1491724SPatrick Venture #include <tuple>
9d1491724SPatrick Venture 
10*a076487aSPatrick Venture namespace pid_control
11*a076487aSPatrick Venture {
12*a076487aSPatrick Venture 
13d1491724SPatrick Venture using json = nlohmann::json;
14d1491724SPatrick Venture 
15d1491724SPatrick Venture /**
16d1491724SPatrick Venture  * Given the json "zones" data, create the map of PIDs and the map of zones.
17d1491724SPatrick Venture  *
18d1491724SPatrick Venture  * @param[in] data - the json data
19d1491724SPatrick Venture  * @return the pidConfig, and the zoneConfig
20d1491724SPatrick Venture  */
21f81f2886SJames Feist std::pair<std::map<int64_t, conf::PIDConf>,
22f81f2886SJames Feist           std::map<int64_t, struct conf::ZoneConfig>>
23d1491724SPatrick Venture     buildPIDsFromJson(const json& data);
24*a076487aSPatrick Venture 
25*a076487aSPatrick Venture } // namespace pid_control
26