Change AQH_Value field NameForDriver to Name and make it only contain the value name.
Previously this field contained the device name, too. This would make it necessary for drivers to remove the device part of the name when SetValue is called. Instead the device name is now always provided by the driver in the appropriate field DeviceNameForDriver.
This commit is contained in:
@@ -58,7 +58,7 @@ void AqHomeData_HandleSetData(AQHOME_DATA *aqh, GWEN_MSG_ENDPOINT *epSrc, GWEN_M
|
|||||||
|
|
||||||
AQH_MultiDataDataIpcMsg_Parse(recvdMsg, 0);
|
AQH_MultiDataDataIpcMsg_Parse(recvdMsg, 0);
|
||||||
recvdValue=AQH_MultiDataDataIpcMsg_ReadValue(recvdMsg);
|
recvdValue=AQH_MultiDataDataIpcMsg_ReadValue(recvdMsg);
|
||||||
valueName=recvdValue?AQH_Value_GetNameForDriver(recvdValue):NULL;
|
valueName=recvdValue?AQH_Value_GetNameForSystem(recvdValue):NULL;
|
||||||
tag=AQH_Tag16IpcMsg_FindFirstTagByType(recvdMsg, AQH_MSGDATA_MULTIDATA_TAGS_DATA);
|
tag=AQH_Tag16IpcMsg_FindFirstTagByType(recvdMsg, AQH_MSGDATA_MULTIDATA_TAGS_DATA);
|
||||||
dataPoints=tag?((const uint64_t*)GWEN_Tag16_GetTagData(tag)):NULL;
|
dataPoints=tag?((const uint64_t*)GWEN_Tag16_GetTagData(tag)):NULL;
|
||||||
numberOfPoints=(tag?GWEN_Tag16_GetTagLength(tag):0)/(2*sizeof(uint64_t));
|
numberOfPoints=(tag?GWEN_Tag16_GetTagLength(tag):0)/(2*sizeof(uint64_t));
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ void AqHomeData_HandleUpdateData(AQHOME_DATA *aqh, GWEN_MSG_ENDPOINT *ep, GWEN_M
|
|||||||
AQH_MultiDataDataIpcMsg_Parse(recvdMsg, 0);
|
AQH_MultiDataDataIpcMsg_Parse(recvdMsg, 0);
|
||||||
|
|
||||||
recvdValue=AQH_MultiDataDataIpcMsg_ReadValue(recvdMsg);
|
recvdValue=AQH_MultiDataDataIpcMsg_ReadValue(recvdMsg);
|
||||||
valueName=recvdValue?AQH_Value_GetNameForDriver(recvdValue):NULL;
|
valueName=recvdValue?AQH_Value_GetName(recvdValue):NULL;
|
||||||
tag=AQH_Tag16IpcMsg_FindFirstTagByType(recvdMsg, AQH_MSGDATA_MULTIDATA_TAGS_DATA);
|
tag=AQH_Tag16IpcMsg_FindFirstTagByType(recvdMsg, AQH_MSGDATA_MULTIDATA_TAGS_DATA);
|
||||||
dataPoints=tag?((const uint64_t*)GWEN_Tag16_GetTagData(tag)):NULL;
|
dataPoints=tag?((const uint64_t*)GWEN_Tag16_GetTagData(tag)):NULL;
|
||||||
numberOfPoints=(tag?GWEN_Tag16_GetTagLength(tag):0)/(2*sizeof(uint64_t));
|
numberOfPoints=(tag?GWEN_Tag16_GetTagLength(tag):0)/(2*sizeof(uint64_t));
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ AQH_VALUE *AqHomeData_GetOrCreateValueForDriver(AQHOME_DATA *aqh,
|
|||||||
DBG_INFO(AQH_LOGDOMAIN, "Creating value \"%s\"", GWEN_Buffer_GetStart(buf));
|
DBG_INFO(AQH_LOGDOMAIN, "Creating value \"%s\"", GWEN_Buffer_GetStart(buf));
|
||||||
v=AQH_Value_new();
|
v=AQH_Value_new();
|
||||||
AQH_Value_SetDriver(v, serviceName);
|
AQH_Value_SetDriver(v, serviceName);
|
||||||
AQH_Value_SetNameForDriver(v, nameForDriver);
|
AQH_Value_SetName(v, nameForDriver);
|
||||||
AQH_Value_SetNameForSystem(v, GWEN_Buffer_GetStart(buf));
|
AQH_Value_SetNameForSystem(v, GWEN_Buffer_GetStart(buf));
|
||||||
AQH_Value_SetValueUnits(v, units);
|
AQH_Value_SetValueUnits(v, units);
|
||||||
AQH_Value_SetValueType(v, valueType);
|
AQH_Value_SetValueType(v, valueType);
|
||||||
@@ -150,11 +150,14 @@ AQH_VALUE *AqHomeData_GetOrCreateValueForDriverWithTemplate(AQHOME_DATA *aqh,
|
|||||||
const char *deviceNameForDriver;
|
const char *deviceNameForDriver;
|
||||||
|
|
||||||
serviceName=AQH_IpcEndpoint_GetServiceName(epDriver);
|
serviceName=AQH_IpcEndpoint_GetServiceName(epDriver);
|
||||||
nameForDriver=AQH_Value_GetNameForDriver(valueTemplate);
|
nameForDriver=AQH_Value_GetName(valueTemplate);
|
||||||
deviceNameForDriver=AQH_Value_GetDeviceNameForDriver(valueTemplate);
|
deviceNameForDriver=AQH_Value_GetDeviceNameForDriver(valueTemplate);
|
||||||
|
|
||||||
buf=GWEN_Buffer_new(0, 256, 0, 1);
|
buf=GWEN_Buffer_new(0, 256, 0, 1);
|
||||||
GWEN_Buffer_AppendArgs(buf, "%s/%s", (serviceName && *serviceName)?serviceName:"unknown", nameForDriver);
|
if (deviceNameForDriver && *deviceNameForDriver)
|
||||||
|
GWEN_Buffer_AppendArgs(buf, "%s/%s/%s", (serviceName && *serviceName)?serviceName:"unknown", deviceNameForDriver, nameForDriver);
|
||||||
|
else
|
||||||
|
GWEN_Buffer_AppendArgs(buf, "%s/%s", (serviceName && *serviceName)?serviceName:"unknown", nameForDriver);
|
||||||
|
|
||||||
v=AQH_Storage_GetValueByNameForSystem(aqh->storage, GWEN_Buffer_GetStart(buf));
|
v=AQH_Storage_GetValueByNameForSystem(aqh->storage, GWEN_Buffer_GetStart(buf));
|
||||||
if (v==NULL) {
|
if (v==NULL) {
|
||||||
@@ -166,7 +169,7 @@ AQH_VALUE *AqHomeData_GetOrCreateValueForDriverWithTemplate(AQHOME_DATA *aqh,
|
|||||||
|
|
||||||
v=AQH_Value_new();
|
v=AQH_Value_new();
|
||||||
AQH_Value_SetDriver(v, serviceName);
|
AQH_Value_SetDriver(v, serviceName);
|
||||||
AQH_Value_SetNameForDriver(v, AQH_Value_GetNameForDriver(valueTemplate));
|
AQH_Value_SetName(v, AQH_Value_GetName(valueTemplate));
|
||||||
AQH_Value_SetNameForSystem(v, GWEN_Buffer_GetStart(buf));
|
AQH_Value_SetNameForSystem(v, GWEN_Buffer_GetStart(buf));
|
||||||
AQH_Value_SetValueUnits(v, AQH_Value_GetValueUnits(valueTemplate));
|
AQH_Value_SetValueUnits(v, AQH_Value_GetValueUnits(valueTemplate));
|
||||||
AQH_Value_SetValueType(v, AQH_Value_GetValueType(valueTemplate));
|
AQH_Value_SetValueType(v, AQH_Value_GetValueType(valueTemplate));
|
||||||
|
|||||||
@@ -52,7 +52,6 @@ static void _processSendStatsMessage(AQHOMED *aqh, const GWEN_MSG *nodeMsg);
|
|||||||
static void _processRecvStatsMessage(AQHOMED *aqh, const GWEN_MSG *nodeMsg);
|
static void _processRecvStatsMessage(AQHOMED *aqh, const GWEN_MSG *nodeMsg);
|
||||||
static void _publishInt(AQHOMED *aqh, uint32_t uid, int valueId, const char *valueUnits, const char *valuePath, int v);
|
static void _publishInt(AQHOMED *aqh, uint32_t uid, int valueId, const char *valueUnits, const char *valuePath, int v);
|
||||||
static void _publishDouble(AQHOMED *aqh, uint32_t uid, int valueId, const char *valueUnits, const char *valuePath, double v);
|
static void _publishDouble(AQHOMED *aqh, uint32_t uid, int valueId, const char *valueUnits, const char *valuePath, double v);
|
||||||
static void _setValueNameForDriver(AQH_VALUE *value, uint32_t uid, int valueId, const char *valuePath);
|
|
||||||
static void _setDeviceName(AQH_VALUE *value, uint32_t uid);
|
static void _setDeviceName(AQH_VALUE *value, uint32_t uid);
|
||||||
|
|
||||||
|
|
||||||
@@ -174,14 +173,14 @@ void _publishDouble(AQHOMED *aqh, uint32_t uid, int valueId, const char *valueUn
|
|||||||
arrayToSend[1]=u.i;
|
arrayToSend[1]=u.i;
|
||||||
|
|
||||||
value=AQH_Value_new();
|
value=AQH_Value_new();
|
||||||
_setValueNameForDriver(value, uid, valueId, valuePath);
|
AQH_Value_SetName(value, valuePath);
|
||||||
AQH_Value_SetValueUnits(value, valueUnits);
|
AQH_Value_SetValueUnits(value, valueUnits);
|
||||||
AQH_Value_SetValueType(value, 0);
|
AQH_Value_SetValueType(value, 0);
|
||||||
_setDeviceName(value, uid);
|
_setDeviceName(value, uid);
|
||||||
|
|
||||||
pubMsg=AQH_MultiDataDataIpcMsg_new(AQH_MSGTYPE_IPC_DATA_UPDATEDATA, value, arrayToSend, 1);
|
pubMsg=AQH_MultiDataDataIpcMsg_new(AQH_MSGTYPE_IPC_DATA_UPDATEDATA, value, arrayToSend, 1);
|
||||||
if (pubMsg) {
|
if (pubMsg) {
|
||||||
DBG_INFO(AQH_LOGDOMAIN, "BROKER PUBLISH %s: %f", AQH_Value_GetNameForDriver(value), v);
|
DBG_INFO(AQH_LOGDOMAIN, "BROKER PUBLISH %s: %f", AQH_Value_GetName(value), v);
|
||||||
GWEN_MsgEndpoint_AddSendMessage(aqh->brokerEndpoint, pubMsg);
|
GWEN_MsgEndpoint_AddSendMessage(aqh->brokerEndpoint, pubMsg);
|
||||||
}
|
}
|
||||||
AQH_Value_free(value);
|
AQH_Value_free(value);
|
||||||
@@ -189,21 +188,6 @@ void _publishDouble(AQHOMED *aqh, uint32_t uid, int valueId, const char *valueUn
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void _setValueNameForDriver(AQH_VALUE *value, uint32_t uid, int valueId, const char *valuePath)
|
|
||||||
{
|
|
||||||
GWEN_BUFFER *buf;
|
|
||||||
|
|
||||||
buf=GWEN_Buffer_new(0, 64, 0, 1);
|
|
||||||
if (valueId>0)
|
|
||||||
GWEN_Buffer_AppendArgs(buf, "%08x/%d/%s", uid, valueId, valuePath);
|
|
||||||
else
|
|
||||||
GWEN_Buffer_AppendArgs(buf, "%08x/%s", uid, valuePath);
|
|
||||||
AQH_Value_SetNameForDriver(value, GWEN_Buffer_GetStart(buf));
|
|
||||||
GWEN_Buffer_free(buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void _setDeviceName(AQH_VALUE *value, uint32_t uid)
|
void _setDeviceName(AQH_VALUE *value, uint32_t uid)
|
||||||
{
|
{
|
||||||
GWEN_BUFFER *buf;
|
GWEN_BUFFER *buf;
|
||||||
|
|||||||
@@ -298,7 +298,7 @@ void _sendCommand(GWEN_MSG_ENDPOINT *epTcp, const char *valueName, const char *v
|
|||||||
arrayToSend[1]=u.i;
|
arrayToSend[1]=u.i;
|
||||||
|
|
||||||
value=AQH_Value_new();
|
value=AQH_Value_new();
|
||||||
AQH_Value_SetNameForDriver(value, valueName);
|
AQH_Value_SetName(value, valueName);
|
||||||
AQH_Value_SetValueUnits(value, valueUnits);
|
AQH_Value_SetValueUnits(value, valueUnits);
|
||||||
|
|
||||||
msgOut=AQH_MultiDataDataIpcMsg_new(AQH_MSGTYPE_IPC_DATA_UPDATEDATA, value, arrayToSend, 1);
|
msgOut=AQH_MultiDataDataIpcMsg_new(AQH_MSGTYPE_IPC_DATA_UPDATEDATA, value, arrayToSend, 1);
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
<flags>own</flags>
|
<flags>own</flags>
|
||||||
</member>
|
</member>
|
||||||
|
|
||||||
<member name="nameForDriver" type="char_ptr" maxlen="128">
|
<member name="name" type="char_ptr" maxlen="128">
|
||||||
<default>0</default>
|
<default>0</default>
|
||||||
<preset>0</preset>
|
<preset>0</preset>
|
||||||
<access>public</access>
|
<access>public</access>
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ void _writeValueFieldsAsTagsToBuffer(const AQH_VALUE *value, GWEN_BUFFER *buf)
|
|||||||
if (s && *s)
|
if (s && *s)
|
||||||
GWEN_Tag16_WriteStringTagToBuffer(AQH_IPCDATA_VALUE_TAGS_DRIVER, s, buf);
|
GWEN_Tag16_WriteStringTagToBuffer(AQH_IPCDATA_VALUE_TAGS_DRIVER, s, buf);
|
||||||
|
|
||||||
s=AQH_Value_GetNameForDriver(value);
|
s=AQH_Value_GetName(value);
|
||||||
if (s && *s)
|
if (s && *s)
|
||||||
GWEN_Tag16_WriteStringTagToBuffer(AQH_IPCDATA_VALUE_TAGS_NAMEFORDRIVER, s, buf);
|
GWEN_Tag16_WriteStringTagToBuffer(AQH_IPCDATA_VALUE_TAGS_NAMEFORDRIVER, s, buf);
|
||||||
|
|
||||||
@@ -318,7 +318,7 @@ AQH_VALUE *_readValueFromTag(const uint8_t *ptr, uint32_t len)
|
|||||||
break;
|
break;
|
||||||
case AQH_IPCDATA_VALUE_TAGS_NAMEFORDRIVER:
|
case AQH_IPCDATA_VALUE_TAGS_NAMEFORDRIVER:
|
||||||
s=GWEN_Tag16_GetTagDataAsNewString(tag, NULL);
|
s=GWEN_Tag16_GetTagDataAsNewString(tag, NULL);
|
||||||
AQH_Value_SetNameForDriver(value, s);
|
AQH_Value_SetName(value, s);
|
||||||
free(s);
|
free(s);
|
||||||
break;
|
break;
|
||||||
case AQH_IPCDATA_VALUE_TAGS_NAMEFORSYSTEM:
|
case AQH_IPCDATA_VALUE_TAGS_NAMEFORSYSTEM:
|
||||||
|
|||||||
Reference in New Issue
Block a user