/****************************************************************************
 * This file is part of the project AqHome.
 * AqHome (c) by 2025 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_M_IPCD_GETDATA_H
#define AQH_M_IPCD_GETDATA_H



#include <aqhome/api.h>
#include <aqhome/ipc2/message.h>
#include <aqhome/data/value.h>

#include <gwenhywfar/tag16.h>
#include <gwenhywfar/buffer.h>



#define AQH_MSGDATA_GETDATA_TAGS_NAME   0x0001
#define AQH_MSGDATA_GETDATA_TAGS_BEGIN  0x0020
#define AQH_MSGDATA_GETDATA_TAGS_END    0x0021
#define AQH_MSGDATA_GETDATA_TAGS_NUM    0x0022
#define AQH_MSGDATA_GETDATA_TAGS_MODE   0x0023


enum {
  AQH_MSGDATA_GETDATA_MODE_FIRST=0,
  AQH_MSGDATA_GETDATA_MODE_LAST,
  AQH_MSGDATA_GETDATA_MODE_PERIOD
};



AQHOME_API AQH_MESSAGE *AQH_IpcdMessageGetData_new(uint16_t code,
                                                   uint32_t msgId, uint32_t refMsgId,
                                                   int mode,
                                                   const char *valueName, uint64_t tsBegin, uint64_t tsEnd, uint64_t num);

AQHOME_API void AQH_IpcdMessageGetData_DumpToBuffer(const AQH_MESSAGE *msg, const GWEN_TAG16_LIST *tagList,
                                                    GWEN_BUFFER *dbuf, const char *sText);



#endif
