75 QString t_sCommand = QString(
"%1\n").arg(p_sCommand);
78 if (this->state() == QAbstractSocket::ConnectedState)
80 this->write(t_sCommand.toUtf8().constData(), t_sCommand.size());
81 this->waitForBytesWritten();
84 this->waitForReadyRead(1000);
85 QByteArray t_qByteArrayRaw;
88 while (this->bytesAvailable() > 0 && this->canReadLine())
89 t_qByteArrayRaw += this->readAll();
91 p_sReply = QString(t_qByteArrayRaw);
100 const QString t_sCommand = QString(
"{\"commands\":{%1}}\n").arg(p_command.
toStringReadySend());
104 if (this->state() == QAbstractSocket::ConnectedState)
110 QDataStream out(&block, QIODevice::WriteOnly);
111 out.setVersion(QDataStream::Qt_5_1);
113 out << static_cast<quint16>(0);
115 out.device()->seek(0);
116 out << static_cast<quint16>(
static_cast<unsigned long>(block.size()) -
sizeof(quint16));
119 this->waitForBytesWritten();
122 QDataStream in(
this);
123 in.setVersion(QDataStream::Qt_5_1);
125 quint16 blockSize = 0;
127 bool respComplete =
false;
131 this->waitForReadyRead(100);
135 if (this->bytesAvailable() >=
static_cast<int>(
sizeof(quint16)))
138 else if(this->bytesAvailable() >= blockSize)
143 }
while (!respComplete && blockSize < 65000);
147 this->write(t_sCommand.toUtf8().constData(), t_sCommand.size());
148 this->waitForBytesWritten();
151 bool respComplete =
false;
152 QByteArray t_qByteArrayRaw;
155 if (this->waitForReadyRead(100))
157 t_qByteArrayRaw += this->readAll();
160 respComplete = t_qByteArrayRaw.count(
'{')
161 == t_qByteArrayRaw.count(
'}');
163 qDebug() <<
"Response: " << t_qByteArrayRaw.size() <<
" bytes";
164 }
while (!respComplete);
165 t_sReply = QString(t_qByteArrayRaw);
170 qWarning() <<
"Request was not send, because client is not connected!";
174 m_sAvailableData = t_sReply;
185 m_commandManager[
"getbufsize"].send();
189 QByteArray t_sJsonCommands = m_sAvailableData.toUtf8();
193 QJsonParseError error;
194 QJsonDocument t_jsonDocumentOrigin = QJsonDocument::fromJson(t_sJsonCommands, &error);
196 if (error.error == QJsonParseError::NoError)
201 if(t_jsonDocumentOrigin.isObject() && t_jsonDocumentOrigin.object().value(QString(
"bufsize")) != QJsonValue::Undefined)
203 qint32 size = (qint32)t_jsonDocumentOrigin.object().value(QString(
"bufsize")).toDouble();
208 qCritical() <<
"Unable to parse JSON response: " << error.errorString();
217 const QString help(
"help");
218 const QString description(
"");
219 const Command cmdHelp(help, description);
223 m_commandManager.clear();
227 QByteArray t_sJsonCommands = m_sAvailableData.toUtf8();
231 QJsonParseError error;
232 QJsonDocument t_jsonDocumentOrigin = QJsonDocument::fromJson(
233 t_sJsonCommands, &error);
235 if (error.error == QJsonParseError::NoError)
236 m_commandManager.insert(t_jsonDocumentOrigin);
238 qCritical() <<
"Unable to parse JSON response: " << error.errorString();
246 m_commandManager[
"conlist"].send();
250 QByteArray t_sJsonConnectors = m_sAvailableData.toUtf8();
254 QJsonParseError error;
255 QJsonDocument t_jsonDocumentOrigin = QJsonDocument::fromJson(
256 t_sJsonConnectors, &error);
258 QJsonObject t_jsonObjectConnectors;
261 if(t_jsonDocumentOrigin.isObject() && t_jsonDocumentOrigin.object().value(QString(
"connectors")) != QJsonValue::Undefined)
262 t_jsonObjectConnectors = t_jsonDocumentOrigin.object().value(QString(
"connectors")).toObject();
265 qint32 p_iActiveId = -1;
266 p_qMapConnectors.clear();
269 QJsonObject::Iterator it;
270 for(it = t_jsonObjectConnectors.begin(); it != t_jsonObjectConnectors.end(); ++it)
272 QString t_qConnectorName = it.key();
274 qint32
id = it.value().toObject().value(QString(
"id")).toDouble();
276 if(!p_qMapConnectors.contains(
id))
277 p_qMapConnectors.insert(
id, t_qConnectorName);
279 qWarning(
"Warning: CommandMap contains command %s already. Insertion skipped.\n", it.key().toUtf8().constData());
282 if(it.value().toObject().value(QString(
"active")).toBool())