TaisyncSettings.cc 2.65 KB
Newer Older
1 2 3 4 5 6 7 8 9
/****************************************************************************
 *
 *   (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
 *
 * QGroundControl is licensed according to the terms in the file
 * COPYING.md in the root of the source code directory.
 *
 ****************************************************************************/

10
#include "TaisyncManager.h"
11 12 13 14 15 16
#include "TaisyncSettings.h"
#include "SettingsManager.h"
#include "QGCApplication.h"
#include "VideoManager.h"


17 18 19 20 21 22 23 24
static const char* kPostReq =
    "POST %1 HTTP/1.1\r\n"
    "Content-Type: application/json\r\n"
    "Content-Length: %2\r\n\r\n"
    "%3";

static const char* kGetReq = "GET %1 HTTP/1.1\r\n\r\n";

25 26 27 28 29 30 31
//-----------------------------------------------------------------------------
TaisyncSettings::TaisyncSettings(QObject* parent)
    : TaisyncHandler(parent)
{
}

//-----------------------------------------------------------------------------
32
bool TaisyncSettings::start()
33
{
34 35 36 37 38 39
    qCDebug(TaisyncLog) << "Start Taisync Settings";
#if defined(__ios__) || defined(__android__)
    return _start(TAISYNC_SETTINGS_PORT);
#else
    return _start(80, QHostAddress(TAISYNC_SETTINGS_TARGET));
#endif
40 41
}

42 43
//-----------------------------------------------------------------------------
bool
44
TaisyncSettings::requestLinkStatus()
45 46 47
{
    if(_tcpSocket) {
        QString req = QString(kGetReq).arg("/v1/baseband.json");
48 49 50 51 52 53 54 55 56 57 58 59 60 61
        //qCDebug(TaisyncVerbose) << "Request" << req;
        _tcpSocket->write(req.toUtf8());
        return true;
    }
    return false;
}

//-----------------------------------------------------------------------------
bool
TaisyncSettings::requestDevInfo()
{
    if(_tcpSocket) {
        QString req = QString(kGetReq).arg("/v1/device.json");
        //qCDebug(TaisyncVerbose) << "Request" << req;
62 63 64 65 66 67 68 69 70 71 72 73
        _tcpSocket->write(req.toUtf8());
        return true;
    }
    return false;
}

//-----------------------------------------------------------------------------
bool
TaisyncSettings::requestFreqScan()
{
    if(_tcpSocket) {
        QString req = QString(kGetReq).arg("/v1/freqscan.json");
74
        //qCDebug(TaisyncVerbose) << "Request" << req;
75 76 77 78 79 80
        _tcpSocket->write(req.toUtf8());
        return true;
    }
    return false;
}

81 82 83 84 85
//-----------------------------------------------------------------------------
void
TaisyncSettings::_readBytes()
{
    QByteArray bytesIn = _tcpSocket->read(_tcpSocket->bytesAvailable());
86 87 88 89 90 91
    //qCDebug(TaisyncVerbose) << "Taisync settings data:" << bytesIn.size();
    //qCDebug(TaisyncVerbose) << QString(bytesIn);
    //-- Go straight to Json payload
    int idx = bytesIn.indexOf('{');
    if(idx > 0) {
        emit updateSettings(bytesIn.mid(idx));
92
    }
93 94
}