aqhome-storage now checks and parses mqtt messages and stores values in datafiles.
This commit is contained in:
@@ -105,6 +105,9 @@ int AQH_DataFile_Create(AQH_DATAFILE *df)
|
||||
}
|
||||
|
||||
sio=GWEN_SyncIo_File_new(df->fileName, GWEN_SyncIo_File_CreationMode_CreateNew);
|
||||
GWEN_SyncIo_SetFlags(sio,
|
||||
GWEN_SYNCIO_FILE_FLAGS_WRITE | GWEN_SYNCIO_FILE_FLAGS_READ |
|
||||
GWEN_SYNCIO_FILE_FLAGS_UREAD | GWEN_SYNCIO_FILE_FLAGS_UWRITE);
|
||||
rv=GWEN_SyncIo_Connect(sio);
|
||||
if (rv<0) {
|
||||
DBG_INFO(AQH_LOGDOMAIN, "Error creating file \"%s\" (%d)", df->fileName, rv);
|
||||
@@ -143,7 +146,8 @@ int AQH_DataFile_Open(AQH_DATAFILE *df)
|
||||
return GWEN_ERROR_INVALID;
|
||||
}
|
||||
|
||||
sio=GWEN_SyncIo_File_new(df->fileName, GWEN_SyncIo_File_CreationMode_CreateNew);
|
||||
sio=GWEN_SyncIo_File_new(df->fileName, GWEN_SyncIo_File_CreationMode_OpenExisting);
|
||||
GWEN_SyncIo_SetFlags(sio, GWEN_SYNCIO_FILE_FLAGS_WRITE | GWEN_SYNCIO_FILE_FLAGS_READ);
|
||||
rv=GWEN_SyncIo_Connect(sio);
|
||||
if (rv<0) {
|
||||
DBG_INFO(AQH_LOGDOMAIN, "Error creating file \"%s\" (%d)", df->fileName, rv);
|
||||
@@ -279,7 +283,7 @@ AQH_DATAFILE *AQH_DataFile_List_GetByValueId(AQH_DATAFILE_LIST *fileList, uint64
|
||||
df=AQH_DataFile_List_First(fileList);
|
||||
while(df) {
|
||||
if (df->valueId==id)
|
||||
break;
|
||||
return df;
|
||||
df=AQH_DataFile_List_Next(df);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -367,6 +367,7 @@ void AQH_Storage_HandleMqttPublish(AQH_STORAGE *sto, const char *sTopic, const c
|
||||
|
||||
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
|
||||
@@ -502,7 +503,13 @@ AQH_DATAFILE *_getDataFileByValueId(AQH_STORAGE *sto, uint64_t valueId)
|
||||
|
||||
df=_findDataFileByValueId(sto, valueId);
|
||||
if (df==NULL) {
|
||||
DBG_INFO(AQH_LOGDOMAIN, "Datafile for valueId \"%lu\" not in list, loading", (unsigned long int) valueId);
|
||||
df=_openOrCreateDataFileByValueId(sto, valueId);
|
||||
if (df==NULL) {
|
||||
DBG_ERROR(AQH_LOGDOMAIN, "Error opening/creating datafile for valueId \"%lu\"", (unsigned long int) valueId);
|
||||
return NULL;
|
||||
}
|
||||
DBG_INFO(AQH_LOGDOMAIN, "Adding datafile for valueId \"%lu\" to list", (unsigned long int) valueId);
|
||||
AQH_DataFile_List_Add(df, sto->dataFileList);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user