Skip to content

Commit d7d8a41

Browse files
committed
Example enums
1 parent 628e583 commit d7d8a41

File tree

3 files changed

+113
-2
lines changed

3 files changed

+113
-2
lines changed

codegen/templates/ServiceInterfaceTemplate.hpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,20 @@ cog.outl(f"#define {service['interface_class_name'].upper()}_HPP")
2222
/*[[[cog
2323
xbot_codegen.generateEnums(service)
2424
]]]*/
25+
enum class ExampleEnumClass : uint8_t {
26+
VALUE1 = 0,
27+
VALUE2 = 1,
28+
VALUE3 = 2,
29+
};
30+
31+
namespace ExampleBitmaskEnum {
32+
enum Value : uint8_t {
33+
VALUE1 = 1 << 0,
34+
VALUE2 = 1 << 1,
35+
VALUE3 = 1 << 2,
36+
};
37+
};
38+
2539
//[[[end]]]
2640
/*[[[cog
2741
cog.outl(f"class {service['interface_class_name']} : public xbot::serviceif::ServiceInterfaceBase {{")
@@ -126,6 +140,27 @@ cog.outl(f"\u002f*\n{service['service_json']}\n*\u002f")
126140
"name": "Register3",
127141
"type": "blob"
128142
}
143+
],
144+
"enums": [
145+
{
146+
"id": "ExampleEnumClass",
147+
"base_type": "uint8_t",
148+
"values": {
149+
"VALUE1": 0,
150+
"VALUE2": 1,
151+
"VALUE3": 2
152+
}
153+
},
154+
{
155+
"id": "ExampleBitmaskEnum",
156+
"base_type": "uint8_t",
157+
"bitmask": true,
158+
"values": {
159+
"VALUE1": 0,
160+
"VALUE2": 1,
161+
"VALUE3": 2
162+
}
163+
}
129164
]
130165
}
131166
*/

codegen/templates/ServiceTemplate.hpp

Lines changed: 57 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,20 @@ cog.outl(f"#define {service['class_name'].upper()}_HPP")
2121
/*[[[cog
2222
xbot_codegen.generateEnums(service)
2323
]]]*/
24+
enum class ExampleEnumClass : uint8_t {
25+
VALUE1 = 0,
26+
VALUE2 = 1,
27+
VALUE3 = 2,
28+
};
29+
30+
namespace ExampleBitmaskEnum {
31+
enum Value : uint8_t {
32+
VALUE1 = 1 << 0,
33+
VALUE2 = 1 << 1,
34+
VALUE3 = 1 << 2,
35+
};
36+
};
37+
2438
//[[[end]]]
2539
/*[[[cog
2640
cog.outl(f"class {service['class_name']} : public xbot::service::Service {{")
@@ -60,7 +74,7 @@ class ServiceTemplateBase : public xbot::service::Service {
6074
cog.outl(xbot_codegen.binary2c_array(service["service_cbor"]));
6175
]]]*/
6276
static constexpr unsigned char SERVICE_DESCRIPTION_CBOR[] = {
63-
0xA5, 0x64, 0x74, 0x79, 0x70, 0x65, 0x6F, 0x53,
77+
0xA6, 0x64, 0x74, 0x79, 0x70, 0x65, 0x6F, 0x53,
6478
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x65,
6579
0x6D, 0x70, 0x6C, 0x61, 0x74, 0x65, 0x67, 0x76,
6680
0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x01, 0x66,
@@ -99,7 +113,27 @@ class ServiceTemplateBase : public xbot::service::Service {
99113
0x64, 0x6E, 0x61, 0x6D, 0x65, 0x69, 0x52, 0x65,
100114
0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x33, 0x64,
101115
0x74, 0x79, 0x70, 0x65, 0x64, 0x62, 0x6C, 0x6F,
102-
0x62
116+
0x62, 0x65, 0x65, 0x6E, 0x75, 0x6D, 0x73, 0x82,
117+
0xA3, 0x62, 0x69, 0x64, 0x70, 0x45, 0x78, 0x61,
118+
0x6D, 0x70, 0x6C, 0x65, 0x45, 0x6E, 0x75, 0x6D,
119+
0x43, 0x6C, 0x61, 0x73, 0x73, 0x69, 0x62, 0x61,
120+
0x73, 0x65, 0x5F, 0x74, 0x79, 0x70, 0x65, 0x67,
121+
0x75, 0x69, 0x6E, 0x74, 0x38, 0x5F, 0x74, 0x66,
122+
0x76, 0x61, 0x6C, 0x75, 0x65, 0x73, 0xA3, 0x66,
123+
0x56, 0x41, 0x4C, 0x55, 0x45, 0x31, 0x00, 0x66,
124+
0x56, 0x41, 0x4C, 0x55, 0x45, 0x32, 0x01, 0x66,
125+
0x56, 0x41, 0x4C, 0x55, 0x45, 0x33, 0x02, 0xA4,
126+
0x62, 0x69, 0x64, 0x72, 0x45, 0x78, 0x61, 0x6D,
127+
0x70, 0x6C, 0x65, 0x42, 0x69, 0x74, 0x6D, 0x61,
128+
0x73, 0x6B, 0x45, 0x6E, 0x75, 0x6D, 0x69, 0x62,
129+
0x61, 0x73, 0x65, 0x5F, 0x74, 0x79, 0x70, 0x65,
130+
0x67, 0x75, 0x69, 0x6E, 0x74, 0x38, 0x5F, 0x74,
131+
0x67, 0x62, 0x69, 0x74, 0x6D, 0x61, 0x73, 0x6B,
132+
0xF5, 0x66, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x73,
133+
0xA3, 0x66, 0x56, 0x41, 0x4C, 0x55, 0x45, 0x31,
134+
0x00, 0x66, 0x56, 0x41, 0x4C, 0x55, 0x45, 0x32,
135+
0x01, 0x66, 0x56, 0x41, 0x4C, 0x55, 0x45, 0x33,
136+
0x02
103137
};
104138
//[[[end]]]
105139

@@ -239,6 +273,27 @@ cog.outl(f"\u002f*\n{service['service_json']}\n*\u002f")
239273
"name": "Register3",
240274
"type": "blob"
241275
}
276+
],
277+
"enums": [
278+
{
279+
"id": "ExampleEnumClass",
280+
"base_type": "uint8_t",
281+
"values": {
282+
"VALUE1": 0,
283+
"VALUE2": 1,
284+
"VALUE3": 2
285+
}
286+
},
287+
{
288+
"id": "ExampleBitmaskEnum",
289+
"base_type": "uint8_t",
290+
"bitmask": true,
291+
"values": {
292+
"VALUE1": 0,
293+
"VALUE2": 1,
294+
"VALUE3": 2
295+
}
296+
}
242297
]
243298
}
244299
*/

codegen/templates/service.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,26 @@
4141
"name": "Register3",
4242
"type": "blob"
4343
}
44+
],
45+
"enums": [
46+
{
47+
"id": "ExampleEnumClass",
48+
"base_type": "uint8_t",
49+
"values": {
50+
"VALUE1": 0,
51+
"VALUE2": 1,
52+
"VALUE3": 2
53+
}
54+
},
55+
{
56+
"id": "ExampleBitmaskEnum",
57+
"base_type": "uint8_t",
58+
"bitmask": true,
59+
"values": {
60+
"VALUE1": 0,
61+
"VALUE2": 1,
62+
"VALUE3": 2
63+
}
64+
}
4465
]
4566
}

0 commit comments

Comments
 (0)