main
parent
1382bfb747
commit
81c1db0a90
|
@ -45,6 +45,7 @@ LIBS += -lws2_32
|
||||||
INCLUDEPATH += $$PWD/../../SDK/include
|
INCLUDEPATH += $$PWD/../../SDK/include
|
||||||
|
|
||||||
CONFIG(debug, debug|debug) {
|
CONFIG(debug, debug|debug) {
|
||||||
|
DEFINES += _DEBUG_
|
||||||
INCLUDEPATH += "D:/Visual Leak Detector/include"
|
INCLUDEPATH += "D:/Visual Leak Detector/include"
|
||||||
win32:LIBS += "D:/Visual Leak Detector/lib/Win64/vld.lib"
|
win32:LIBS += "D:/Visual Leak Detector/lib/Win64/vld.lib"
|
||||||
}
|
}
|
||||||
|
|
|
@ -123,7 +123,7 @@ void CustomDisplayPanel::Build()
|
||||||
|
|
||||||
// 设置列宽策略
|
// 设置列宽策略
|
||||||
tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);
|
tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);
|
||||||
tableWidget->setColumnWidth(0, 150);
|
tableWidget->setColumnWidth(0, 200);
|
||||||
tableWidget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch);
|
tableWidget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch);
|
||||||
//tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
//tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
||||||
//tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
//tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
||||||
|
|
|
@ -37,14 +37,16 @@ protected:
|
||||||
public:
|
public:
|
||||||
typedef enum _tagPanelType: int
|
typedef enum _tagPanelType: int
|
||||||
{
|
{
|
||||||
PANEL_TEMPERATURE = 1,
|
PANEL_TEMPERATURE = 1, //温度传感器
|
||||||
PANEL_BATTERY,
|
PANEL_BATTERY = 2, //电池Pack
|
||||||
PANEL_POWER,
|
PANEL_DCPOWER = 3, //直流电源
|
||||||
PANEL_AC,
|
PANEL_ACFAN = 4, //空调风扇
|
||||||
PANEL_PV,
|
PANEL_PV = 5, //太阳能
|
||||||
PANEL_ALARM,
|
PANEL_ALARM = 6, //告警
|
||||||
PANEL_INVERTER,
|
PANEL_INVERTER = 7, //逆变器整流器
|
||||||
PANEL_HOME,
|
PANEL_ACPOWER = 8, //交流电源
|
||||||
|
PANEL_OTHER = 88, //其它
|
||||||
|
PANEL_HOME = 99, //传感器,水浸门禁
|
||||||
} PanelType;
|
} PanelType;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -182,9 +182,9 @@
|
||||||
"precision":1,
|
"precision":1,
|
||||||
"unit":"",
|
"unit":"",
|
||||||
"title_chn":"水浸传感器",
|
"title_chn":"水浸传感器",
|
||||||
"title_eng":"Water ingress",
|
"title_eng":"Water Ingress",
|
||||||
"display":1,
|
"display":1,
|
||||||
"skip":1
|
"skip":0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"comment":"烟雾传感器",
|
"comment":"烟雾传感器",
|
||||||
|
@ -256,7 +256,7 @@
|
||||||
"language":"en",
|
"language":"en",
|
||||||
"device_name_chn":"交流配电屏",
|
"device_name_chn":"交流配电屏",
|
||||||
"device_name_eng":"AC Power",
|
"device_name_eng":"AC Power",
|
||||||
"device_type":7,
|
"device_type":8,
|
||||||
"data": [
|
"data": [
|
||||||
{
|
{
|
||||||
"comment":"设备通讯状态",
|
"comment":"设备通讯状态",
|
||||||
|
@ -316,7 +316,7 @@
|
||||||
"title_chn":"输入频率",
|
"title_chn":"输入频率",
|
||||||
"title_eng":"Freq.",
|
"title_eng":"Freq.",
|
||||||
"display":2,
|
"display":2,
|
||||||
"skip":1
|
"skip":0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"comment":"交流总电量",
|
"comment":"交流总电量",
|
||||||
|
@ -354,7 +354,7 @@
|
||||||
"precision":1,
|
"precision":1,
|
||||||
"unit":"A",
|
"unit":"A",
|
||||||
"title_chn":"输出电流C",
|
"title_chn":"输出电流C",
|
||||||
"title_eng":"ICAout",
|
"title_eng":"ICout",
|
||||||
"display":2,
|
"display":2,
|
||||||
"skip":0
|
"skip":0
|
||||||
},
|
},
|
||||||
|
@ -374,7 +374,7 @@
|
||||||
"precision":1,
|
"precision":1,
|
||||||
"unit":"",
|
"unit":"",
|
||||||
"title_chn":"系统供电方式",
|
"title_chn":"系统供电方式",
|
||||||
"title_eng":"Power Supply Mode",
|
"title_eng":"Pwr Supply Mode",
|
||||||
"display":2,
|
"display":2,
|
||||||
"skip":0
|
"skip":0
|
||||||
}
|
}
|
||||||
|
@ -2854,6 +2854,77 @@
|
||||||
"skip":0
|
"skip":0
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"start_addr":11774,
|
||||||
|
"quantity":6,
|
||||||
|
"bytes_per_register":2,
|
||||||
|
"language":"en",
|
||||||
|
"device_name_chn":"风机",
|
||||||
|
"device_name_eng":"Fan",
|
||||||
|
"device_type":4,
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"comment":"设备通讯状态",
|
||||||
|
"order":0,
|
||||||
|
"precision":1,
|
||||||
|
"unit":"",
|
||||||
|
"title_chn":"设备通讯状态",
|
||||||
|
"title_eng":"Online",
|
||||||
|
"display":1,
|
||||||
|
"skip":0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment":"温度值",
|
||||||
|
"order":1,
|
||||||
|
"precision":1,
|
||||||
|
"unit":"℃",
|
||||||
|
"title_chn":"温度值",
|
||||||
|
"title_eng":"Temperature",
|
||||||
|
"display":1,
|
||||||
|
"skip":0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment":"风扇1状态",
|
||||||
|
"order":2,
|
||||||
|
"precision":1,
|
||||||
|
"unit":"",
|
||||||
|
"title_chn":"风扇#1 状态",
|
||||||
|
"title_eng":"Fan#1 Status",
|
||||||
|
"display":2,
|
||||||
|
"skip":0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment":"风扇2状态",
|
||||||
|
"order":3,
|
||||||
|
"precision":1,
|
||||||
|
"unit":"",
|
||||||
|
"title_chn":"风扇#2 状态",
|
||||||
|
"title_eng":"Fan#2 Status",
|
||||||
|
"display":2,
|
||||||
|
"skip":0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment":"风扇3状态",
|
||||||
|
"order":4,
|
||||||
|
"precision":1,
|
||||||
|
"unit":"",
|
||||||
|
"title_chn":"风扇#3 状态",
|
||||||
|
"title_eng":"Fan#3 Status",
|
||||||
|
"display":2,
|
||||||
|
"skip":0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"comment":"风扇4状态",
|
||||||
|
"order":5,
|
||||||
|
"precision":1,
|
||||||
|
"unit":"",
|
||||||
|
"title_chn":"风扇#4 状态",
|
||||||
|
"title_eng":"Fan#4 Status",
|
||||||
|
"display":2,
|
||||||
|
"skip":0
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -216,7 +216,11 @@ bool MainWindow::InitializeUI()
|
||||||
//设置窗体透明
|
//设置窗体透明
|
||||||
this->setAttribute(Qt::WA_TranslucentBackground, true);
|
this->setAttribute(Qt::WA_TranslucentBackground, true);
|
||||||
//设置无边框
|
//设置无边框
|
||||||
|
#ifndef _DEBUG_
|
||||||
this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
|
this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
|
||||||
|
#else
|
||||||
|
this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
|
||||||
|
#endif
|
||||||
//实例阴影shadow
|
//实例阴影shadow
|
||||||
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
|
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
|
||||||
//设置阴影距离
|
//设置阴影距离
|
||||||
|
@ -257,27 +261,11 @@ bool MainWindow::InitializeUI()
|
||||||
m_pPowerPanel->Build();
|
m_pPowerPanel->Build();
|
||||||
mainLayout->addWidget(m_pPowerPanel, 0, 1);
|
mainLayout->addWidget(m_pPowerPanel, 0, 1);
|
||||||
|
|
||||||
m_Panels.insert(std::make_pair(CustomDisplayPanel::PANEL_POWER,m_pPowerPanel));
|
m_Panels.insert(std::make_pair(CustomDisplayPanel::PANEL_DCPOWER,m_pPowerPanel));
|
||||||
|
|
||||||
#if 0
|
|
||||||
//空调
|
|
||||||
m_pACPanel = new CustomDisplayPanel(this);
|
|
||||||
m_pACPanel->setImage(":/icons/main_ac.png");
|
|
||||||
QStringList l4{QStringList{tr("Online"),tr("Machine"),tr("IFM"),tr("Compressor"),tr("OFM"),tr("Discharge Temp."),tr("Room Temp.")}};
|
|
||||||
m_pACPanel->setLableCount(l4.count());
|
|
||||||
m_pACPanel->setTableRowsCount(10);
|
|
||||||
m_pACPanel->setLables(l4);
|
|
||||||
m_pACPanel->setRowItems(QStringList{tr("露点"),tr("DO"),tr("DI1"),tr("DI2"),tr("高温"),tr("低温"),tr("高湿")});
|
|
||||||
m_pACPanel->setMainLabel(tr("HVACR"));
|
|
||||||
m_pACPanel->Build();
|
|
||||||
mainLayout->addWidget(m_pACPanel, 0, 3);
|
|
||||||
|
|
||||||
m_Panels.insert(std::make_pair(CustomDisplayPanel::PANEL_AC,m_pACPanel));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//整流模块
|
//整流模块
|
||||||
m_pInverterPanel = new CustomDisplayPanel(this);
|
m_pInverterPanel = new CustomDisplayPanel(this);
|
||||||
m_pInverterPanel->setImage(":/icons/main_invertor.png");
|
m_pInverterPanel->setImage(":/icons/main_peidian.png");
|
||||||
QStringList l5{QStringList{tr("Online"),tr("Vin AB/A"),tr("Vin BC/B"),tr("Vin CA/C")}};
|
QStringList l5{QStringList{tr("Online"),tr("Vin AB/A"),tr("Vin BC/B"),tr("Vin CA/C")}};
|
||||||
m_pInverterPanel->setLableCount(l5.count());
|
m_pInverterPanel->setLableCount(l5.count());
|
||||||
m_pInverterPanel->setTableRowsCount(10);
|
m_pInverterPanel->setTableRowsCount(10);
|
||||||
|
@ -287,7 +275,23 @@ bool MainWindow::InitializeUI()
|
||||||
m_pInverterPanel->Build();
|
m_pInverterPanel->Build();
|
||||||
mainLayout->addWidget(m_pInverterPanel, 0, 2);
|
mainLayout->addWidget(m_pInverterPanel, 0, 2);
|
||||||
|
|
||||||
m_Panels.insert(std::make_pair(CustomDisplayPanel::PANEL_INVERTER,m_pInverterPanel));
|
m_Panels.insert(std::make_pair(CustomDisplayPanel::PANEL_ACPOWER,m_pInverterPanel));
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
//空调
|
||||||
|
m_pACPanel = new CustomDisplayPanel(this);
|
||||||
|
m_pACPanel->setImage(":/icons/main_ac.png");
|
||||||
|
QStringList l4{QStringList{tr("Online"),tr("T (℃)")}};
|
||||||
|
m_pACPanel->setLableCount(l4.count());
|
||||||
|
m_pACPanel->setTableRowsCount(10);
|
||||||
|
m_pACPanel->setLables(l4);
|
||||||
|
m_pACPanel->setRowItems(QStringList{tr("露点"),tr("DO"),tr("DI1"),tr("DI2"),tr("高温"),tr("低温"),tr("高湿")});
|
||||||
|
m_pACPanel->setMainLabel(tr("Fan"));
|
||||||
|
m_pACPanel->Build();
|
||||||
|
mainLayout->addWidget(m_pACPanel, 0, 3);
|
||||||
|
|
||||||
|
m_Panels.insert(std::make_pair(CustomDisplayPanel::PANEL_ACFAN,m_pACPanel));
|
||||||
|
#endif
|
||||||
|
|
||||||
//电池
|
//电池
|
||||||
m_pBatteryPanel = new CustomDisplayPanel(this);
|
m_pBatteryPanel = new CustomDisplayPanel(this);
|
||||||
|
@ -302,21 +306,6 @@ bool MainWindow::InitializeUI()
|
||||||
mainLayout->addWidget(m_pBatteryPanel, 1, 0);
|
mainLayout->addWidget(m_pBatteryPanel, 1, 0);
|
||||||
|
|
||||||
m_Panels.insert(std::make_pair(CustomDisplayPanel::PANEL_BATTERY,m_pBatteryPanel));
|
m_Panels.insert(std::make_pair(CustomDisplayPanel::PANEL_BATTERY,m_pBatteryPanel));
|
||||||
#if 0
|
|
||||||
//PV太阳能
|
|
||||||
m_pPVPanel = new CustomDisplayPanel(this);
|
|
||||||
m_pPVPanel->setImage(":/icons/main_pv.png");
|
|
||||||
QStringList l6{QStringList{tr("Online"),tr("Access Control"),tr("Water ingress"),tr("Smoke")}};
|
|
||||||
m_pPVPanel->setLableCount(l6.count());
|
|
||||||
m_pPVPanel->setTableRowsCount(10);
|
|
||||||
m_pPVPanel->setLables(l6);
|
|
||||||
m_pPVPanel->setRowItems(QStringList{tr("露点"),tr("DO"),tr("DI1"),tr("DI2"),tr("高温"),tr("低温"),tr("高湿")});
|
|
||||||
m_pPVPanel->setMainLabel(tr("PV Module"));
|
|
||||||
m_pPVPanel->Build();
|
|
||||||
mainLayout->addWidget(m_pPVPanel, 1, 1);
|
|
||||||
|
|
||||||
m_Panels.insert(std::make_pair(CustomDisplayPanel::PANEL_PV,m_pPVPanel));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//门禁
|
//门禁
|
||||||
m_pHomePanel = new CustomDisplayPanel(this);
|
m_pHomePanel = new CustomDisplayPanel(this);
|
||||||
|
@ -332,6 +321,22 @@ bool MainWindow::InitializeUI()
|
||||||
|
|
||||||
m_Panels.insert(std::make_pair(CustomDisplayPanel::PANEL_HOME,m_pHomePanel));
|
m_Panels.insert(std::make_pair(CustomDisplayPanel::PANEL_HOME,m_pHomePanel));
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
//蒸馏模块
|
||||||
|
m_pPVPanel = new CustomDisplayPanel(this);
|
||||||
|
m_pPVPanel->setImage(":/icons/main_invertor.png");
|
||||||
|
QStringList l6{QStringList{tr("Online"),tr("Vout"),tr("Module Number")}};
|
||||||
|
m_pPVPanel->setLableCount(l6.count());
|
||||||
|
m_pPVPanel->setTableRowsCount(10);
|
||||||
|
m_pPVPanel->setLables(l6);
|
||||||
|
m_pPVPanel->setRowItems(QStringList{tr("露点"),tr("DO"),tr("DI1"),tr("DI2"),tr("高温"),tr("低温"),tr("高湿")});
|
||||||
|
m_pPVPanel->setMainLabel(tr("Invertor"));
|
||||||
|
m_pPVPanel->Build();
|
||||||
|
mainLayout->addWidget(m_pPVPanel, 1, 2);
|
||||||
|
|
||||||
|
m_Panels.insert(std::make_pair(CustomDisplayPanel::PANEL_INVERTER,m_pPVPanel));
|
||||||
|
#endif
|
||||||
|
|
||||||
//告警
|
//告警
|
||||||
m_pAlarmPanel = new CustomWarningPanel(this);
|
m_pAlarmPanel = new CustomWarningPanel(this);
|
||||||
m_pAlarmPanel->setImage(":/icons/main_alarm.png");
|
m_pAlarmPanel->setImage(":/icons/main_alarm.png");
|
||||||
|
@ -343,7 +348,7 @@ bool MainWindow::InitializeUI()
|
||||||
m_pAlarmPanel->setRowItems(QStringList{tr("")});
|
m_pAlarmPanel->setRowItems(QStringList{tr("")});
|
||||||
m_pAlarmPanel->setMainLabel(tr("Warning"));
|
m_pAlarmPanel->setMainLabel(tr("Warning"));
|
||||||
m_pAlarmPanel->Build();
|
m_pAlarmPanel->Build();
|
||||||
mainLayout->addWidget(m_pAlarmPanel, 1, 2);
|
mainLayout->addWidget(m_pAlarmPanel, 1, 3);
|
||||||
|
|
||||||
m_Panels.insert(std::make_pair(CustomDisplayPanel::PANEL_ALARM,m_pAlarmPanel));
|
m_Panels.insert(std::make_pair(CustomDisplayPanel::PANEL_ALARM,m_pAlarmPanel));
|
||||||
|
|
||||||
|
@ -559,6 +564,8 @@ bool MainWindow::readRegister()
|
||||||
|
|
||||||
DecodeSync(registers, *iterAddress, pDevice);
|
DecodeSync(registers, *iterAddress, pDevice);
|
||||||
|
|
||||||
|
qDebug() << registers;
|
||||||
|
|
||||||
OpenJson json;
|
OpenJson json;
|
||||||
if(CreateJson2(pDevice,json))
|
if(CreateJson2(pDevice,json))
|
||||||
{
|
{
|
||||||
|
@ -566,7 +573,7 @@ bool MainWindow::readRegister()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ui->statusbar->showMessage(tr("Failed to decode temperaure data")); //解析温度数据失败!"));
|
ui->statusbar->showMessage(tr("Failed to decode temperature data")); //解析温度数据失败!"));
|
||||||
}
|
}
|
||||||
|
|
||||||
delete pDevice;
|
delete pDevice;
|
||||||
|
@ -673,6 +680,9 @@ bool MainWindow::CreateJson2(DeviceData* pData,OpenJson& json)
|
||||||
auto& nodeTable = json["table"];
|
auto& nodeTable = json["table"];
|
||||||
for(; iter!=pDevice->m_PanelDisplayDataItems.end(); iter++)
|
for(; iter!=pDevice->m_PanelDisplayDataItems.end(); iter++)
|
||||||
{
|
{
|
||||||
|
qDebug() << iter->title.c_str();
|
||||||
|
qDebug() << iter->value;
|
||||||
|
|
||||||
if(iter->display_location == 1) //显示在面板
|
if(iter->display_location == 1) //显示在面板
|
||||||
{
|
{
|
||||||
nodeLabel[idx0]["value"] = iter->value * 1.0f / iter->precision;
|
nodeLabel[idx0]["value"] = iter->value * 1.0f / iter->precision;
|
||||||
|
@ -685,12 +695,14 @@ bool MainWindow::CreateJson2(DeviceData* pData,OpenJson& json)
|
||||||
{
|
{
|
||||||
nodeTable[idx1]["value"] = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toStdString();
|
nodeTable[idx1]["value"] = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toStdString();
|
||||||
nodeTable[idx1]["signal"] = "Time";
|
nodeTable[idx1]["signal"] = "Time";
|
||||||
|
idx1++;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
{
|
||||||
nodeTable[idx1]["value"] = iter->value * 1.0f / iter->precision;
|
nodeTable[idx1]["value"] = iter->value * 1.0f / iter->precision;
|
||||||
nodeTable[idx1]["signal"] = iter->title;
|
nodeTable[idx1]["signal"] = iter->title;
|
||||||
}
|
}
|
||||||
|
|
||||||
idx1++;
|
idx1++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -130,17 +130,20 @@ typedef struct __slaveAddress
|
||||||
std::string device_name_chn; // " : "温湿度", 该寄存器数组代表的设备名称
|
std::string device_name_chn; // " : "温湿度", 该寄存器数组代表的设备名称
|
||||||
std::string device_name_eng; // " : "温湿度", 该寄存器数组代表的设备名称,英文
|
std::string device_name_eng; // " : "温湿度", 该寄存器数组代表的设备名称,英文
|
||||||
|
|
||||||
|
//参考slave_define.h
|
||||||
//标识本地址的数据是哪一个类型的设备
|
//标识本地址的数据是哪一个类型的设备
|
||||||
/*
|
/*
|
||||||
PANEL_TEMPERATURE = 1,
|
PANEL_TEMPERATURE = 1, //温度传感器
|
||||||
PANEL_BATTERY = 2,
|
PANEL_BATTERY = 2, //电池Pack
|
||||||
PANEL_POWER = 3,
|
PANEL_DCPOWER = 3, //直流电源
|
||||||
PANEL_AC = 4,
|
PANEL_ACFAN = 4, //空调风扇
|
||||||
PANEL_PV = 5,
|
PANEL_PV = 5, //太阳能
|
||||||
PANEL_ALARM = 6,
|
PANEL_ALARM = 6, //告警
|
||||||
PANEL_INVERTER = 7,
|
PANEL_INVERTER = 7, //逆变器整流器
|
||||||
PANEL_OTHER = 88,
|
PANEL_ACPOWER = 8, //交流电源
|
||||||
PANEL_HOME = 99,
|
PANEL_OTHER = 88, //其它
|
||||||
|
PANEL_HOME = 99, //传感器,水浸门禁
|
||||||
|
} PanelType;
|
||||||
* */
|
* */
|
||||||
int device_type;
|
int device_type;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue