TaisyncSettings.cc 3 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
#include "TaisyncSettings.h"
#include "SettingsManager.h"
#include "QGCApplication.h"
#include "VideoManager.h"

16
/*
17 18 19 20 21
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";
22
*/
23 24 25

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

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

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

43 44
//-----------------------------------------------------------------------------
bool
45
TaisyncSettings::requestLinkStatus()
46 47 48
{
    if(_tcpSocket) {
        QString req = QString(kGetReq).arg("/v1/baseband.json");
49 50 51 52 53 54 55 56 57 58 59 60 61 62
        //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;
63 64 65 66 67 68 69 70 71 72 73 74
        _tcpSocket->write(req.toUtf8());
        return true;
    }
    return false;
}

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

82 83 84 85 86 87 88 89 90 91 92 93 94
//-----------------------------------------------------------------------------
bool
TaisyncSettings::requestVideoSettings()
{
    if(_tcpSocket) {
        QString req = QString(kGetReq).arg("/v1/video.json");
        //qCDebug(TaisyncVerbose) << "Request" << req;
        _tcpSocket->write(req.toUtf8());
        return true;
    }
    return false;
}

95 96 97 98 99
//-----------------------------------------------------------------------------
void
TaisyncSettings::_readBytes()
{
    QByteArray bytesIn = _tcpSocket->read(_tcpSocket->bytesAvailable());
100 101 102 103 104 105
    //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));
106
    }
107 108
}