65tuple<map<string, map<string, map<string, int>> >, map<string, map<string, map<string, string>> > >
getBoardMapping(
json j)
82 for (
auto& el : j.items())
85 for (
auto& subel : el.value().items())
87 string jsonStr = subel.value().dump();
90 if (el.key() ==
"scifi")
92 info_scifi = nlohmann::json::parse(jsonStr);
94 if (info_scifi.
Class !=
"multiboard" || info_scifi.
type !=
"snd_scifi")
96 cout <<
"Wrong class/type: " << info_scifi.
Class <<
"/" << info_scifi.
type << endl;
100 for (
int i = 0; i < info_scifi.
boards.size(); i++)
102 bString = Form(
"board_%i", info_scifi.
boards.at(i));
103 c =::toupper(subel.key()[1]);
104 boardMaps[
"Scifi"][bString][Form(
"M%c%c", subel.key()[0], c )] = i;
107 else if (el.key() ==
"veto")
109 info = nlohmann::json::parse(jsonStr);
111 if (info.Class !=
"multislot" || info.type !=
"snd_veto")
113 cout <<
"Wrong class/type: " << info.Class <<
"/" << info.type << endl;
117 bString = Form(
"board_%i", info.board);
123 for (
int i = 0; i < info.slots.size(); i++)
125 bString = Form(
"board_%i", info.board);
126 if (stoi(subel.key())<3){
127 if (i==0)
boardMapsMu[
"MuFilter"][bString][info.slots.at(i)] = Form(
"Veto_%iLeft", stoi(subel.key()));
128 else if (i==1)
boardMapsMu[
"MuFilter"][bString][info.slots.at(i)] = Form(
"Veto_%iRight", stoi(subel.key()));
130 if (stoi(subel.key())==3)
boardMapsMu[
"MuFilter"][bString][info.slots.at(i)] = Form(
"Veto_%iVert", stoi(subel.key()));
133 else if (el.key() ==
"us")
135 info = nlohmann::json::parse(jsonStr);
137 if (info.Class !=
"multislot" || info.type !=
"snd_us")
139 cout <<
"Wrong class/type: " << info.Class <<
"/" << info.type << endl;
143 bString = Form(
"board_%i", info.board);
149 for (
int i = 0; i < info.slots.size(); i++)
151 bString = Form(
"board_%i", info.board);
152 if (i==0)
boardMapsMu[
"MuFilter"][bString][info.slots.at(i)] = Form(
"US_%iLeft", stoi(subel.key()));
153 else if (i==1)
boardMapsMu[
"MuFilter"][bString][info.slots.at(i)] = Form(
"US_%iRight", stoi(subel.key()));
156 else if (el.key() ==
"ds")
158 info = nlohmann::json::parse(jsonStr);
160 if (info.Class !=
"multislot" || (info.type !=
"snd_dsh" && info.type !=
"snd_dsv"))
162 cout <<
"Wrong class/type: " << info.Class <<
"/" << info.type << endl;
166 bString = Form(
"board_%i", info.board);
173 if(info.type ==
"snd_dsh")
176 for (
int i = 0; i < info.slots.size(); i++)
178 bString = Form(
"board_%i", info.board);
179 if (i==0)
boardMapsMu[
"MuFilter"][bString][info.slots.at(i)] = Form(
"DS_%iLeft", stoi(subel.key()));
180 else if (i==1)
boardMapsMu[
"MuFilter"][bString][info.slots.at(i)] = Form(
"DS_%iRight", stoi(subel.key()));
185 boardMapsMu[
"MuFilter"][bString][info.slots.at(0)] = Form(
"DS_%iVert", stoi(subel.key()));
190 cout <<
"Unknown subsystem " << el.key() <<endl;
tuple< map< string, map< string, map< string, int > > >, map< string, map< string, map< string, string > > > > getBoardMapping(json j)