Removed unneeded code.

This commit is contained in:
Martin Preuss
2023-09-20 17:51:02 +02:00
parent 2adefc4b79
commit bf89562d51
10 changed files with 19 additions and 562 deletions

View File

@@ -28,36 +28,20 @@
</setVar>
<setVar name="local/typefiles" >
room.t2d
device.t2d
mqtttopic.t2d
value.t2d
datapoint.t2d
</setVar>
<setVar name="local/built_sources" >
room.c
device.c
mqtttopic.c
value.c
datapoint.c
</setVar>
<setVar name="local/built_headers_pub">
room.h
device.h
mqtttopic.h
value.h
datapoint.h
</setVar>
<setVar name="local/built_headers_priv" >
room_p.h
device_p.h
mqtttopic_p.h
value_p.h
datapoint_p.h
</setVar>

View File

@@ -1,80 +0,0 @@
<?xml?>
<tm2>
<type id="AQH_MQTT_TOPIC" type="pointer">
<descr>
</descr>
<lang id="c">
<identifier>AQH_MQTT_TOPIC</identifier>
<prefix>AQH_MqttTopic</prefix>
<baseFileName>mqtttopic</baseFileName>
<flags>
with_xml
with_db
with_list1
with_list2
</flags>
<headers>
<header type="sys" loc="pre">aqhome/api.h</header>
</headers>
<inlines>
</inlines>
</lang>
<enums>
<enum id="AQH_MQTT_TOPIC_TYPE" prefix="AQH_MqttTopicType_">
<item name="num">
<descr>numeric type</descr>
</item>
<item name="json">
<descr>json data</descr>
</item>
</enum>
</enums>
<members>
<member name="id" type="uint64_t" maxlen="8">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>with_getbymember</flags>
</member>
<member name="deviceId" type="uint64_t" maxlen="8">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags></flags>
</member>
<member name="topic" type="char_ptr" maxlen="256">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>own with_getbymember</flags>
</member>
<member name="dataType" type="int" maxlen="8">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags></flags>
</member>
</members>
</type>
</tm2>

View File

