aqhome apps: more work on transition to events2.

This commit is contained in:
Martin Preuss
2025-03-09 00:06:12 +01:00
parent ca2103f7b3
commit ea564ba101
32 changed files with 475 additions and 268 deletions

View File

@@ -567,6 +567,7 @@ int _startBroker(AQH_OBJECT *o, AQH_NODE_SERVER *xo)
AQH_Endpoint_SetServiceName(ep, xo->brokerClientId);
AQH_Object_AddLink(ep, AQH_ENDPOINT_SIGNAL_CLOSED, AQH_NODE_SERVER_SLOT_BROKERCLOSED, o);
AQH_Object_Enable(ep);
xo->brokerEndpoint=ep;
rv=_exchangeConnect(o, xo, 0);
if (rv!=0) {
@@ -574,7 +575,6 @@ int _startBroker(AQH_OBJECT *o, AQH_NODE_SERVER *xo)
return (rv<0)?rv:GWEN_ERROR_PERMISSIONS;
}
DBG_ERROR(NULL, "Connected to broker at %s:%d", xo->brokerAddress, xo->brokerPort);
xo->brokerEndpoint=ep;
return 0;
}
else {
@@ -907,7 +907,6 @@ void _publishInt(AQH_NODE_SERVER *xo, uint32_t uid, const char *vPath, int vModa
void _publishDouble(AQH_NODE_SERVER *xo, uint32_t uid, const char *vPath, int vModality, const char *vUnits, double v)
{
AQH_MESSAGE *pubMsg;
union {double f; uint64_t i;} u;
uint64_t arrayToSend[2];
AQH_VALUE *value;
@@ -923,17 +922,29 @@ void _publishDouble(AQH_NODE_SERVER *xo, uint32_t uid, const char *vPath, int vM
AQH_Value_SetValueType(value, AQH_ValueType_Sensor);
AQH_Value_SetModality(value, vModality);
pubMsg=AQH_IpcdMessageMultiData_new(AQH_MSGTYPE_IPC_DATA_UPDATEDATA,
AQH_Endpoint_GetNextMessageId(xo->brokerEndpoint), 0,
value, arrayToSend, 1);
if (pubMsg) {
if (xo->brokerEndpoint) {
AQH_MESSAGE *pubMsg;
pubMsg=AQH_IpcdMessageMultiData_new(AQH_MSGTYPE_IPC_DATA_UPDATEDATA,
AQH_Endpoint_GetNextMessageId(xo->brokerEndpoint), 0,
value, arrayToSend, 1);
if (pubMsg) {
DBG_ERROR(AQH_LOGDOMAIN,
"BROKER PUBLISH %s(%s/%s): %f",
AQH_Value_GetName(value),
AQH_Value_GetDeviceName(value),
AQH_Value_GetName(value),
v);
AQH_Endpoint_AddMsgOut(xo->brokerEndpoint, pubMsg);
}
}
else {
DBG_ERROR(AQH_LOGDOMAIN,
"BROKER PUBLISH %s(%s/%s): %f",
"Skipping BROKER PUBLISH %s(%s/%s): %f (no broker connection)",
AQH_Value_GetName(value),
AQH_Value_GetDeviceName(value),
AQH_Value_GetName(value),
v);
AQH_Endpoint_AddMsgOut(xo->brokerEndpoint, pubMsg);
}
AQH_Value_free(value);
}