diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index 6f1df82..ae5be4c 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -144,54 +144,62 @@ } // 默认选中第一个设备类型 - ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); +// ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); return response.find("code")->toInt(); } void DeviceHubWindow::initAllDeviceList() { - QMapIterator it(ConstCache::getInstance().deviceTypes); - while (it.hasNext()) + QStringList sysList = SettingConfig::getInstance().SYSTEM.split(","); + QStringList devTypes = SettingConfig::getInstance().DEV_TYPES.split(","); + for (int i = 0; i < devTypes.size(); i++) { - it.next(); - QString devType = it.key(); - QJsonObject resultObj = httpReq->initDeviceList(devType); - if (resultObj.find("code")->toInt() == 200) + QString devType = devTypes.at(i); + QList typeDevList; + QList singleTypeDevList; + for (int j = 0; j < sysList.size(); j++) { - QList typeDevList; - QJsonArray data = resultObj.find("data")->toArray(); - QList singleTypeDevList; - for (int i = 0; i < data.size(); i++) + QJsonObject resultObj = httpReq->initDeviceList(devType, sysList.at(j)); + if (resultObj.find("code")->toInt() == 200) { - QJsonObject item = data.at(i).toObject(); - typeDevList.append(item); - qDebug() << item; - - DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); - if (devicePtr != 0) + QJsonArray data = resultObj.find("data")->toArray(); + for (int ii = 0; ii < data.size(); ii++) { - devicePtr->setDevCode(item.find("deviceNo")->toString()); - devicePtr->setDeviceId(item.find("deviceId")->toString()); - devicePtr->setComName(item.find("linkComName")->toString()); - devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + QJsonObject item = data.at(ii).toObject(); + typeDevList.append(item); + qDebug() << item; - singleTypeDevList.append(devicePtr); - - // 如果是真实工作模式则打开串口连接 - if (SettingConfig::getInstance().WORK_MODE == "real") + DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); + if (devicePtr != 0) { - devicePtr->initSerialPort(); + devicePtr->setDevCode(item.find("deviceNo")->toString()); + devicePtr->setDeviceId(item.find("deviceId")->toString()); + devicePtr->setComName(item.find("linkComName")->toString()); + devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + + singleTypeDevList.append(devicePtr); + + // 如果是真实工作模式则打开串口连接 + if (SettingConfig::getInstance().WORK_MODE == "real") + { + devicePtr->initSerialPort(); + } } } } - this->allTypeDevList.insert(devType, singleTypeDevList); - - ConstCache::getInstance().deviceList.insert(devType, typeDevList); } + + this->allTypeDevList.insert(devType, singleTypeDevList); + ConstCache::getInstance().deviceList.insert(devType, typeDevList); } - ui->devTypeSelect->setCurrentIndex(0); + if (ui->devTypeSelect->currentIndex() == 0) + { + this->on_devTypeSelect_currentIndexChanged(0); + } else { + ui->devTypeSelect->setCurrentIndex(0); + } } void DeviceHubWindow::initDeviceForm(QString devType) diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index 6f1df82..ae5be4c 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -144,54 +144,62 @@ } // 默认选中第一个设备类型 - ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); +// ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); return response.find("code")->toInt(); } void DeviceHubWindow::initAllDeviceList() { - QMapIterator it(ConstCache::getInstance().deviceTypes); - while (it.hasNext()) + QStringList sysList = SettingConfig::getInstance().SYSTEM.split(","); + QStringList devTypes = SettingConfig::getInstance().DEV_TYPES.split(","); + for (int i = 0; i < devTypes.size(); i++) { - it.next(); - QString devType = it.key(); - QJsonObject resultObj = httpReq->initDeviceList(devType); - if (resultObj.find("code")->toInt() == 200) + QString devType = devTypes.at(i); + QList typeDevList; + QList singleTypeDevList; + for (int j = 0; j < sysList.size(); j++) { - QList typeDevList; - QJsonArray data = resultObj.find("data")->toArray(); - QList singleTypeDevList; - for (int i = 0; i < data.size(); i++) + QJsonObject resultObj = httpReq->initDeviceList(devType, sysList.at(j)); + if (resultObj.find("code")->toInt() == 200) { - QJsonObject item = data.at(i).toObject(); - typeDevList.append(item); - qDebug() << item; - - DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); - if (devicePtr != 0) + QJsonArray data = resultObj.find("data")->toArray(); + for (int ii = 0; ii < data.size(); ii++) { - devicePtr->setDevCode(item.find("deviceNo")->toString()); - devicePtr->setDeviceId(item.find("deviceId")->toString()); - devicePtr->setComName(item.find("linkComName")->toString()); - devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + QJsonObject item = data.at(ii).toObject(); + typeDevList.append(item); + qDebug() << item; - singleTypeDevList.append(devicePtr); - - // 如果是真实工作模式则打开串口连接 - if (SettingConfig::getInstance().WORK_MODE == "real") + DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); + if (devicePtr != 0) { - devicePtr->initSerialPort(); + devicePtr->setDevCode(item.find("deviceNo")->toString()); + devicePtr->setDeviceId(item.find("deviceId")->toString()); + devicePtr->setComName(item.find("linkComName")->toString()); + devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + + singleTypeDevList.append(devicePtr); + + // 如果是真实工作模式则打开串口连接 + if (SettingConfig::getInstance().WORK_MODE == "real") + { + devicePtr->initSerialPort(); + } } } } - this->allTypeDevList.insert(devType, singleTypeDevList); - - ConstCache::getInstance().deviceList.insert(devType, typeDevList); } + + this->allTypeDevList.insert(devType, singleTypeDevList); + ConstCache::getInstance().deviceList.insert(devType, typeDevList); } - ui->devTypeSelect->setCurrentIndex(0); + if (ui->devTypeSelect->currentIndex() == 0) + { + this->on_devTypeSelect_currentIndexChanged(0); + } else { + ui->devTypeSelect->setCurrentIndex(0); + } } void DeviceHubWindow::initDeviceForm(QString devType) diff --git a/DeviceHub/common/HttpRequestController.cpp b/DeviceHub/common/HttpRequestController.cpp index dc4e380..9a17383 100644 --- a/DeviceHub/common/HttpRequestController.cpp +++ b/DeviceHub/common/HttpRequestController.cpp @@ -116,3 +116,35 @@ return resultObj; } + +QJsonObject HttpRequestController::initDeviceList(QString devType, QString system) +{ + QJsonObject resultObj; + + // 获取设备列表的接口地址 + QUrl url = baseUrl + "/device/list"; + QUrlQuery query; + query.addQueryItem("type", devType); + url.setQuery(query); + + QNetworkRequest request; + request.setUrl(url); + request.setRawHeader("Content-type", "application/json"); + request.setRawHeader("token", token.toLocal8Bit()); + request.setRawHeader("system", system.toLocal8Bit()); + + qDebug() << url; + + QNetworkReply * reply = httpUtil->sendGetRequest(request); + const QByteArray reply_data = reply->readAll(); + QJsonDocument jsonDocument = QJsonDocument::fromJson(reply_data); + if(jsonDocument.isNull() == false) + { + resultObj = jsonDocument.object(); + } else + { + resultObj.insert("code", -1); + } + + return resultObj; +} diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index 6f1df82..ae5be4c 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -144,54 +144,62 @@ } // 默认选中第一个设备类型 - ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); +// ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); return response.find("code")->toInt(); } void DeviceHubWindow::initAllDeviceList() { - QMapIterator it(ConstCache::getInstance().deviceTypes); - while (it.hasNext()) + QStringList sysList = SettingConfig::getInstance().SYSTEM.split(","); + QStringList devTypes = SettingConfig::getInstance().DEV_TYPES.split(","); + for (int i = 0; i < devTypes.size(); i++) { - it.next(); - QString devType = it.key(); - QJsonObject resultObj = httpReq->initDeviceList(devType); - if (resultObj.find("code")->toInt() == 200) + QString devType = devTypes.at(i); + QList typeDevList; + QList singleTypeDevList; + for (int j = 0; j < sysList.size(); j++) { - QList typeDevList; - QJsonArray data = resultObj.find("data")->toArray(); - QList singleTypeDevList; - for (int i = 0; i < data.size(); i++) + QJsonObject resultObj = httpReq->initDeviceList(devType, sysList.at(j)); + if (resultObj.find("code")->toInt() == 200) { - QJsonObject item = data.at(i).toObject(); - typeDevList.append(item); - qDebug() << item; - - DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); - if (devicePtr != 0) + QJsonArray data = resultObj.find("data")->toArray(); + for (int ii = 0; ii < data.size(); ii++) { - devicePtr->setDevCode(item.find("deviceNo")->toString()); - devicePtr->setDeviceId(item.find("deviceId")->toString()); - devicePtr->setComName(item.find("linkComName")->toString()); - devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + QJsonObject item = data.at(ii).toObject(); + typeDevList.append(item); + qDebug() << item; - singleTypeDevList.append(devicePtr); - - // 如果是真实工作模式则打开串口连接 - if (SettingConfig::getInstance().WORK_MODE == "real") + DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); + if (devicePtr != 0) { - devicePtr->initSerialPort(); + devicePtr->setDevCode(item.find("deviceNo")->toString()); + devicePtr->setDeviceId(item.find("deviceId")->toString()); + devicePtr->setComName(item.find("linkComName")->toString()); + devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + + singleTypeDevList.append(devicePtr); + + // 如果是真实工作模式则打开串口连接 + if (SettingConfig::getInstance().WORK_MODE == "real") + { + devicePtr->initSerialPort(); + } } } } - this->allTypeDevList.insert(devType, singleTypeDevList); - - ConstCache::getInstance().deviceList.insert(devType, typeDevList); } + + this->allTypeDevList.insert(devType, singleTypeDevList); + ConstCache::getInstance().deviceList.insert(devType, typeDevList); } - ui->devTypeSelect->setCurrentIndex(0); + if (ui->devTypeSelect->currentIndex() == 0) + { + this->on_devTypeSelect_currentIndexChanged(0); + } else { + ui->devTypeSelect->setCurrentIndex(0); + } } void DeviceHubWindow::initDeviceForm(QString devType) diff --git a/DeviceHub/common/HttpRequestController.cpp b/DeviceHub/common/HttpRequestController.cpp index dc4e380..9a17383 100644 --- a/DeviceHub/common/HttpRequestController.cpp +++ b/DeviceHub/common/HttpRequestController.cpp @@ -116,3 +116,35 @@ return resultObj; } + +QJsonObject HttpRequestController::initDeviceList(QString devType, QString system) +{ + QJsonObject resultObj; + + // 获取设备列表的接口地址 + QUrl url = baseUrl + "/device/list"; + QUrlQuery query; + query.addQueryItem("type", devType); + url.setQuery(query); + + QNetworkRequest request; + request.setUrl(url); + request.setRawHeader("Content-type", "application/json"); + request.setRawHeader("token", token.toLocal8Bit()); + request.setRawHeader("system", system.toLocal8Bit()); + + qDebug() << url; + + QNetworkReply * reply = httpUtil->sendGetRequest(request); + const QByteArray reply_data = reply->readAll(); + QJsonDocument jsonDocument = QJsonDocument::fromJson(reply_data); + if(jsonDocument.isNull() == false) + { + resultObj = jsonDocument.object(); + } else + { + resultObj.insert("code", -1); + } + + return resultObj; +} diff --git a/DeviceHub/common/HttpRequestController.h b/DeviceHub/common/HttpRequestController.h index 77fc3db..2610548 100644 --- a/DeviceHub/common/HttpRequestController.h +++ b/DeviceHub/common/HttpRequestController.h @@ -19,6 +19,7 @@ QJsonObject getTokenByClientId(QString clientId, QString key); QJsonObject initDictDeviceType(); QJsonObject initDeviceList(QString devType); + QJsonObject initDeviceList(QString devType, QString system); private: HttpRequestUtil * httpUtil; diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index 6f1df82..ae5be4c 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -144,54 +144,62 @@ } // 默认选中第一个设备类型 - ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); +// ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); return response.find("code")->toInt(); } void DeviceHubWindow::initAllDeviceList() { - QMapIterator it(ConstCache::getInstance().deviceTypes); - while (it.hasNext()) + QStringList sysList = SettingConfig::getInstance().SYSTEM.split(","); + QStringList devTypes = SettingConfig::getInstance().DEV_TYPES.split(","); + for (int i = 0; i < devTypes.size(); i++) { - it.next(); - QString devType = it.key(); - QJsonObject resultObj = httpReq->initDeviceList(devType); - if (resultObj.find("code")->toInt() == 200) + QString devType = devTypes.at(i); + QList typeDevList; + QList singleTypeDevList; + for (int j = 0; j < sysList.size(); j++) { - QList typeDevList; - QJsonArray data = resultObj.find("data")->toArray(); - QList singleTypeDevList; - for (int i = 0; i < data.size(); i++) + QJsonObject resultObj = httpReq->initDeviceList(devType, sysList.at(j)); + if (resultObj.find("code")->toInt() == 200) { - QJsonObject item = data.at(i).toObject(); - typeDevList.append(item); - qDebug() << item; - - DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); - if (devicePtr != 0) + QJsonArray data = resultObj.find("data")->toArray(); + for (int ii = 0; ii < data.size(); ii++) { - devicePtr->setDevCode(item.find("deviceNo")->toString()); - devicePtr->setDeviceId(item.find("deviceId")->toString()); - devicePtr->setComName(item.find("linkComName")->toString()); - devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + QJsonObject item = data.at(ii).toObject(); + typeDevList.append(item); + qDebug() << item; - singleTypeDevList.append(devicePtr); - - // 如果是真实工作模式则打开串口连接 - if (SettingConfig::getInstance().WORK_MODE == "real") + DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); + if (devicePtr != 0) { - devicePtr->initSerialPort(); + devicePtr->setDevCode(item.find("deviceNo")->toString()); + devicePtr->setDeviceId(item.find("deviceId")->toString()); + devicePtr->setComName(item.find("linkComName")->toString()); + devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + + singleTypeDevList.append(devicePtr); + + // 如果是真实工作模式则打开串口连接 + if (SettingConfig::getInstance().WORK_MODE == "real") + { + devicePtr->initSerialPort(); + } } } } - this->allTypeDevList.insert(devType, singleTypeDevList); - - ConstCache::getInstance().deviceList.insert(devType, typeDevList); } + + this->allTypeDevList.insert(devType, singleTypeDevList); + ConstCache::getInstance().deviceList.insert(devType, typeDevList); } - ui->devTypeSelect->setCurrentIndex(0); + if (ui->devTypeSelect->currentIndex() == 0) + { + this->on_devTypeSelect_currentIndexChanged(0); + } else { + ui->devTypeSelect->setCurrentIndex(0); + } } void DeviceHubWindow::initDeviceForm(QString devType) diff --git a/DeviceHub/common/HttpRequestController.cpp b/DeviceHub/common/HttpRequestController.cpp index dc4e380..9a17383 100644 --- a/DeviceHub/common/HttpRequestController.cpp +++ b/DeviceHub/common/HttpRequestController.cpp @@ -116,3 +116,35 @@ return resultObj; } + +QJsonObject HttpRequestController::initDeviceList(QString devType, QString system) +{ + QJsonObject resultObj; + + // 获取设备列表的接口地址 + QUrl url = baseUrl + "/device/list"; + QUrlQuery query; + query.addQueryItem("type", devType); + url.setQuery(query); + + QNetworkRequest request; + request.setUrl(url); + request.setRawHeader("Content-type", "application/json"); + request.setRawHeader("token", token.toLocal8Bit()); + request.setRawHeader("system", system.toLocal8Bit()); + + qDebug() << url; + + QNetworkReply * reply = httpUtil->sendGetRequest(request); + const QByteArray reply_data = reply->readAll(); + QJsonDocument jsonDocument = QJsonDocument::fromJson(reply_data); + if(jsonDocument.isNull() == false) + { + resultObj = jsonDocument.object(); + } else + { + resultObj.insert("code", -1); + } + + return resultObj; +} diff --git a/DeviceHub/common/HttpRequestController.h b/DeviceHub/common/HttpRequestController.h index 77fc3db..2610548 100644 --- a/DeviceHub/common/HttpRequestController.h +++ b/DeviceHub/common/HttpRequestController.h @@ -19,6 +19,7 @@ QJsonObject getTokenByClientId(QString clientId, QString key); QJsonObject initDictDeviceType(); QJsonObject initDeviceList(QString devType); + QJsonObject initDeviceList(QString devType, QString system); private: HttpRequestUtil * httpUtil; diff --git a/DeviceHub/common/utils/QSerialPortUtil.cpp b/DeviceHub/common/utils/QSerialPortUtil.cpp index 2331e2a..87ba394 100644 --- a/DeviceHub/common/utils/QSerialPortUtil.cpp +++ b/DeviceHub/common/utils/QSerialPortUtil.cpp @@ -25,10 +25,12 @@ open = serial.open(QIODevice::ReadWrite); - if (open == true) - { - std::cout << portName.toStdString() << " " << QString::number(baudRate).toStdString() << " " << open << std::endl; - } + std::cout << portName.toStdString() << " " << QString::number(baudRate).toStdString() << " " << open << std::endl; + +// if (open == true) +// { + +// } } diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index 6f1df82..ae5be4c 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -144,54 +144,62 @@ } // 默认选中第一个设备类型 - ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); +// ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); return response.find("code")->toInt(); } void DeviceHubWindow::initAllDeviceList() { - QMapIterator it(ConstCache::getInstance().deviceTypes); - while (it.hasNext()) + QStringList sysList = SettingConfig::getInstance().SYSTEM.split(","); + QStringList devTypes = SettingConfig::getInstance().DEV_TYPES.split(","); + for (int i = 0; i < devTypes.size(); i++) { - it.next(); - QString devType = it.key(); - QJsonObject resultObj = httpReq->initDeviceList(devType); - if (resultObj.find("code")->toInt() == 200) + QString devType = devTypes.at(i); + QList typeDevList; + QList singleTypeDevList; + for (int j = 0; j < sysList.size(); j++) { - QList typeDevList; - QJsonArray data = resultObj.find("data")->toArray(); - QList singleTypeDevList; - for (int i = 0; i < data.size(); i++) + QJsonObject resultObj = httpReq->initDeviceList(devType, sysList.at(j)); + if (resultObj.find("code")->toInt() == 200) { - QJsonObject item = data.at(i).toObject(); - typeDevList.append(item); - qDebug() << item; - - DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); - if (devicePtr != 0) + QJsonArray data = resultObj.find("data")->toArray(); + for (int ii = 0; ii < data.size(); ii++) { - devicePtr->setDevCode(item.find("deviceNo")->toString()); - devicePtr->setDeviceId(item.find("deviceId")->toString()); - devicePtr->setComName(item.find("linkComName")->toString()); - devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + QJsonObject item = data.at(ii).toObject(); + typeDevList.append(item); + qDebug() << item; - singleTypeDevList.append(devicePtr); - - // 如果是真实工作模式则打开串口连接 - if (SettingConfig::getInstance().WORK_MODE == "real") + DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); + if (devicePtr != 0) { - devicePtr->initSerialPort(); + devicePtr->setDevCode(item.find("deviceNo")->toString()); + devicePtr->setDeviceId(item.find("deviceId")->toString()); + devicePtr->setComName(item.find("linkComName")->toString()); + devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + + singleTypeDevList.append(devicePtr); + + // 如果是真实工作模式则打开串口连接 + if (SettingConfig::getInstance().WORK_MODE == "real") + { + devicePtr->initSerialPort(); + } } } } - this->allTypeDevList.insert(devType, singleTypeDevList); - - ConstCache::getInstance().deviceList.insert(devType, typeDevList); } + + this->allTypeDevList.insert(devType, singleTypeDevList); + ConstCache::getInstance().deviceList.insert(devType, typeDevList); } - ui->devTypeSelect->setCurrentIndex(0); + if (ui->devTypeSelect->currentIndex() == 0) + { + this->on_devTypeSelect_currentIndexChanged(0); + } else { + ui->devTypeSelect->setCurrentIndex(0); + } } void DeviceHubWindow::initDeviceForm(QString devType) diff --git a/DeviceHub/common/HttpRequestController.cpp b/DeviceHub/common/HttpRequestController.cpp index dc4e380..9a17383 100644 --- a/DeviceHub/common/HttpRequestController.cpp +++ b/DeviceHub/common/HttpRequestController.cpp @@ -116,3 +116,35 @@ return resultObj; } + +QJsonObject HttpRequestController::initDeviceList(QString devType, QString system) +{ + QJsonObject resultObj; + + // 获取设备列表的接口地址 + QUrl url = baseUrl + "/device/list"; + QUrlQuery query; + query.addQueryItem("type", devType); + url.setQuery(query); + + QNetworkRequest request; + request.setUrl(url); + request.setRawHeader("Content-type", "application/json"); + request.setRawHeader("token", token.toLocal8Bit()); + request.setRawHeader("system", system.toLocal8Bit()); + + qDebug() << url; + + QNetworkReply * reply = httpUtil->sendGetRequest(request); + const QByteArray reply_data = reply->readAll(); + QJsonDocument jsonDocument = QJsonDocument::fromJson(reply_data); + if(jsonDocument.isNull() == false) + { + resultObj = jsonDocument.object(); + } else + { + resultObj.insert("code", -1); + } + + return resultObj; +} diff --git a/DeviceHub/common/HttpRequestController.h b/DeviceHub/common/HttpRequestController.h index 77fc3db..2610548 100644 --- a/DeviceHub/common/HttpRequestController.h +++ b/DeviceHub/common/HttpRequestController.h @@ -19,6 +19,7 @@ QJsonObject getTokenByClientId(QString clientId, QString key); QJsonObject initDictDeviceType(); QJsonObject initDeviceList(QString devType); + QJsonObject initDeviceList(QString devType, QString system); private: HttpRequestUtil * httpUtil; diff --git a/DeviceHub/common/utils/QSerialPortUtil.cpp b/DeviceHub/common/utils/QSerialPortUtil.cpp index 2331e2a..87ba394 100644 --- a/DeviceHub/common/utils/QSerialPortUtil.cpp +++ b/DeviceHub/common/utils/QSerialPortUtil.cpp @@ -25,10 +25,12 @@ open = serial.open(QIODevice::ReadWrite); - if (open == true) - { - std::cout << portName.toStdString() << " " << QString::number(baudRate).toStdString() << " " << open << std::endl; - } + std::cout << portName.toStdString() << " " << QString::number(baudRate).toStdString() << " " << open << std::endl; + +// if (open == true) +// { + +// } } diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index ea27d43..53b5a6c 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -21,6 +21,7 @@ CLIENT_ID = getProperty("client", "clientId").toString(); APP_KEY = getProperty("client", "appKey").toString(); DEV_TYPES = getProperty("client", "devTypes").toString(); + SYSTEM = getProperty("client", "system").toString(); WORK_MODE = getProperty("client", "workMode").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index 6f1df82..ae5be4c 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -144,54 +144,62 @@ } // 默认选中第一个设备类型 - ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); +// ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); return response.find("code")->toInt(); } void DeviceHubWindow::initAllDeviceList() { - QMapIterator it(ConstCache::getInstance().deviceTypes); - while (it.hasNext()) + QStringList sysList = SettingConfig::getInstance().SYSTEM.split(","); + QStringList devTypes = SettingConfig::getInstance().DEV_TYPES.split(","); + for (int i = 0; i < devTypes.size(); i++) { - it.next(); - QString devType = it.key(); - QJsonObject resultObj = httpReq->initDeviceList(devType); - if (resultObj.find("code")->toInt() == 200) + QString devType = devTypes.at(i); + QList typeDevList; + QList singleTypeDevList; + for (int j = 0; j < sysList.size(); j++) { - QList typeDevList; - QJsonArray data = resultObj.find("data")->toArray(); - QList singleTypeDevList; - for (int i = 0; i < data.size(); i++) + QJsonObject resultObj = httpReq->initDeviceList(devType, sysList.at(j)); + if (resultObj.find("code")->toInt() == 200) { - QJsonObject item = data.at(i).toObject(); - typeDevList.append(item); - qDebug() << item; - - DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); - if (devicePtr != 0) + QJsonArray data = resultObj.find("data")->toArray(); + for (int ii = 0; ii < data.size(); ii++) { - devicePtr->setDevCode(item.find("deviceNo")->toString()); - devicePtr->setDeviceId(item.find("deviceId")->toString()); - devicePtr->setComName(item.find("linkComName")->toString()); - devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + QJsonObject item = data.at(ii).toObject(); + typeDevList.append(item); + qDebug() << item; - singleTypeDevList.append(devicePtr); - - // 如果是真实工作模式则打开串口连接 - if (SettingConfig::getInstance().WORK_MODE == "real") + DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); + if (devicePtr != 0) { - devicePtr->initSerialPort(); + devicePtr->setDevCode(item.find("deviceNo")->toString()); + devicePtr->setDeviceId(item.find("deviceId")->toString()); + devicePtr->setComName(item.find("linkComName")->toString()); + devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + + singleTypeDevList.append(devicePtr); + + // 如果是真实工作模式则打开串口连接 + if (SettingConfig::getInstance().WORK_MODE == "real") + { + devicePtr->initSerialPort(); + } } } } - this->allTypeDevList.insert(devType, singleTypeDevList); - - ConstCache::getInstance().deviceList.insert(devType, typeDevList); } + + this->allTypeDevList.insert(devType, singleTypeDevList); + ConstCache::getInstance().deviceList.insert(devType, typeDevList); } - ui->devTypeSelect->setCurrentIndex(0); + if (ui->devTypeSelect->currentIndex() == 0) + { + this->on_devTypeSelect_currentIndexChanged(0); + } else { + ui->devTypeSelect->setCurrentIndex(0); + } } void DeviceHubWindow::initDeviceForm(QString devType) diff --git a/DeviceHub/common/HttpRequestController.cpp b/DeviceHub/common/HttpRequestController.cpp index dc4e380..9a17383 100644 --- a/DeviceHub/common/HttpRequestController.cpp +++ b/DeviceHub/common/HttpRequestController.cpp @@ -116,3 +116,35 @@ return resultObj; } + +QJsonObject HttpRequestController::initDeviceList(QString devType, QString system) +{ + QJsonObject resultObj; + + // 获取设备列表的接口地址 + QUrl url = baseUrl + "/device/list"; + QUrlQuery query; + query.addQueryItem("type", devType); + url.setQuery(query); + + QNetworkRequest request; + request.setUrl(url); + request.setRawHeader("Content-type", "application/json"); + request.setRawHeader("token", token.toLocal8Bit()); + request.setRawHeader("system", system.toLocal8Bit()); + + qDebug() << url; + + QNetworkReply * reply = httpUtil->sendGetRequest(request); + const QByteArray reply_data = reply->readAll(); + QJsonDocument jsonDocument = QJsonDocument::fromJson(reply_data); + if(jsonDocument.isNull() == false) + { + resultObj = jsonDocument.object(); + } else + { + resultObj.insert("code", -1); + } + + return resultObj; +} diff --git a/DeviceHub/common/HttpRequestController.h b/DeviceHub/common/HttpRequestController.h index 77fc3db..2610548 100644 --- a/DeviceHub/common/HttpRequestController.h +++ b/DeviceHub/common/HttpRequestController.h @@ -19,6 +19,7 @@ QJsonObject getTokenByClientId(QString clientId, QString key); QJsonObject initDictDeviceType(); QJsonObject initDeviceList(QString devType); + QJsonObject initDeviceList(QString devType, QString system); private: HttpRequestUtil * httpUtil; diff --git a/DeviceHub/common/utils/QSerialPortUtil.cpp b/DeviceHub/common/utils/QSerialPortUtil.cpp index 2331e2a..87ba394 100644 --- a/DeviceHub/common/utils/QSerialPortUtil.cpp +++ b/DeviceHub/common/utils/QSerialPortUtil.cpp @@ -25,10 +25,12 @@ open = serial.open(QIODevice::ReadWrite); - if (open == true) - { - std::cout << portName.toStdString() << " " << QString::number(baudRate).toStdString() << " " << open << std::endl; - } + std::cout << portName.toStdString() << " " << QString::number(baudRate).toStdString() << " " << open << std::endl; + +// if (open == true) +// { + +// } } diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index ea27d43..53b5a6c 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -21,6 +21,7 @@ CLIENT_ID = getProperty("client", "clientId").toString(); APP_KEY = getProperty("client", "appKey").toString(); DEV_TYPES = getProperty("client", "devTypes").toString(); + SYSTEM = getProperty("client", "system").toString(); WORK_MODE = getProperty("client", "workMode").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index f6cc2af..2bbbeb2 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -43,6 +43,7 @@ QString CLIENT_ID; QString APP_KEY; QString DEV_TYPES; + QString SYSTEM; QString WORK_MODE; QString BASE_URL; diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index 6f1df82..ae5be4c 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -144,54 +144,62 @@ } // 默认选中第一个设备类型 - ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); +// ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); return response.find("code")->toInt(); } void DeviceHubWindow::initAllDeviceList() { - QMapIterator it(ConstCache::getInstance().deviceTypes); - while (it.hasNext()) + QStringList sysList = SettingConfig::getInstance().SYSTEM.split(","); + QStringList devTypes = SettingConfig::getInstance().DEV_TYPES.split(","); + for (int i = 0; i < devTypes.size(); i++) { - it.next(); - QString devType = it.key(); - QJsonObject resultObj = httpReq->initDeviceList(devType); - if (resultObj.find("code")->toInt() == 200) + QString devType = devTypes.at(i); + QList typeDevList; + QList singleTypeDevList; + for (int j = 0; j < sysList.size(); j++) { - QList typeDevList; - QJsonArray data = resultObj.find("data")->toArray(); - QList singleTypeDevList; - for (int i = 0; i < data.size(); i++) + QJsonObject resultObj = httpReq->initDeviceList(devType, sysList.at(j)); + if (resultObj.find("code")->toInt() == 200) { - QJsonObject item = data.at(i).toObject(); - typeDevList.append(item); - qDebug() << item; - - DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); - if (devicePtr != 0) + QJsonArray data = resultObj.find("data")->toArray(); + for (int ii = 0; ii < data.size(); ii++) { - devicePtr->setDevCode(item.find("deviceNo")->toString()); - devicePtr->setDeviceId(item.find("deviceId")->toString()); - devicePtr->setComName(item.find("linkComName")->toString()); - devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + QJsonObject item = data.at(ii).toObject(); + typeDevList.append(item); + qDebug() << item; - singleTypeDevList.append(devicePtr); - - // 如果是真实工作模式则打开串口连接 - if (SettingConfig::getInstance().WORK_MODE == "real") + DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); + if (devicePtr != 0) { - devicePtr->initSerialPort(); + devicePtr->setDevCode(item.find("deviceNo")->toString()); + devicePtr->setDeviceId(item.find("deviceId")->toString()); + devicePtr->setComName(item.find("linkComName")->toString()); + devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + + singleTypeDevList.append(devicePtr); + + // 如果是真实工作模式则打开串口连接 + if (SettingConfig::getInstance().WORK_MODE == "real") + { + devicePtr->initSerialPort(); + } } } } - this->allTypeDevList.insert(devType, singleTypeDevList); - - ConstCache::getInstance().deviceList.insert(devType, typeDevList); } + + this->allTypeDevList.insert(devType, singleTypeDevList); + ConstCache::getInstance().deviceList.insert(devType, typeDevList); } - ui->devTypeSelect->setCurrentIndex(0); + if (ui->devTypeSelect->currentIndex() == 0) + { + this->on_devTypeSelect_currentIndexChanged(0); + } else { + ui->devTypeSelect->setCurrentIndex(0); + } } void DeviceHubWindow::initDeviceForm(QString devType) diff --git a/DeviceHub/common/HttpRequestController.cpp b/DeviceHub/common/HttpRequestController.cpp index dc4e380..9a17383 100644 --- a/DeviceHub/common/HttpRequestController.cpp +++ b/DeviceHub/common/HttpRequestController.cpp @@ -116,3 +116,35 @@ return resultObj; } + +QJsonObject HttpRequestController::initDeviceList(QString devType, QString system) +{ + QJsonObject resultObj; + + // 获取设备列表的接口地址 + QUrl url = baseUrl + "/device/list"; + QUrlQuery query; + query.addQueryItem("type", devType); + url.setQuery(query); + + QNetworkRequest request; + request.setUrl(url); + request.setRawHeader("Content-type", "application/json"); + request.setRawHeader("token", token.toLocal8Bit()); + request.setRawHeader("system", system.toLocal8Bit()); + + qDebug() << url; + + QNetworkReply * reply = httpUtil->sendGetRequest(request); + const QByteArray reply_data = reply->readAll(); + QJsonDocument jsonDocument = QJsonDocument::fromJson(reply_data); + if(jsonDocument.isNull() == false) + { + resultObj = jsonDocument.object(); + } else + { + resultObj.insert("code", -1); + } + + return resultObj; +} diff --git a/DeviceHub/common/HttpRequestController.h b/DeviceHub/common/HttpRequestController.h index 77fc3db..2610548 100644 --- a/DeviceHub/common/HttpRequestController.h +++ b/DeviceHub/common/HttpRequestController.h @@ -19,6 +19,7 @@ QJsonObject getTokenByClientId(QString clientId, QString key); QJsonObject initDictDeviceType(); QJsonObject initDeviceList(QString devType); + QJsonObject initDeviceList(QString devType, QString system); private: HttpRequestUtil * httpUtil; diff --git a/DeviceHub/common/utils/QSerialPortUtil.cpp b/DeviceHub/common/utils/QSerialPortUtil.cpp index 2331e2a..87ba394 100644 --- a/DeviceHub/common/utils/QSerialPortUtil.cpp +++ b/DeviceHub/common/utils/QSerialPortUtil.cpp @@ -25,10 +25,12 @@ open = serial.open(QIODevice::ReadWrite); - if (open == true) - { - std::cout << portName.toStdString() << " " << QString::number(baudRate).toStdString() << " " << open << std::endl; - } + std::cout << portName.toStdString() << " " << QString::number(baudRate).toStdString() << " " << open << std::endl; + +// if (open == true) +// { + +// } } diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index ea27d43..53b5a6c 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -21,6 +21,7 @@ CLIENT_ID = getProperty("client", "clientId").toString(); APP_KEY = getProperty("client", "appKey").toString(); DEV_TYPES = getProperty("client", "devTypes").toString(); + SYSTEM = getProperty("client", "system").toString(); WORK_MODE = getProperty("client", "workMode").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index f6cc2af..2bbbeb2 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -43,6 +43,7 @@ QString CLIENT_ID; QString APP_KEY; QString DEV_TYPES; + QString SYSTEM; QString WORK_MODE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index ad7cb35..94b28e3 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -15,6 +15,7 @@ clientId="deviceStatus" appKey="bd347bdd57415d2db8af432c3712a177" devTypes="09,10" +system="clock,utc,phase" workMode="mock" [http] diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index 6f1df82..ae5be4c 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -144,54 +144,62 @@ } // 默认选中第一个设备类型 - ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); +// ui->devTypeSelect->setCurrentIndex(model->rowCount() - 1); return response.find("code")->toInt(); } void DeviceHubWindow::initAllDeviceList() { - QMapIterator it(ConstCache::getInstance().deviceTypes); - while (it.hasNext()) + QStringList sysList = SettingConfig::getInstance().SYSTEM.split(","); + QStringList devTypes = SettingConfig::getInstance().DEV_TYPES.split(","); + for (int i = 0; i < devTypes.size(); i++) { - it.next(); - QString devType = it.key(); - QJsonObject resultObj = httpReq->initDeviceList(devType); - if (resultObj.find("code")->toInt() == 200) + QString devType = devTypes.at(i); + QList typeDevList; + QList singleTypeDevList; + for (int j = 0; j < sysList.size(); j++) { - QList typeDevList; - QJsonArray data = resultObj.find("data")->toArray(); - QList singleTypeDevList; - for (int i = 0; i < data.size(); i++) + QJsonObject resultObj = httpReq->initDeviceList(devType, sysList.at(j)); + if (resultObj.find("code")->toInt() == 200) { - QJsonObject item = data.at(i).toObject(); - typeDevList.append(item); - qDebug() << item; - - DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); - if (devicePtr != 0) + QJsonArray data = resultObj.find("data")->toArray(); + for (int ii = 0; ii < data.size(); ii++) { - devicePtr->setDevCode(item.find("deviceNo")->toString()); - devicePtr->setDeviceId(item.find("deviceId")->toString()); - devicePtr->setComName(item.find("linkComName")->toString()); - devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + QJsonObject item = data.at(ii).toObject(); + typeDevList.append(item); + qDebug() << item; - singleTypeDevList.append(devicePtr); - - // 如果是真实工作模式则打开串口连接 - if (SettingConfig::getInstance().WORK_MODE == "real") + DeviceBase * devicePtr = DeviceBase::deviceFactory(devType, this); + if (devicePtr != 0) { - devicePtr->initSerialPort(); + devicePtr->setDevCode(item.find("deviceNo")->toString()); + devicePtr->setDeviceId(item.find("deviceId")->toString()); + devicePtr->setComName(item.find("linkComName")->toString()); + devicePtr->setBaudRate(item.find("baudRate")->toString().toInt()); + + singleTypeDevList.append(devicePtr); + + // 如果是真实工作模式则打开串口连接 + if (SettingConfig::getInstance().WORK_MODE == "real") + { + devicePtr->initSerialPort(); + } } } } - this->allTypeDevList.insert(devType, singleTypeDevList); - - ConstCache::getInstance().deviceList.insert(devType, typeDevList); } + + this->allTypeDevList.insert(devType, singleTypeDevList); + ConstCache::getInstance().deviceList.insert(devType, typeDevList); } - ui->devTypeSelect->setCurrentIndex(0); + if (ui->devTypeSelect->currentIndex() == 0) + { + this->on_devTypeSelect_currentIndexChanged(0); + } else { + ui->devTypeSelect->setCurrentIndex(0); + } } void DeviceHubWindow::initDeviceForm(QString devType) diff --git a/DeviceHub/common/HttpRequestController.cpp b/DeviceHub/common/HttpRequestController.cpp index dc4e380..9a17383 100644 --- a/DeviceHub/common/HttpRequestController.cpp +++ b/DeviceHub/common/HttpRequestController.cpp @@ -116,3 +116,35 @@ return resultObj; } + +QJsonObject HttpRequestController::initDeviceList(QString devType, QString system) +{ + QJsonObject resultObj; + + // 获取设备列表的接口地址 + QUrl url = baseUrl + "/device/list"; + QUrlQuery query; + query.addQueryItem("type", devType); + url.setQuery(query); + + QNetworkRequest request; + request.setUrl(url); + request.setRawHeader("Content-type", "application/json"); + request.setRawHeader("token", token.toLocal8Bit()); + request.setRawHeader("system", system.toLocal8Bit()); + + qDebug() << url; + + QNetworkReply * reply = httpUtil->sendGetRequest(request); + const QByteArray reply_data = reply->readAll(); + QJsonDocument jsonDocument = QJsonDocument::fromJson(reply_data); + if(jsonDocument.isNull() == false) + { + resultObj = jsonDocument.object(); + } else + { + resultObj.insert("code", -1); + } + + return resultObj; +} diff --git a/DeviceHub/common/HttpRequestController.h b/DeviceHub/common/HttpRequestController.h index 77fc3db..2610548 100644 --- a/DeviceHub/common/HttpRequestController.h +++ b/DeviceHub/common/HttpRequestController.h @@ -19,6 +19,7 @@ QJsonObject getTokenByClientId(QString clientId, QString key); QJsonObject initDictDeviceType(); QJsonObject initDeviceList(QString devType); + QJsonObject initDeviceList(QString devType, QString system); private: HttpRequestUtil * httpUtil; diff --git a/DeviceHub/common/utils/QSerialPortUtil.cpp b/DeviceHub/common/utils/QSerialPortUtil.cpp index 2331e2a..87ba394 100644 --- a/DeviceHub/common/utils/QSerialPortUtil.cpp +++ b/DeviceHub/common/utils/QSerialPortUtil.cpp @@ -25,10 +25,12 @@ open = serial.open(QIODevice::ReadWrite); - if (open == true) - { - std::cout << portName.toStdString() << " " << QString::number(baudRate).toStdString() << " " << open << std::endl; - } + std::cout << portName.toStdString() << " " << QString::number(baudRate).toStdString() << " " << open << std::endl; + +// if (open == true) +// { + +// } } diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index ea27d43..53b5a6c 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -21,6 +21,7 @@ CLIENT_ID = getProperty("client", "clientId").toString(); APP_KEY = getProperty("client", "appKey").toString(); DEV_TYPES = getProperty("client", "devTypes").toString(); + SYSTEM = getProperty("client", "system").toString(); WORK_MODE = getProperty("client", "workMode").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index f6cc2af..2bbbeb2 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -43,6 +43,7 @@ QString CLIENT_ID; QString APP_KEY; QString DEV_TYPES; + QString SYSTEM; QString WORK_MODE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index ad7cb35..94b28e3 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -15,6 +15,7 @@ clientId="deviceStatus" appKey="bd347bdd57415d2db8af432c3712a177" devTypes="09,10" +system="clock,utc,phase" workMode="mock" [http] diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index 8212c87..2fab078 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -121,7 +121,7 @@ // 1. 原始字节数组数据 QString filename = "raw_" + devCode + ".log"; - QString content = frameDto->timestamp + " [recv] " + frameDto->rawFrame.left(frameDto->rawFrame.size() - FRAME_TAIL.size()); + QString content = frameDto->timestamp + " [recv] " + frameDto->rawFrame; QLogUtil::writeRawDataLogByDate(date, filename, content); // 2. 解析后的json数据