#include "output-json-dnp3-objects.h"
#include "output-json.h"
-void OutputJsonDNP3SetItem(json_t *js, DNP3Object *object,
+void OutputJsonDNP3SetItem(JsonBuilder *js, DNP3Object *object,
DNP3Point *point)
{
DNP3ObjectG{{object.group}}V{{object.variation}} *data = point->data;
{% for field in object.fields %}
{% if is_integer_type(field.type) %}
- json_object_set_new(js, "{{field.name}}",
- json_integer(data->{{field.name}}));
+ jb_set_uint(js, "{{field.name}}", data->{{field.name}});
{% elif field.type in ["flt32", "flt64"] %}
- json_object_set_new(js, "{{field.name}}",
- json_real(data->{{field.name}}));
+ jb_set_float(js, "{{field.name}}", data->{{field.name}});
{% elif field.type == "bytearray" %}
unsigned long {{field.name}}_b64_len = data->{{field.len_field}} * 2;
uint8_t {{field.name}}_b64[{{field.name}}_b64_len];
Base64Encode(data->{{field.name}}, data->{{field.len_field}},
{{field.name}}_b64, &{{field.name}}_b64_len);
- json_object_set_new(js, "data->{{field.name}}",
- json_string((char *){{field.name}}_b64));
+ jb_set_string(js, "data->{{field.name}}", (char *){{field.name}}_b64);
{% elif field.type == "vstr4" %}
- json_object_set_new(js, "data->{{field.name}}", SCJsonString(data->{{field.name}}));
+ jb_set_string(js, "data->{{field.name}}", data->{{field.name}});
{% elif field.type == "chararray" %}
if (data->{{field.len_field}} > 0) {
/* First create a null terminated string as not all versions
char tmpbuf[data->{{field.len_field}} + 1];
memcpy(tmpbuf, data->{{field.name}}, data->{{field.len_field}});
tmpbuf[data->{{field.len_field}}] = '\\0';
- json_object_set_new(js, "{{field.name}}", SCJsonString(tmpbuf));
+ jb_set_string(js, "{{field.name}}", tmpbuf);
} else {
- json_object_set_new(js, "{{field.name}}", json_string(""));
+ jb_set_string(js, "{{field.name}}", "");
}
{% elif field.type == "bstr8" %}
{% for field in field.fields %}
- json_object_set_new(js, "{{field.name}}",
- json_integer(data->{{field.name}}));
+ jb_set_uint(js, "{{field.name}}", data->{{field.name}});
{% endfor %}
{% else %}
{{ raise("Unhandled datatype: %s" % (field.type)) }}