60 QString t_sCommand = QString(
"%1\n").arg(p_sCommand);
63 if (this->state() == QAbstractSocket::ConnectedState)
65 this->write(t_sCommand.toUtf8().constData(), t_sCommand.size());
66 this->waitForBytesWritten();
69 this->waitForReadyRead(1000);
70 QByteArray t_qByteArrayRaw;
73 while (this->bytesAvailable() > 0 && this->canReadLine())
74 t_qByteArrayRaw += this->readAll();
76 p_sReply = QString(t_qByteArrayRaw);
85 const QString t_sCommand = QString(
"{\"commands\":{%1}}\n").arg(p_command.
toStringReadySend());
89 if (this->state() == QAbstractSocket::ConnectedState)
95 QDataStream out(&block, QIODevice::WriteOnly);
96 out.setVersion(QDataStream::Qt_5_1);
98 out << static_cast<quint16>(0);
100 out.device()->seek(0);
101 out << static_cast<quint16>(
static_cast<unsigned long>(block.size()) -
sizeof(quint16));
104 this->waitForBytesWritten();
107 QDataStream in(
this);
108 in.setVersion(QDataStream::Qt_5_1);
110 quint16 blockSize = 0;
112 bool respComplete =
false;
116 this->waitForReadyRead(100);
120 if (this->bytesAvailable() >=
static_cast<int>(
sizeof(quint16)))
123 else if(this->bytesAvailable() >= blockSize)
128 }
while (!respComplete && blockSize < 65000);
132 this->write(t_sCommand.toUtf8().constData(), t_sCommand.size());
133 this->waitForBytesWritten();
136 bool respComplete =
false;
137 QByteArray t_qByteArrayRaw;
140 if (this->waitForReadyRead(100))
142 t_qByteArrayRaw += this->readAll();
145 respComplete = t_qByteArrayRaw.count(
'{')
146 == t_qByteArrayRaw.count(
'}');
148 qDebug() <<
"Response: " << t_qByteArrayRaw.size() <<
" bytes";
149 }
while (!respComplete);
150 t_sReply = QString(t_qByteArrayRaw);
155 qWarning() <<
"Request was not send, because client is not connected!";
159 m_sAvailableData = t_sReply;
170 m_commandManager[
"getbufsize"].send();
174 QByteArray t_sJsonCommands = m_sAvailableData.toUtf8();
178 QJsonParseError error;
179 QJsonDocument t_jsonDocumentOrigin = QJsonDocument::fromJson(t_sJsonCommands, &error);
181 if (error.error == QJsonParseError::NoError)
186 if(t_jsonDocumentOrigin.isObject() && t_jsonDocumentOrigin.object().value(QString(
"bufsize")) != QJsonValue::Undefined)
188 qint32 size = (qint32)t_jsonDocumentOrigin.object().value(QString(
"bufsize")).toDouble();
193 qCritical() <<
"Unable to parse JSON response: " << error.errorString();
202 const QString help(
"help");
203 const QString description(
"");
204 const Command cmdHelp(help, description);
208 m_commandManager.clear();
212 QByteArray t_sJsonCommands = m_sAvailableData.toUtf8();
216 QJsonParseError error;
217 QJsonDocument t_jsonDocumentOrigin = QJsonDocument::fromJson(
218 t_sJsonCommands, &error);
220 if (error.error == QJsonParseError::NoError)
221 m_commandManager.insert(t_jsonDocumentOrigin);
223 qCritical() <<
"Unable to parse JSON response: " << error.errorString();
231 m_commandManager[
"conlist"].send();
235 QByteArray t_sJsonConnectors = m_sAvailableData.toUtf8();
239 QJsonParseError error;
240 QJsonDocument t_jsonDocumentOrigin = QJsonDocument::fromJson(
241 t_sJsonConnectors, &error);
243 QJsonObject t_jsonObjectConnectors;
246 if(t_jsonDocumentOrigin.isObject() && t_jsonDocumentOrigin.object().value(QString(
"connectors")) != QJsonValue::Undefined)
247 t_jsonObjectConnectors = t_jsonDocumentOrigin.object().value(QString(
"connectors")).toObject();
250 qint32 p_iActiveId = -1;
251 p_qMapConnectors.clear();
254 QJsonObject::Iterator it;
255 for(it = t_jsonObjectConnectors.begin(); it != t_jsonObjectConnectors.end(); ++it)
257 QString t_qConnectorName = it.key();
259 qint32
id = it.value().toObject().value(QString(
"id")).toDouble();
261 if(!p_qMapConnectors.contains(
id))
262 p_qMapConnectors.insert(
id, t_qConnectorName);
264 qWarning(
"Warning: CommandMap contains command %s already. Insertion skipped.\n", it.key().toUtf8().constData());
267 if(it.value().toObject().value(QString(
"active")).toBool())