Skip to content

Commit 64ffd3b

Browse files
committed
Modify CPP generation to handle enums in lookup tables.
1 parent bbf9cd9 commit 64ffd3b

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

examples/RS0003/Fan-Continuous.RS0003.a205.json

+1
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,7 @@
502502
"NORMAL",
503503
"NORMAL",
504504
"NORMAL",
505+
"NORMAL",
505506
"NORMAL"
506507
]
507508
}

schema205/header_entries.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -336,8 +336,8 @@ def value(self):
336336
entry += '\n'
337337
entry += self.level*'\t' + self.type + ' ' + f'{self.name}Struct' + ' ' + self._opener + '\n'
338338
for c in [ch for ch in self._child_entries if isinstance(ch, Data_element)]:
339-
m = re.match(r'std::vector\<(.*)\>', c.type)
340-
entry += (self.level+1)*'\t' + m.group(1) + ' ' + c.name + ';\n'
339+
# m = re.match(r'std::vector\<(.*)\>', c.type)
340+
entry += (self.level+1)*'\t' + 'double' + ' ' + c.name + ';\n'
341341
entry += (self.level*'\t' + self._closure)
342342
return entry
343343

schema205/libtk205_fixed_src/include/lookup_variables_base.h

+14-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88

99
class PerformanceMapBase;
1010

11+
template <class T>
12+
using is_scoped_enum = std::integral_constant<bool, !std::is_convertible<T,int>{}
13+
&& std::is_enum<T>{}>;
14+
1115
// ------------------------------------------------------------------------------------------------
1216
/// @class LookupVariablesBase lookup_variables_base.h
1317

@@ -25,6 +29,15 @@ class LookupVariablesBase {
2529
{
2630
performance_map->add_data_table(table);
2731
}
32+
33+
template < class T, typename = std::enable_if<is_scoped_enum<T>::value> >
34+
void add_data_table(PerformanceMapBase* performance_map, std::vector<T>& table)
35+
{
36+
std::vector<double> converted_enums;
37+
std::transform(table.begin(), table.end(), std::back_inserter(converted_enums),
38+
[](T n) { return static_cast<double>(n); });
39+
performance_map->add_data_table(converted_enums);
40+
}
2841
};
2942

30-
#endif
43+
#endif

0 commit comments

Comments
 (0)