60 QString t_sCommand = QString(
"%1\n").arg(p_sCommand);
63 if (this->state() == QAbstractSocket::ConnectedState) {
64 this->write(t_sCommand.toUtf8().constData(), t_sCommand.size());
65 this->waitForBytesWritten();
68 this->waitForReadyRead(1000);
69 QByteArray t_qByteArrayRaw;
72 while (this->bytesAvailable() > 0 && this->canReadLine())
73 t_qByteArrayRaw += this->readAll();
75 p_sReply = QString(t_qByteArrayRaw);
84 const QString t_sCommand = QString(
"{\"commands\":{%1}}\n").arg(p_command.
toStringReadySend());
88 if (this->state() == QAbstractSocket::ConnectedState) {
92 QDataStream out(&block, QIODevice::WriteOnly);
93 out.setVersion(QDataStream::Qt_5_1);
95 out << static_cast<quint16>(0);
97 out.device()->seek(0);
98 out << static_cast<quint16>(
static_cast<unsigned long>(block.size()) -
sizeof(quint16));
101 this->waitForBytesWritten();
104 QDataStream in(
this);
105 in.setVersion(QDataStream::Qt_5_1);
107 quint16 blockSize = 0;
109 bool respComplete =
false;
112 this->waitForReadyRead(100);
114 if (blockSize == 0) {
115 if (this->bytesAvailable() >=
static_cast<int>(
sizeof(quint16)))
117 }
else if (this->bytesAvailable() >= blockSize) {
121 }
while (!respComplete && blockSize < 65000);
123 this->write(t_sCommand.toUtf8().constData(), t_sCommand.size());
124 this->waitForBytesWritten();
127 bool respComplete =
false;
128 QByteArray t_qByteArrayRaw;
130 if (this->waitForReadyRead(100)) {
131 t_qByteArrayRaw += this->readAll();
134 respComplete = t_qByteArrayRaw.count(
'{') == t_qByteArrayRaw.count(
'}');
136 qDebug() <<
"Response: " << t_qByteArrayRaw.size() <<
" bytes";
137 }
while (!respComplete);
138 t_sReply = QString(t_qByteArrayRaw);
141 qWarning() <<
"Request was not send, because client is not connected!";
145 m_sAvailableData = t_sReply;
156 m_commandManager[
"getbufsize"].send();
160 QByteArray t_sJsonCommands = m_sAvailableData.toUtf8();
164 QJsonParseError error;
165 QJsonDocument t_jsonDocumentOrigin = QJsonDocument::fromJson(t_sJsonCommands, &error);
167 if (error.error == QJsonParseError::NoError) {
171 if (t_jsonDocumentOrigin.isObject() && t_jsonDocumentOrigin.object().value(QString(
"bufsize")) != QJsonValue::Undefined) {
172 qint32 size = (qint32)t_jsonDocumentOrigin.object().value(QString(
"bufsize")).toDouble();
177 qCritical() <<
"Unable to parse JSON response: " << error.errorString();
186 const QString help(
"help");
187 const QString description(
"");
188 const Command cmdHelp(help, description);
192 m_commandManager.clear();
196 QByteArray t_sJsonCommands = m_sAvailableData.toUtf8();
200 QJsonParseError error;
201 QJsonDocument t_jsonDocumentOrigin = QJsonDocument::fromJson(
202 t_sJsonCommands, &error);
204 if (error.error == QJsonParseError::NoError)
205 m_commandManager.insert(t_jsonDocumentOrigin);
207 qCritical() <<
"Unable to parse JSON response: " << error.errorString();
215 m_commandManager[
"conlist"].send();
219 QByteArray t_sJsonConnectors = m_sAvailableData.toUtf8();
223 QJsonParseError error;
224 QJsonDocument t_jsonDocumentOrigin = QJsonDocument::fromJson(
225 t_sJsonConnectors, &error);
227 QJsonObject t_jsonObjectConnectors;
230 if (t_jsonDocumentOrigin.isObject() && t_jsonDocumentOrigin.object().value(QString(
"connectors")) != QJsonValue::Undefined)
231 t_jsonObjectConnectors = t_jsonDocumentOrigin.object().value(QString(
"connectors")).toObject();
234 qint32 p_iActiveId = -1;
235 p_qMapConnectors.clear();
238 QJsonObject::Iterator it;
239 for (it = t_jsonObjectConnectors.begin(); it != t_jsonObjectConnectors.end(); ++it) {
240 QString t_qConnectorName = it.key();
242 qint32
id = it.value().toObject().value(QString(
"id")).toDouble();
244 if (!p_qMapConnectors.contains(
id))
245 p_qMapConnectors.insert(
id, t_qConnectorName);
247 qWarning(
"Warning: CommandMap contains command %s already. Insertion skipped.\n", it.key().toUtf8().constData());
250 if (it.value().toObject().value(QString(
"active")).toBool())