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


#include <aqhome/api.h>
#include <aqhome/msg/msg_node.h>

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



#define AQH_MSG_OFFS_VALUE_TIMESTAMP   0
#define AQH_MSG_OFFS_VALUE_VALUEID     4
#define AQH_MSG_OFFS_VALUE_VALUETYPE   5
#define AQH_MSG_OFFS_VALUE_VALUE       6
#define AQH_MSG_OFFS_VALUE_DENOM       8

#define AQH_MSG_VALUE_MINSIZE          (AQH_MSG_OFFS_ALL_DATA_BEGIN+AQH_MSG_OFFS_VALUE_DENOM+2)

#define AQH_MSG_VALUE_TYPE_TEMP     1
#define AQH_MSG_VALUE_TYPE_HUMIDITY 2



AQHOME_API uint32_t AQH_ValueMsg_GetTimestamp(const GWEN_MSG *msg);
AQHOME_API uint8_t AQH_ValueMsg_GetValueId(const GWEN_MSG *msg);
AQHOME_API uint8_t AQH_ValueMsg_GetValueType(const GWEN_MSG *msg);
AQHOME_API double AQH_ValueMsg_GetValue(const GWEN_MSG *msg);


AQHOME_API void AQH_ValueMsg_DumpToBuffer(const GWEN_MSG *msg, GWEN_BUFFER *dbuf, const char *sText);



#endif



