Heavy work on IPC.

We will now have a broker (aqhome-data) which stores data and distributes
value change messages among connected clients.
aqhomed will connect to that broker and send its values there.
aqhome-mqtt will also connect to the broker and send its values there.
Other clients can later connect to check for changes and react according
to rules.
This commit is contained in:
Martin Preuss
2023-09-10 23:13:03 +02:00
parent 2b733a52ca
commit 518a3a53f9
43 changed files with 1412 additions and 707 deletions

View File

@@ -0,0 +1,50 @@
/****************************************************************************
* This file is part of the project AqHome.
* AqHome (c) by 2023 Martin Preuss, all rights reserved.
*
* The license for this file can be found in the file COPYING which you
* should have received along with this file.
****************************************************************************/
#ifndef AQH_MSG_IPC_DATA_CONNECT_H
#define AQH_MSG_IPC_DATA_CONNECT_H
#include <aqhome/api.h>
#include <aqhome/data/value.h>
#include <gwenhywfar/msg_ipc.h>
/**
* This message is used in request AQH_MSGTYPE_IPC_DATA_ADDVALUES_REQ and in response AQH_MSGTYPE_IPC_DATA_GETVALUES_RSP.
*/
#define AQH_MSGDATA_CONNECT_TAGS_CLIENTID 0x0001
#define AQH_MSGDATA_CONNECT_TAGS_USERID 0x0002
#define AQH_MSGDATA_CONNECT_TAGS_PASSWORD 0x0003
#define AQH_MSGDATA_CONNECT_TAGS_FLAGS 0x0004
#define AQH_MSGDATA_CONNECT_FLAGS_WANTUPDATES 0x0001
AQHOME_API GWEN_MSG *AQH_ConnectDataIpcMsg_new(uint16_t code,
const char *clientId,
const char *userId, const char *password,
uint32_t flags);
AQHOME_API int AQH_ConnectDataIpcMsg_IsValid(const GWEN_MSG *msg);
AQHOME_API void AQH_ConnectDataIpcMsg_DumpToBuffer(const GWEN_MSG *msg, GWEN_BUFFER *dbuf, const char *sText);
#endif