aqhome-data: no tagList needed here.
This commit is contained in:
@@ -47,59 +47,57 @@ static void _sendDeviceList(AQH_OBJECT *ep, const AQH_DEVICE_LIST *vl, uint32_t
|
|||||||
* ------------------------------------------------------------------------------------------------
|
* ------------------------------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void AqHomeDataServer_HandleGetDevices(AQH_OBJECT *o, AQH_OBJECT *ep, const AQH_MESSAGE *msg, const GWEN_TAG16_LIST *tagList)
|
void AqHomeDataServer_HandleGetDevices(AQH_OBJECT *o, AQH_OBJECT *ep, const AQH_MESSAGE *msg, GWEN_UNUSED const GWEN_TAG16_LIST *tagList)
|
||||||
{
|
{
|
||||||
if (tagList) {
|
AQHOME_SERVER *xo;
|
||||||
AQHOME_SERVER *xo;
|
|
||||||
|
xo=AqHomeDataServer_GetServerData(o);
|
||||||
xo=AqHomeDataServer_GetServerData(o);
|
if (xo) {
|
||||||
if (xo) {
|
const AQH_DEVICE_LIST *origDeviceList;
|
||||||
const AQH_DEVICE_LIST *origDeviceList;
|
uint32_t refMsgId;
|
||||||
uint32_t refMsgId;
|
|
||||||
|
refMsgId=AQH_IpcMessage_GetMsgId(msg);
|
||||||
refMsgId=AQH_IpcMessage_GetMsgId(msg);
|
|
||||||
|
DBG_INFO(NULL, "HandleGetDevices");
|
||||||
DBG_ERROR(NULL, "HandleGetDevices");
|
origDeviceList=AQH_Storage_GetDeviceList(xo->storage);
|
||||||
origDeviceList=AQH_Storage_GetDeviceList(xo->storage);
|
if (origDeviceList) {
|
||||||
if (origDeviceList) {
|
DBG_INFO(NULL, "Have a list of %d devices", AQH_Device_List_GetCount(origDeviceList));
|
||||||
DBG_ERROR(NULL, "Have a list of %d devices", AQH_Device_List_GetCount(origDeviceList));
|
if (AQH_Device_List_GetCount(origDeviceList)<AQHOMEDATA_DEVICESPERMSG) {
|
||||||
if (AQH_Device_List_GetCount(origDeviceList)<AQHOMEDATA_DEVICESPERMSG) {
|
DBG_INFO(NULL, "Sending all entries in one message");
|
||||||
DBG_ERROR(NULL, "Sending all entries in one message");
|
_sendDeviceList(ep, origDeviceList, AQH_MSGDATA_DEVICES_FLAGS_LASTMSG, refMsgId);
|
||||||
_sendDeviceList(ep, origDeviceList, AQH_MSGDATA_DEVICES_FLAGS_LASTMSG, refMsgId);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
AQH_DEVICE_LIST *tmpDeviceList;
|
|
||||||
const AQH_DEVICE *v;
|
|
||||||
|
|
||||||
DBG_INFO(NULL, "Sending entries in multiple messages");
|
|
||||||
tmpDeviceList=AQH_Device_List_new();
|
|
||||||
v=AQH_Device_List_First(origDeviceList);
|
|
||||||
while(v) {
|
|
||||||
const AQH_DEVICE *next;
|
|
||||||
AQH_DEVICE *copyOfDevice;
|
|
||||||
|
|
||||||
next=AQH_Device_List_Next(v);
|
|
||||||
copyOfDevice=AQH_Device_dup(v);
|
|
||||||
AQH_Device_List_Add(copyOfDevice, tmpDeviceList);
|
|
||||||
if (AQH_Device_List_GetCount(tmpDeviceList)>=AQHOMEDATA_DEVICESPERMSG) {
|
|
||||||
DBG_ERROR(NULL, "Sending %d devices", AQH_Device_List_GetCount(tmpDeviceList));
|
|
||||||
_sendDeviceList(ep, tmpDeviceList, next?0:AQH_MSGDATA_DEVICES_FLAGS_LASTMSG, refMsgId);
|
|
||||||
AQH_Device_List_Clear(tmpDeviceList);
|
|
||||||
}
|
|
||||||
v=next;
|
|
||||||
}
|
|
||||||
if (AQH_Device_List_GetCount(tmpDeviceList)) {
|
|
||||||
DBG_ERROR(NULL, "Sending %d devices", AQH_Device_List_GetCount(tmpDeviceList));
|
|
||||||
_sendDeviceList(ep, tmpDeviceList, AQH_MSGDATA_DEVICES_FLAGS_LASTMSG, refMsgId); /* send remaining */
|
|
||||||
}
|
|
||||||
AQH_Device_List_free(tmpDeviceList);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* empty list */
|
AQH_DEVICE_LIST *tmpDeviceList;
|
||||||
_sendDeviceList(ep, NULL, AQH_MSGDATA_DEVICES_FLAGS_LASTMSG, refMsgId);
|
const AQH_DEVICE *v;
|
||||||
|
|
||||||
|
DBG_INFO(NULL, "Sending entries in multiple messages");
|
||||||
|
tmpDeviceList=AQH_Device_List_new();
|
||||||
|
v=AQH_Device_List_First(origDeviceList);
|
||||||
|
while(v) {
|
||||||
|
const AQH_DEVICE *next;
|
||||||
|
AQH_DEVICE *copyOfDevice;
|
||||||
|
|
||||||
|
next=AQH_Device_List_Next(v);
|
||||||
|
copyOfDevice=AQH_Device_dup(v);
|
||||||
|
AQH_Device_List_Add(copyOfDevice, tmpDeviceList);
|
||||||
|
if (AQH_Device_List_GetCount(tmpDeviceList)>=AQHOMEDATA_DEVICESPERMSG) {
|
||||||
|
DBG_INFO(NULL, "Sending %d devices", AQH_Device_List_GetCount(tmpDeviceList));
|
||||||
|
_sendDeviceList(ep, tmpDeviceList, next?0:AQH_MSGDATA_DEVICES_FLAGS_LASTMSG, refMsgId);
|
||||||
|
AQH_Device_List_Clear(tmpDeviceList);
|
||||||
|
}
|
||||||
|
v=next;
|
||||||
|
}
|
||||||
|
if (AQH_Device_List_GetCount(tmpDeviceList)) {
|
||||||
|
DBG_INFO(NULL, "Sending %d devices", AQH_Device_List_GetCount(tmpDeviceList));
|
||||||
|
_sendDeviceList(ep, tmpDeviceList, AQH_MSGDATA_DEVICES_FLAGS_LASTMSG, refMsgId); /* send remaining */
|
||||||
|
}
|
||||||
|
AQH_Device_List_free(tmpDeviceList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
/* empty list */
|
||||||
|
_sendDeviceList(ep, NULL, AQH_MSGDATA_DEVICES_FLAGS_LASTMSG, refMsgId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,7 +107,7 @@ void _sendDeviceList(AQH_OBJECT *ep, const AQH_DEVICE_LIST *vl, uint32_t flags,
|
|||||||
{
|
{
|
||||||
AQH_MESSAGE *msg;
|
AQH_MESSAGE *msg;
|
||||||
|
|
||||||
DBG_ERROR(NULL, "Sending msg (refMsgId=%d)", refMsgId);
|
DBG_INFO(NULL, "Sending msg (refMsgId=%d)", refMsgId);
|
||||||
msg=AQH_IpcdMessageDevices_new(AQH_MSGTYPE_IPC_DATA_GETDEVICES_RSP, AQH_Endpoint_GetNextMessageId(ep), refMsgId, flags, vl);
|
msg=AQH_IpcdMessageDevices_new(AQH_MSGTYPE_IPC_DATA_GETDEVICES_RSP, AQH_Endpoint_GetNextMessageId(ep), refMsgId, flags, vl);
|
||||||
AQH_Endpoint_AddMsgOut(ep, msg);
|
AQH_Endpoint_AddMsgOut(ep, msg);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user