aqhome-mqttlog: Implemented SETDATA.

This commit is contained in:
Martin Preuss
2024-02-17 01:09:46 +01:00
parent 0cf3976fc7
commit 1ba263fb13
11 changed files with 235 additions and 21 deletions

View File

@@ -16,7 +16,7 @@
#include "aqhome/aqhome.h"
#include "aqhome/msg/msg_node.h"
#include "aqhome/ipc/msg_ipc_result.h"
#include "aqhome/ipc/data/msg_data_multidata.h"
#include "aqhome/ipc/data/msg_data_set.h"
#include "aqhome/ipc/data/ipc_data.h"
#include <gwenhywfar/args.h>
@@ -33,7 +33,7 @@
static int _doSetData(GWEN_DB_NODE *dbArgs);
static void _sendCommand(GWEN_MSG_ENDPOINT *epTcp, const char *valueName, const char *valueUnits, double dataToSend);
static void _sendCommand(GWEN_MSG_ENDPOINT *epTcp, const char *valueName, const char *valueUnits, const char *valueData);
@@ -191,9 +191,7 @@ int _doSetData(GWEN_DB_NODE *dbArgs)
const char *valueName;
const char *valueUnits;
const char *valueData;
double dataToSend;
GWEN_MSG *msg;
int rv;
timeoutInSeconds=GWEN_DB_GetIntValue(dbArgs, "timeout", 0, 5);
valueName=GWEN_DB_GetCharValue(dbArgs, "valueName", 0, NULL);
@@ -209,12 +207,6 @@ int _doSetData(GWEN_DB_NODE *dbArgs)
return 1;
}
rv=GWEN_Text_StringToDouble(valueData, &dataToSend);
if (rv<0) {
DBG_ERROR(NULL, "ERROR: Invalid data");
return 1;
}
/*fprintf(stdout, "Sending SetData request\n");*/
@@ -224,7 +216,7 @@ int _doSetData(GWEN_DB_NODE *dbArgs)
return 2;
}
_sendCommand(epTcp, valueName, valueUnits, dataToSend);
_sendCommand(epTcp, valueName, valueUnits, valueData);
for (;;) {
uint16_t code;
@@ -262,7 +254,7 @@ int _doSetData(GWEN_DB_NODE *dbArgs)
void _sendCommand(GWEN_MSG_ENDPOINT *epTcp, const char *valueName, const char *valueUnits, double dataToSend)
void _sendCommand(GWEN_MSG_ENDPOINT *epTcp, const char *valueName, const char *valueUnits, const char *valueData)
{
GWEN_MSG *msgOut;
AQH_VALUE *v;
@@ -271,7 +263,7 @@ void _sendCommand(GWEN_MSG_ENDPOINT *epTcp, const char *valueName, const char *v
AQH_Value_SetNameForSystem(v, valueName);
AQH_Value_SetValueUnits(v, valueUnits);
msgOut=AQH_MultiDataDataIpcMsg_newForOne(AQH_MSGTYPE_IPC_DATA_SETDATA, v, 0, dataToSend);
msgOut=AQH_SetDataIpcMsg_new(AQH_MSGTYPE_IPC_DATA_SETDATA, v, valueData);
AQH_Value_free(v);
GWEN_MsgEndpoint_AddSendMessage(epTcp, msgOut);
}