diff --git a/apps/aqhome-data/server.c b/apps/aqhome-data/server.c index ebc95c2..4c51739 100644 --- a/apps/aqhome-data/server.c +++ b/apps/aqhome-data/server.c @@ -79,7 +79,8 @@ static int _handleNewClient(AQH_OBJECT *o, AQH_OBJECT *clientEndpoint); static int _handleClientDown(AQH_OBJECT *o, AQH_OBJECT *clientEndpoint); static void _handleMsgsFromClient(AQH_OBJECT *o, AQHOME_SERVER *xo, AQH_OBJECT *ep); static void _handleMsgFromClient(AQH_OBJECT *o, AQH_OBJECT *ep, const AQH_MESSAGE *msg); -static void _createValue(AQHOME_SERVER *xo, AQH_OBJECT *epDriver, const char *deviceName, const AQH_VALUE *valueTemplate); +static void _createValue(AQHOME_SERVER *xo, AQH_OBJECT *epDriver, + const char *deviceName, const char *valueNameForSystem, const AQH_VALUE *valueTemplate); static void _updateValue(AQHOME_SERVER *xo, AQH_VALUE *v, const char *deviceName, const AQH_VALUE *valueTemplate); static AQH_DEVICE *_getOrCreateDeviceForDriver(AQHOME_SERVER *xo, AQH_OBJECT *epDriver, const char *deviceName); static int _createPidFile(const char *pidFilename); @@ -655,7 +656,7 @@ AQH_VALUE *AqHomeDataServer_GetOrCreateValueForDriverWithTemplate(AQH_OBJECT *o, v=AQH_Storage_GetValueByNameForSystem(xo->storage, GWEN_Buffer_GetStart(buf)); if (v==NULL) { if (AQH_Endpoint_GetPermissions(epDriver) & AQH_ENDPOINT_PERMS_ADDVALUE) - _createValue(xo, epDriver, deviceName, valueTemplate); + _createValue(xo, epDriver, deviceName, GWEN_Buffer_GetStart(buf), valueTemplate); else { DBG_ERROR(AQH_LOGDOMAIN, "No permissions to create value \"%s\"", GWEN_Buffer_GetStart(buf)); GWEN_Buffer_free(buf); @@ -672,20 +673,25 @@ AQH_VALUE *AqHomeDataServer_GetOrCreateValueForDriverWithTemplate(AQH_OBJECT *o, -void _createValue(AQHOME_SERVER *xo, AQH_OBJECT *epDriver, const char *deviceName, const AQH_VALUE *valueTemplate) +void _createValue(AQHOME_SERVER *xo, AQH_OBJECT *epDriver, + const char *deviceName, const char *valueNameForSystem, const AQH_VALUE *valueTemplate) { AQH_DEVICE *device; const char *serviceName; + const char *valueName; AQH_VALUE *v; - DBG_INFO(AQH_LOGDOMAIN, "Creating value \"%s\"", deviceName); serviceName=AQH_Endpoint_GetServiceName(epDriver); + valueName=AQH_Value_GetName(valueTemplate); device=(deviceName && *deviceName)?_getOrCreateDeviceForDriver(xo, epDriver, deviceName):NULL; + DBG_ERROR(AQH_LOGDOMAIN, + "Creating value: service=\"%s\", device=\"%s\", value \"%s\"", + serviceName?serviceName:"", deviceName?deviceName:"", valueName?valueName:""); v=AQH_Value_new(); AQH_Value_SetDriver(v, serviceName); AQH_Value_SetName(v, AQH_Value_GetName(valueTemplate)); - AQH_Value_SetNameForSystem(v, deviceName); + AQH_Value_SetNameForSystem(v, valueNameForSystem); AQH_Value_SetValueUnits(v, AQH_Value_GetValueUnits(valueTemplate)); AQH_Value_SetValueType(v, AQH_Value_GetValueType(valueTemplate)); AQH_Value_SetModality(v, AQH_Value_GetModality(valueTemplate)); @@ -755,7 +761,7 @@ AQH_DEVICE *_getOrCreateDeviceForDriver(AQHOME_SERVER *xo, AQH_OBJECT *epDriver, device=AQH_Storage_GetDeviceByNameForSystem(xo->storage, GWEN_Buffer_GetStart(buf)); if (device==NULL) { if (AQH_Endpoint_GetPermissions(epDriver) & AQH_ENDPOINT_PERMS_ADDDEVICE) { - DBG_INFO(AQH_LOGDOMAIN, "Creating device \"%s\"", GWEN_Buffer_GetStart(buf)); + DBG_ERROR(AQH_LOGDOMAIN, "Creating device \"%s\"", GWEN_Buffer_GetStart(buf)); device=AQH_Device_new(); AQH_Device_SetDriver(device, serviceName); AQH_Device_SetName(device, deviceName);