/** 
* @file      virtual_gw_common.h 
* @brief     description common for virtual gateway run in docker
* @details  e.g. broker address, user_name, password .etc
* @author   zhaoxianpeng@zjdyiot.com
* @date     2019.09.04
* @version  A001 
* @par Copyright (c):  
*       DYIOT
* @par History:          
*   version: draft\n 
*/
#ifndef ___COMMON_H
#define ___COMMON_H

/***************HEADER FILES****************/
#include <string.h>
#include <syslog.h>
#include "mqtt_session.h"
#include "ipc_session.h"
#include "lnxall_list.h"
#include "dy_utils/dy_common.h"
#include "dy_utils/dy_ds.h"
#include "dy_utils/kv_array.h"
#include "dy_utils/dy_ipc.h"
#include "dy_utils/period_service.h"
/******************************************/

#define APP_KEY "le72jnSrwlvfJf45"
#define TIANHANG_CFG  "/app/config/tianhang_mqtt.json"


typedef struct
{
    mqtt_session_t* session_ext;         //外部broker的MQTT client，用于从外部订阅数据
    ipc_session_t* session_int;         //内部broker的MQTT client，用于进程间通信
    char sn_str[SN_MAX_LEN];
    nodes_cfg_table_t *nodes_cfg_table; //节点信息
} tianhang_var_t;

extern int external_client_init(tianhang_var_t *var, char *filename);
extern int internal_client_init(tianhang_var_t *var);
extern int external_mqtt_handle_recv_msg(void *obj, mqtt_message_t *mqtt_msg);
extern int send_data_to_front(tianhang_var_t *var, node_cfg_t *node, char *buf, int len);
extern int shanghai_s5_send_rglt(tianhang_var_t *var, pp_regulate_signal_t *regulate_data);

#endif /* ___COMMON_H */
