Skip to content

Commit 03c0615

Browse files
joaomariolagopatrickelectric
authored andcommitted
templates: ping-message-.h: Fix var length
* Fix case in external ref to buffer constructor does not take in account variable payload sizes like profile length
1 parent 0aa6856 commit 03c0615

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

src/generate/templates/ping-message-.h.in

+17-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,23 @@ class {{class_name}} : public ping_message
3030
{
3131
public:
3232
{{class_name}}(const ping_message& msg) : ping_message { msg } {}
33-
{{class_name}}(uint8_t* buf) : ping_message { buf, {{8 + total_payload + 2}} }
33+
{{class_name}}(uint8_t* buf
34+
{%- for payload in m.payload %}
35+
{% if generator.is_vector(payload.type) %},
36+
{% if payload.vector.sizetype -%}
37+
{{generator.get_type_string(payload.vector.sizetype)}} {{payload.name}}_length
38+
{% else -%}
39+
uint16_t {{payload.name}}_length
40+
{%- endif %}
41+
{% endif %}
42+
{% endfor %}{# each payload field #}
43+
) : ping_message { buf, static_cast<uint16_t>({{8 + total_payload + 2}}
44+
{%- for payload in m.payload %}
45+
{% if generator.is_vector(payload.type) %}
46+
+ {{payload.name}}_length
47+
{%- endif %}
48+
{% endfor %}) }{# each payload field #}
49+
3450
{
3551
msgData[0] = 'B';
3652
msgData[1] = 'R';

0 commit comments

Comments
 (0)