1 Star 0 Fork 0

AdrianW / SDMonitor_GUI

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
uicontroller.cpp 2.54 KB
一键复制 编辑 原始数据 按行查看 历史
AdrianW 提交于 2018-07-27 09:56 . Init Files
#include "uicontroller.h"
#include "mc_uiprotocol.h"
UIController::UIController(QObject *parent) : QObject(parent)
{
mp_SDController = new SDController;
mp_SPController = new SPController;
engine.rootContext()->setContextProperty("RootController" , this);
engine.rootContext()->setContextProperty("SDController" , mp_SDController);
engine.rootContext()->setContextProperty("SPController" , mp_SPController);
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return;
mp_SDController->setSDQmlViewRootItem(engine.rootObjects().at(0));
// mp_SPController->setSPQmlViewRootItem(engine.rootObjects().at(0));
// qDebug()<<engine.rootObjects().at(0)->findChild<QObject*>("objsdbuildview");
mpGuiSHM = new QueueShareMemory(QSharedMemory::ReadWrite , QSharedMemory::ReadOnly , get_mc_info("[SHM]" , "shmonekey").toString() , get_mc_info("[SHM]" , "shmtwokey").toString());
connect(&mt_ReadSHMTimer , &QTimer::timeout , this ,&UIController::readSHMTimerEvent);
mt_ReadSHMTimer.start(20);
// mpGuiSHM->writeSHMData(QByteArray("I am GUI 1"));
// mpGuiSHM->writeSHMData(QByteArray("I am GUI 2"));
// mpGuiSHM->writeSHMData(QByteArray("I am GUI 3"));
// mpGuiSHM->writeSHMData(QByteArray("I am GUI 4"));
}
void UIController::readSHMTimerEvent()
{
GUI_SHM_PACKET_HEADER *pHeader = NULL;
if(mpGuiSHM->getSHMData(mq_SHMData)){
foreach (QByteArray data, mq_SHMData) {
pHeader = (GUI_SHM_PACKET_HEADER*)(data.data());
if(data.length() < pHeader->packetsize){
qDebug()<<FLINE<<"Got SHM Data Size Not Enough Packet Size:"<<pHeader->packetsize<<" Data Len:"<<data.data();
return;
}
if(pHeader->devtype == DEVICE_CLOUD){
processData(data);
return;
}
mp_SDController->processData(data);
mp_SPController->processData(data);
}
}
}
QVariant UIController::getMcConfigInfo(QString groupname, QString keyname)
{
return get_mc_info(groupname , keyname);
}
void UIController::processData(QByteArray data)
{
GUI_SHM_PACKET_HEADER *pHeader = (GUI_SHM_PACKET_HEADER*)data.data();
GUI_SHM_LT_INFO *pLtInfo = (GUI_SHM_LT_INFO*)(data.data()+sizeof(GUI_SHM_PACKET_HEADER));
QString cloudtype = "Cloud";
QString event = "";
if(pLtInfo->cmd == CMD_GUI_DEVICE_ON){
event = "Online";
}
else if(pLtInfo->cmd == CMD_GUI_DEVICE_OFF){
event = "Offline";
}
rootWinEvent(cloudtype , event);
}
1
https://gitee.com/adrianW/SDMonitor_GUI.git
git@gitee.com:adrianW/SDMonitor_GUI.git
adrianW
SDMonitor_GUI
SDMonitor_GUI
master

搜索帮助