#include "alarmchannel.h"

AlarmChannel::AlarmChannel(QObject *parent, QString ip, quint16 port, QString termId, QString termKey) :
    QObject(parent)
{
    Ip = ip;
    Port = port;
    TermId = termId;
    TermKey = termKey;
    so  = new QTcpSocket(this);
    connect(so,SIGNAL(connected()),this,SLOT(onConnected()));
    connect(so,SIGNAL(readyRead()),this,SLOT(onTextMessageReceived()));
    connect(so,SIGNAL(stateChanged(QAbstractSocket::SocketState)),this,SLOT(onStatusChanged(QAbstractSocket::SocketState)));
    so->connectToHost(Ip,Port);
}

void AlarmChannel::onConnected(){
    QString cmd = QString("{\"AppId\":\"%1\", \"Secert\":\"%2\"}").arg(TermId).arg(TermKey);
    printf("%s\n",cmd.toUtf8().data());
    so->write(cmd.toUtf8());
    so->flush();
}

void AlarmChannel::onStatusChanged(QAbstractSocket::SocketState sta)
{
    if(sta==QAbstractSocket::ClosingState)
        emit SoClose();
}

void AlarmChannel::onTextMessageReceived()
{
    QString msg = QString(so->readAll());
    printf("%s\n",msg.toUtf8().data());
    emit getData(msg);
}
