#include <stdio.h>
#include <stdlib.h>

#include "ipc_session.h"
#include "dy_utils/dy_common.h"
#include "vint_common.h"
#include "dy_utils/dy_ipc.h"


static int vint_internal_mqtt_handle_recv_msg(void *obj, ipc_msg_t *mqtt_msg)
{
    vint_var_t *var = (vint_var_t *)obj;
    //dy_syslog(LOG_DEBUG, " MQTT client:%s received MQTT topic:%s payload length:%d",
    //          session->client.clientId, mqtt_msg->topic, mqtt_msg->payloadLen);
    if (strstr(mqtt_msg->topic, TOPIC_SEND_RGLT_SIGNAL_RAW_DATA))
    {
        //发送下行数据
        vint_send_mqtt_data(var, mqtt_msg);
        //发送下行数据
    }
}

// 建立与内部broker之间的MQTT连接
int vint_internal_client_init(vint_var_t *var)
{
    char clientId[MAX_CLIENT_ID_LEN] = {0};

    snprintf(clientId, MAX_CLIENT_ID_LEN, "INT_VINT_%s", var->sn_str);
    var->session_int = ipc_session_new(clientId, (void*)var, IPC_DEFAULT);
    if (var->session_int == NULL) return -1;

    ipc_session_set_callbacks(var->session_int, vint_internal_mqtt_handle_recv_msg, NULL);
    vint_in_subscribe_all(var);
    ipc_session_start(var->session_int);
}