@@ -31,13 +31,6 @@
*/
static void _handleJsonTopic(AQH_STORAGE *sto, const AQH_MQTT_TOPIC *topic, const char *sValue);
static void _handleNumTopic(AQH_STORAGE *sto, const AQH_MQTT_TOPIC *topic, const char *sValue);
static void _handleValueForJsonElement(AQH_STORAGE *sto,
const AQH_MQTT_TOPIC *topic,
GWEN_JSON_ELEM *json,
time_t timestamp,
const AQH_VALUE *value);
static AQH_DATAFILE *_getDataFileByValueId(AQH_STORAGE *sto, uint64_t valueId);
static AQH_DATAFILE *_findDataFileByValueId(const AQH_STORAGE *sto, uint64_t valueId);
static AQH_DATAFILE *_openOrCreateDataFileByValueId(AQH_STORAGE *sto, uint64_t valueId);
@@ -56,12 +49,8 @@ AQH_STORAGE *AQH_Storage_new(void)
AQH_STORAGE *sto;
GWEN_NEW_OBJECT(AQH_STORAGE, sto);
sto->roomList=AQH_Room_List_new();
sto->deviceList=AQH_Device_List_new();
sto->mqttTopicList=AQH_MqttTopic_List_new();
sto->valueList=AQH_Value_List_new();
sto->dataFileList=AQH_DataFile_List_new();
sto->recvdTopicList=GWEN_StringList_new();
return sto;
}
@@ -73,10 +62,6 @@ void AQH_Storage_free(AQH_STORAGE *sto)
if (sto) {
AQH_DataFile_List_free(sto->dataFileList);
AQH_Value_List_free(sto->valueList);
AQH_MqttTopic_List_free(sto->mqttTopicList);
AQH_Device_List_free(sto->deviceList);
AQH_Room_List_free(sto->roomList);
GWEN_StringList_free(sto->recvdTopicList);
free(sto->dataFileFolder);
free(sto->stateFile);
@@ -103,117 +88,6 @@ void AQH_Storage_SetStateFile(AQH_STORAGE *sto, const char *s)
GWEN_STRINGLIST *AQH_Storage_GetRecvdTopicList(const AQH_STORAGE *sto)
{
return sto?sto->recvdTopicList:NULL;
}
void AQH_Storage_AddRoom(AQH_STORAGE *sto, AQH_ROOM *r)
{
if (sto && r) {
uint64_t id;
id=++(sto->lastRoomId);
AQH_Room_SetId(r, id);
AQH_Room_List_Add(r, sto->roomList);
}
}
AQH_ROOM_LIST *AQH_Storage_GetRoomList(const AQH_STORAGE *sto)
{
return sto?sto->roomList:NULL;
}
AQH_ROOM *AQH_Storage_GetRoomById(const AQH_STORAGE *sto, uint64_t id)
{
return sto?AQH_Room_List_GetById(sto->roomList, id):NULL;
}
AQH_ROOM *AQH_Storage_GetRoomByName(const AQH_STORAGE *sto, const char *s)
{
return sto?AQH_Room_List_GetByName(sto->roomList, s):NULL;
}
void AQH_Storage_AddDevice(AQH_STORAGE *sto, AQH_DEVICE *dev)
{
if (sto && dev) {
uint64_t id;
id=++(sto->lastDeviceId);
AQH_Device_SetId(dev, id);
AQH_Device_List_Add(dev, sto->deviceList);
}
}
AQH_DEVICE_LIST *AQH_Storage_GetDeviceList(const AQH_STORAGE *sto)
{
return sto?sto->deviceList:NULL;
}
AQH_DEVICE *AQH_Storage_GetDeviceById(const AQH_STORAGE *sto, uint64_t id)
{
return sto?AQH_Device_List_GetById(sto->deviceList, id):NULL;
}
AQH_DEVICE *AQH_Storage_GetDeviceByName(const AQH_STORAGE *sto, const char *s)
{
return sto?AQH_Device_List_GetByName(sto->deviceList, s):NULL;
}
void AQH_Storage_AddMqttTopic(AQH_STORAGE *sto, AQH_MQTT_TOPIC *t)
{
if (sto && t) {
uint64_t id;
id=++(sto->lastTopicId);
AQH_MqttTopic_SetId(t, id);
AQH_MqttTopic_List_Add(t, sto->mqttTopicList);
}
}
AQH_MQTT_TOPIC_LIST *AQH_Storage_GetMqttTopicList(const AQH_STORAGE *sto)
{
return sto?sto->mqttTopicList:NULL;
}
AQH_MQTT_TOPIC *AQH_Storage_GetMqttTopicById(const AQH_STORAGE *sto, uint64_t id)
{
return sto?AQH_MqttTopic_List_GetById(sto->mqttTopicList, id):NULL;
}
AQH_MQTT_TOPIC *AQH_Storage_GetMqttTopicByTopic(const AQH_STORAGE *sto, const char *topic)
{
return sto?AQH_MqttTopic_List_GetByTopic(sto->mqttTopicList, topic):NULL;
}
void AQH_Storage_AddValue(AQH_STORAGE *sto, AQH_VALUE *value)
{
if (sto && value) {
@@ -499,143 +373,6 @@ int AQH_Storage_GetLastDataPoint(AQH_STORAGE *sto, uint64_t valueId, uint64_t *p
void AQH_Storage_HandleMqttPublish(AQH_STORAGE *sto, const char *sTopic, const char *sValue)
{
if (sto) {
const AQH_MQTT_TOPIC *topic;
topic=AQH_Storage_GetMqttTopicByTopic(sto, sTopic);
if (topic) {
DBG_INFO(AQH_LOGDOMAIN, "Handling MQTT topic \"%s\"", sTopic);
if (AQH_MqttTopic_GetDataType(topic)==AQH_MqttTopicType_Json)
_handleJsonTopic(sto, topic, sValue);
else
_handleNumTopic(sto, topic, sValue);
}
else {
DBG_INFO(AQH_LOGDOMAIN, "Unknown MQTT topic \"%s\"", sTopic);
GWEN_StringList_AppendString(sto->recvdTopicList, sTopic, 0, 1);
}
}
}
void _handleJsonTopic(AQH_STORAGE *sto, const AQH_MQTT_TOPIC *topic, const char *sValue)
{
time_t now;
GWEN_JSON_ELEM *json;
now=time(NULL);
json=GWEN_JsonElement_fromString(sValue);
if (json) {
AQH_VALUE *value;
uint64_t topicId;
topicId=AQH_MqttTopic_GetId(topic);
value=AQH_Value_List_First(sto->valueList);
while(value) {
if (AQH_Value_GetTopicId(value)==topicId) {
_handleValueForJsonElement(sto, topic, json, now, value);
}
value=AQH_Value_List_Next(value);
}
}
else {
DBG_ERROR(AQH_LOGDOMAIN, "Error parsing JSON data [%s]", sValue);
}
}
void _handleValueForJsonElement(AQH_STORAGE *sto,
const AQH_MQTT_TOPIC *topic,
GWEN_JSON_ELEM *json,
time_t timestamp,
const AQH_VALUE *value)
{
const char *dataPath;
dataPath=AQH_Value_GetDataPath(value);
if (dataPath) {
GWEN_JSON_ELEM *jsonElem;
jsonElem=GWEN_JsonElement_GetElementByPath(json, dataPath, GWEN_PATH_FLAGS_PATHMUSTEXIST);
if (jsonElem) {
const char *s;
s=GWEN_JsonElement_GetData(jsonElem);
if (s && *s) {
int rv;
double v;
rv=GWEN_Text_StringToDouble(s, &v);
if (rv<0) {
DBG_ERROR(AQH_LOGDOMAIN, "Invalid value \"%s\" for topic %s:%s", s, AQH_MqttTopic_GetTopic(topic), dataPath);
}
else {
AQH_DATAFILE *df;
df=_getDataFileByValueId(sto, AQH_Value_GetId(value));
if (df) {
DBG_INFO(AQH_LOGDOMAIN, "Appending record to datafile");
AQH_DataFile_AppendRecord(df, timestamp, v);
}
}
}
else {
DBG_INFO(AQH_LOGDOMAIN, "Empty JSON element \"%s\"", dataPath);
}
}
else {
DBG_ERROR(AQH_LOGDOMAIN, "No value for topic %s:%s", AQH_MqttTopic_GetTopic(topic), dataPath);
}
}
else {
DBG_INFO(AQH_LOGDOMAIN, "No datapath in value \"%s\"", AQH_Value_GetNameForSystem(value));
}
}
void _handleNumTopic(AQH_STORAGE *sto, const AQH_MQTT_TOPIC *topic, const char *sValue)
{
int rv;
double v;
time_t now;
now=time(NULL);
rv=GWEN_Text_StringToDouble(sValue, &v);
if (rv<0) {
DBG_ERROR(AQH_LOGDOMAIN, "Invalid value \"%s\" for topic %s, ignoring", sValue, AQH_MqttTopic_GetTopic(topic));
}
else {
AQH_VALUE *value;
uint64_t topicId;
topicId=AQH_MqttTopic_GetId(topic);
value=AQH_Value_List_First(sto->valueList);
while(value) {
if (AQH_Value_GetTopicId(value)==topicId)
break;
value=AQH_Value_List_Next(value);
}
if (value) {
AQH_DATAFILE *df;
df=_getDataFileByValueId(sto, AQH_Value_GetId(value));
if (df) {
DBG_INFO(AQH_LOGDOMAIN, "Appending record to datafile");
AQH_DataFile_AppendRecord(df, now, v);
}
}
}
}
AQH_DATAFILE *_getDataFileByValueId(AQH_STORAGE *sto, uint64_t valueId)
{
AQH_DATAFILE *df;

View File

@@ -49,21 +49,6 @@ extern "C" {
AQHOME_API AQH_STORAGE *AQH_Storage_new(void);
AQHOME_API void AQH_Storage_free(AQH_STORAGE *sto);
AQHOME_API void AQH_Storage_AddRoom(AQH_STORAGE *sto, AQH_ROOM *r);
AQHOME_API AQH_ROOM_LIST *AQH_Storage_GetRoomList(const AQH_STORAGE *sto);
AQHOME_API AQH_ROOM *AQH_Storage_GetRoomById(const AQH_STORAGE *sto, uint64_t id);
AQHOME_API AQH_ROOM *AQH_Storage_GetRoomByName(const AQH_STORAGE *sto, const char *s);
AQHOME_API void AQH_Storage_AddDevice(AQH_STORAGE *sto, AQH_DEVICE *dev);
AQHOME_API AQH_DEVICE_LIST *AQH_Storage_GetDeviceList(const AQH_STORAGE *sto);
AQHOME_API AQH_DEVICE *AQH_Storage_GetDeviceById(const AQH_STORAGE *sto, uint64_t id);
AQHOME_API AQH_DEVICE *AQH_Storage_GetDeviceByName(const AQH_STORAGE *sto, const char *s);
AQHOME_API void AQH_Storage_AddMqttTopic(AQH_STORAGE *sto, AQH_MQTT_TOPIC *t);
AQHOME_API AQH_MQTT_TOPIC_LIST *AQH_Storage_GetMqttTopicList(const AQH_STORAGE *sto);
AQHOME_API AQH_MQTT_TOPIC *AQH_Storage_GetMqttTopicById(const AQH_STORAGE *sto, uint64_t id);
AQHOME_API AQH_MQTT_TOPIC *AQH_Storage_GetMqttTopicByTopic(const AQH_STORAGE *sto, const char *topic);
AQHOME_API void AQH_Storage_AddValue(AQH_STORAGE *sto, AQH_VALUE *value);
AQHOME_API AQH_VALUE_LIST *AQH_Storage_GetValueList(const AQH_STORAGE *sto);
AQHOME_API AQH_VALUE *AQH_Storage_GetValueById(const AQH_STORAGE *sto, uint64_t id);
@@ -93,11 +78,6 @@ AQHOME_API uint64_t *AQH_Storage_GetDataPoints(AQH_STORAGE *sto, uint64_t valueI
AQHOME_API int AQH_Storage_GetLastDataPoint(AQH_STORAGE *sto, uint64_t valueId, uint64_t *pTimestamp, double *pValue);
AQHOME_API void AQH_Storage_HandleMqttPublish(AQH_STORAGE *sto, const char *topic, const char *value);
AQHOME_API GWEN_STRINGLIST *AQH_Storage_GetRecvdTopicList(const AQH_STORAGE *sto);
#ifdef __cplusplus

View File

@@ -16,29 +16,14 @@
#define AQH_STORAGE_XML_ELEMENTNAME_LASTIDS "lastIds"
#define AQH_STORAGE_XML_ELEMENTNAME_ROOMS "rooms"
#define AQH_STORAGE_XML_ELEMENTNAME_ROOM "room"
#define AQH_STORAGE_XML_ELEMENTNAME_DEVICES "devices"
#define AQH_STORAGE_XML_ELEMENTNAME_DEVICE "device"
#define AQH_STORAGE_XML_ELEMENTNAME_TOPICS "topics"
#define AQH_STORAGE_XML_ELEMENTNAME_TOPIC "topic"
#define AQH_STORAGE_XML_ELEMENTNAME_VALUES "values"
#define AQH_STORAGE_XML_ELEMENTNAME_VALUE "value"
struct AQH_STORAGE {
AQH_ROOM_LIST *roomList;
AQH_DEVICE_LIST *deviceList;
AQH_MQTT_TOPIC_LIST *mqttTopicList;
AQH_VALUE_LIST *valueList;
uint64_t lastRoomId;
uint64_t lastDeviceId;
uint64_t lastTopicId;
uint64_t lastValueId;
char *stateFile;
@@ -46,8 +31,6 @@ struct AQH_STORAGE {
AQH_DATAFILE_LIST *dataFileList;
GWEN_STRINGLIST *recvdTopicList;
uint32_t runtimeFlags;
};

View File

@@ -26,9 +26,6 @@
static void _readLastIdsFromXml(AQH_STORAGE *sto, GWEN_XMLNODE *rootNode);
static void _readRoomsFromXml(AQH_STORAGE *sto, GWEN_XMLNODE *rootNode);
static void _readDevicesFromXml(AQH_STORAGE *sto, GWEN_XMLNODE *rootNode);
static void _readTopicsFromXml(AQH_STORAGE *sto, GWEN_XMLNODE *rootNode);
static void _readValuesFromXml(AQH_STORAGE *sto, GWEN_XMLNODE *rootNode);
@@ -52,9 +49,6 @@ int AQH_Storage_ReadStateFile(AQH_STORAGE *sto, const char *sFilename)
}
_readLastIdsFromXml(sto, rootNode);
_readRoomsFromXml(sto, rootNode);
_readDevicesFromXml(sto, rootNode);
_readTopicsFromXml(sto, rootNode);
_readValuesFromXml(sto, rootNode);
GWEN_XMLNode_free(rootNode);
@@ -70,90 +64,15 @@ void _readLastIdsFromXml(AQH_STORAGE *sto, GWEN_XMLNODE *rootNode)
nLastIds=GWEN_XMLNode_FindFirstTag(rootNode, AQH_STORAGE_XML_ELEMENTNAME_LASTIDS, NULL, NULL);
if (nLastIds) {
sto->lastRoomId=GWEN_XMLNode_GetIntValue(nLastIds, "lastRoomId", 0);
sto->lastDeviceId=GWEN_XMLNode_GetIntValue(nLastIds, "lastDeviceId", 0);
sto->lastTopicId=GWEN_XMLNode_GetIntValue(nLastIds, "lastTopicId", 0);
sto->lastValueId=GWEN_XMLNode_GetIntValue(nLastIds, "lastValueId", 0);
}
else {
sto->lastRoomId=0;
sto->lastDeviceId=0;
sto->lastTopicId=0;
sto->lastValueId=0;
}
}
void _readRoomsFromXml(AQH_STORAGE *sto, GWEN_XMLNODE *rootNode)
{
GWEN_XMLNODE *nRooms;
nRooms=GWEN_XMLNode_FindFirstTag(rootNode, AQH_STORAGE_XML_ELEMENTNAME_ROOMS, NULL, NULL);
if (nRooms) {
GWEN_XMLNODE *nRoom;
nRoom=GWEN_XMLNode_FindFirstTag(nRooms, AQH_STORAGE_XML_ELEMENTNAME_ROOM, NULL, NULL);
while(nRoom) {
AQH_ROOM *r;
r=AQH_Room_fromXml(nRoom);
if (r) {
AQH_Room_List_Add(r, sto->roomList);
}
nRoom=GWEN_XMLNode_FindNextTag(nRoom, AQH_STORAGE_XML_ELEMENTNAME_ROOM, NULL, NULL);
}
}
}
void _readDevicesFromXml(AQH_STORAGE *sto, GWEN_XMLNODE *rootNode)
{
GWEN_XMLNODE *nDevices;
nDevices=GWEN_XMLNode_FindFirstTag(rootNode, AQH_STORAGE_XML_ELEMENTNAME_DEVICES, NULL, NULL);
if (nDevices) {
GWEN_XMLNODE *nDevice;
nDevice=GWEN_XMLNode_FindFirstTag(nDevices, AQH_STORAGE_XML_ELEMENTNAME_DEVICE, NULL, NULL);
while(nDevice) {
AQH_DEVICE *device;
device=AQH_Device_fromXml(nDevice);
if (device) {
AQH_Device_List_Add(device, sto->deviceList);
}
nDevice=GWEN_XMLNode_FindNextTag(nDevice, AQH_STORAGE_XML_ELEMENTNAME_DEVICE, NULL, NULL);
}
}
}
void _readTopicsFromXml(AQH_STORAGE *sto, GWEN_XMLNODE *rootNode)
{
GWEN_XMLNODE *nTopics;
nTopics=GWEN_XMLNode_FindFirstTag(rootNode, AQH_STORAGE_XML_ELEMENTNAME_TOPICS, NULL, NULL);
if (nTopics) {
GWEN_XMLNODE *nTopic;
nTopic=GWEN_XMLNode_FindFirstTag(nTopics, AQH_STORAGE_XML_ELEMENTNAME_TOPIC, NULL, NULL);
while(nTopic) {
AQH_MQTT_TOPIC *topic;
topic=AQH_MqttTopic_fromXml(nTopic);
if (topic) {
AQH_MqttTopic_List_Add(topic, sto->mqttTopicList);
}
nTopic=GWEN_XMLNode_FindNextTag(nTopic, AQH_STORAGE_XML_ELEMENTNAME_TOPIC, NULL, NULL);
}
}
}
void _readValuesFromXml(AQH_STORAGE *sto, GWEN_XMLNODE *rootNode)
{
GWEN_XMLNODE *nValues;

View File

@@ -31,9 +31,6 @@
static void _writeLastIdsToXml(const AQH_STORAGE *sto, GWEN_XMLNODE *rootNode);
static void _writeRoomsToXml(const AQH_STORAGE *sto, GWEN_XMLNODE *rootNode);
static void _writeDevicesToXml(const AQH_STORAGE *sto, GWEN_XMLNODE *rootNode);
static void _writeTopicsToXml(const AQH_STORAGE *sto, GWEN_XMLNODE *rootNode);
static void _writeValuesToXml(const AQH_STORAGE *sto, GWEN_XMLNODE *rootNode);
@@ -51,9 +48,6 @@ int AQH_Storage_WriteStateFile(const AQH_STORAGE *sto, const char *sFilename)
rootNode=GWEN_XMLNode_new(GWEN_XMLNodeTypeTag, "root");
_writeLastIdsToXml(sto, rootNode);
_writeRoomsToXml(sto, rootNode);
_writeDevicesToXml(sto, rootNode);
_writeTopicsToXml(sto, rootNode);
_writeValuesToXml(sto, rootNode);
nbuf=GWEN_Buffer_new(0, 256, 0, 1);
@@ -88,9 +82,6 @@ void _writeLastIdsToXml(const AQH_STORAGE *sto, GWEN_XMLNODE *rootNode)
GWEN_XMLNODE *nLastIds;
nLastIds=GWEN_XMLNode_new(GWEN_XMLNodeTypeTag, AQH_STORAGE_XML_ELEMENTNAME_LASTIDS);
GWEN_XMLNode_SetIntValue(nLastIds, "lastRoomId", sto->lastRoomId);
GWEN_XMLNode_SetIntValue(nLastIds, "lastDeviceId", sto->lastDeviceId);
GWEN_XMLNode_SetIntValue(nLastIds, "lastTopicId", sto->lastTopicId);
GWEN_XMLNode_SetIntValue(nLastIds, "lastValueId", sto->lastValueId);
GWEN_XMLNode_AddChild(rootNode, nLastIds);
@@ -98,69 +89,6 @@ void _writeLastIdsToXml(const AQH_STORAGE *sto, GWEN_XMLNODE *rootNode)
void _writeRoomsToXml(const AQH_STORAGE *sto, GWEN_XMLNODE *rootNode)
{
GWEN_XMLNODE *nElems;
AQH_ROOM *elem;
nElems=GWEN_XMLNode_new(GWEN_XMLNodeTypeTag, AQH_STORAGE_XML_ELEMENTNAME_ROOMS);
elem=AQH_Room_List_First(sto->roomList);
while(elem) {
GWEN_XMLNODE *nElem;
nElem=GWEN_XMLNode_new(GWEN_XMLNodeTypeTag, AQH_STORAGE_XML_ELEMENTNAME_ROOM);
AQH_Room_toXml(elem, nElem);
GWEN_XMLNode_AddChild(nElems, nElem);
elem=AQH_Room_List_Next(elem);
}
GWEN_XMLNode_AddChild(rootNode, nElems);
}
void _writeDevicesToXml(const AQH_STORAGE *sto, GWEN_XMLNODE *rootNode)
{
GWEN_XMLNODE *nElems;
AQH_DEVICE *elem;
nElems=GWEN_XMLNode_new(GWEN_XMLNodeTypeTag, AQH_STORAGE_XML_ELEMENTNAME_DEVICES);
elem=AQH_Device_List_First(sto->deviceList);
while(elem) {
GWEN_XMLNODE *nElem;
nElem=GWEN_XMLNode_new(GWEN_XMLNodeTypeTag, AQH_STORAGE_XML_ELEMENTNAME_DEVICE);
AQH_Device_toXml(elem, nElem);
GWEN_XMLNode_AddChild(nElems, nElem);
elem=AQH_Device_List_Next(elem);
}
GWEN_XMLNode_AddChild(rootNode, nElems);
}
void _writeTopicsToXml(const AQH_STORAGE *sto, GWEN_XMLNODE *rootNode)
{
GWEN_XMLNODE *nElems;
AQH_MQTT_TOPIC *elem;
nElems=GWEN_XMLNode_new(GWEN_XMLNodeTypeTag, AQH_STORAGE_XML_ELEMENTNAME_TOPICS);
elem=AQH_MqttTopic_List_First(sto->mqttTopicList);
while(elem) {
GWEN_XMLNODE *nElem;
nElem=GWEN_XMLNode_new(GWEN_XMLNodeTypeTag, AQH_STORAGE_XML_ELEMENTNAME_TOPIC);
AQH_MqttTopic_toXml(elem, nElem);
GWEN_XMLNode_AddChild(nElems, nElem);
elem=AQH_MqttTopic_List_Next(elem);
}
GWEN_XMLNode_AddChild(rootNode, nElems);
}
void _writeValuesToXml(const AQH_STORAGE *sto, GWEN_XMLNODE *rootNode)
{
GWEN_XMLNODE *nElems;

View File

@@ -73,13 +73,6 @@
<flags>own with_getbymember</flags>
</member>
<member name="topicId" type="uint64_t" maxlen="8">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags></flags>
</member>
<member name="valueType" type="int" maxlen="8">
<default>0</default>
<preset>0</preset>
@@ -94,6 +87,14 @@
<flags>own</flags>
</member>
<member name="topicId" type="uint64_t" maxlen="8">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags></flags>
</member>
<member name="dataPath" type="char_ptr" maxlen="256">
<default>0</default>
<preset>0</preset>
@@ -102,6 +103,13 @@
</member>
<member name="timestampCreation" type="uint64_t" maxlen="8" >
<access>public</access>
<flags>none</flags>
<default>0</default>
<preset>0</preset>
</member>
</members>