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

@@ -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;