|
@@ -3,7 +3,7 @@
|
|
|
|
|
|
#include "../ytUserInfoProcess/userinfo.h"
|
|
|
#include "../DataPrecessDog/dataprecess.h"
|
|
|
-//#include "waterMk01.h"
|
|
|
+#include "waterMk01.h"
|
|
|
|
|
|
#define comm_debug
|
|
|
#define UN_REFERENCED_PARAMETER(x) {(x) = (x);}
|
|
@@ -12,7 +12,6 @@
|
|
|
MKCore::MKCore(QObject *parent) :
|
|
|
QObject(parent)
|
|
|
{
|
|
|
- c = NULL;
|
|
|
logThread = new LogThread(this);
|
|
|
dbThread = new DatabaseThread(this);
|
|
|
timer = new QTimer(this);
|
|
@@ -48,25 +47,12 @@ MKCore::MKCore(QObject *parent) :
|
|
|
logThread->start();
|
|
|
mqttinfoIdx = 1;
|
|
|
mqttalarmIdx = 1;
|
|
|
- redisconnected=-1;
|
|
|
-
|
|
|
-
|
|
|
- if(redisconnected==-1){
|
|
|
- redisconnected=redis_init();
|
|
|
- if(redisconnected==-1){
|
|
|
- printf("redis init failed\n");
|
|
|
- }
|
|
|
- redis_save(AUTH);
|
|
|
- redis_save(DBID);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
MKCore::~MKCore()
|
|
|
{
|
|
|
logThread->stop();
|
|
|
dbThread->stop();
|
|
|
- redis_free();
|
|
|
- redisconnected = -1;
|
|
|
}
|
|
|
|
|
|
void MKCore::mqttConnect(QString ip,QString port,QString name,QString passwd)
|
|
@@ -151,17 +137,18 @@ void MKCore::getOnLine(QString deviceidx,bool flag, QDateTime t)
|
|
|
|
|
|
if(flag)
|
|
|
{
|
|
|
- if(redis_int((QString("hexists sp_owner8-%1 devicecode").arg(deviceidx)).toUtf8()) == 1){
|
|
|
- if(QString("0x01").compare(redis_qstring((QString("hget sp_owner8-%1 enabled").arg(deviceidx)).toUtf8()))!=0)
|
|
|
- return;
|
|
|
-
|
|
|
- redis_save((QString("hset sp_owner8-%1 lastcommtime %2").arg(deviceidx).arg(t.toTime_t())).toUtf8());
|
|
|
- if(QString("0x01").compare(redis_qstring((QString("hget sp_owner8-%1 onlineflag").arg(deviceidx)).toUtf8()))!=0)
|
|
|
- {
|
|
|
- redis_save((QString("hset sp_owner8-%1 onlineflag 0x01").arg(deviceidx)).toUtf8());
|
|
|
+ for(int i=0;i<10240;i++){
|
|
|
+ if(QString::compare(deviceidx,QString(mkList->sensors[i].Device_Code))==0){
|
|
|
+ if(mkList->sensors[i].Enabled!=0x01)
|
|
|
+ return;
|
|
|
+ mkList->sensors[i].LastCommtime = t.toTime_t();
|
|
|
+ if(mkList->sensors[i].Online_Flag!=0x01)
|
|
|
+ {
|
|
|
+ mkList->sensors[i].Online_Flag = 0x01;
|
|
|
+ }
|
|
|
+ dbThread->appendSql(QString("update sp_devices_status set devicestatus=0, true_status=0, statustime='%1', lastcommtime='%1' where deviceid='%2'")
|
|
|
+ .arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(deviceidx),1);
|
|
|
}
|
|
|
- dbThread->appendSql(QString("update sp_devices_status set devicestatus=0, true_status=0, statustime='%1', lastcommtime='%1' where deviceid='%2'")
|
|
|
- .arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(deviceidx),1);
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -240,20 +227,14 @@ void MKCore::AlarmReport(QString addr, quint64 insertid, QString type, QString t
|
|
|
QString phonelist = "";
|
|
|
QString companyCode = "",eventCode = "",evt = "";
|
|
|
QString deviceType= "",deviceName= "";//设备类型
|
|
|
-
|
|
|
-
|
|
|
-// for(int i=0;i<10240;i++){
|
|
|
-// if(QString::compare(QString(mkList->sensors[i].Device_Code),addr)==0){
|
|
|
-// companyCode = QString(mkList->sensors[i].Company_Code);
|
|
|
-// deviceType = QString(mkList->sensors[i].Device_Type);
|
|
|
-// deviceName = QString(mkList->sensors[i].Device_Name);
|
|
|
-// break;
|
|
|
-// }
|
|
|
-// }
|
|
|
- companyCode = redis_qstring((QString("hget sp_owner8-%1 companycode").arg(addr)).toUtf8());
|
|
|
- deviceType = redis_qstring((QString("hget sp_owner8-%1 devicetype").arg(addr)).toUtf8());
|
|
|
- deviceName = redis_qstring((QString("hget sp_owner8-%1 devicename").arg(addr)).toUtf8());
|
|
|
-
|
|
|
+ for(int i=0;i<10240;i++){
|
|
|
+ if(QString::compare(QString(mkList->sensors[i].Device_Code),addr)==0){
|
|
|
+ companyCode = QString(mkList->sensors[i].Company_Code);
|
|
|
+ deviceType = QString(mkList->sensors[i].Device_Type);
|
|
|
+ deviceName = QString(mkList->sensors[i].Device_Name);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
// QString rep2 = QString("{\"SubType\":2,\"DeviceId\":\"%1\",\"InsertId\":%2,\"Confirmed\":0,\"CompanyCode\":\"%3\",\"evt_name\":\"%4\",\"evt\":0,\"alarm_time\":\"%5\"}")
|
|
|
// .arg(addr).arg(insertid).arg(companyCode).arg(type).arg(time);
|
|
|
// wssThread[repcur]->appendData(rep2);
|
|
@@ -290,11 +271,16 @@ void MKCore::AlarmReport(QString addr, quint64 insertid, QString type, QString t
|
|
|
wxThreads[2][wxcur&0x0f]->appendData(data1);//井盖告警微信推送
|
|
|
wxcur++;
|
|
|
wxcur &= 0x0f;
|
|
|
+
|
|
|
+ QString rep = QString("{\"SubType\":128,\"DeviceId\":\"%1\",\"InsertId\":%2,\"Confirmed\":false}").arg(addr).arg(insertid);
|
|
|
+ repThread[repcur]->appendData(rep);
|
|
|
+
|
|
|
QString rep2 = QString("{\"SubType\":65535,\"DeviceId\":\"%1\",\"InsertId\":%2,\"Confirmed\":0,\"CompanyCode\":\"%3\",\"evt_name\":\"%4\",\"evt\":\"%6\",\"EventCode\":\"%6\",\"alarm_time\":\"%5\"}")
|
|
|
.arg(addr).arg(insertid).arg(companyCode).arg(type).arg(time).arg(evt);
|
|
|
printf("rep2:%s\n",rep2.toUtf8().data());
|
|
|
wssThread[repcur++]->appendData(rep2);
|
|
|
repcur &= 0x0f;
|
|
|
+
|
|
|
}
|
|
|
}else {
|
|
|
QString rep = QString("{\"SubType\":2,\"DeviceId\":\"%1\",\"InsertId\":%2,\"Confirmed\":false}").arg(addr).arg(insertid);
|
|
@@ -348,18 +334,20 @@ void MKCore::checkDevice(QString deviceid)
|
|
|
{
|
|
|
if((DevIdx3>=0)&&(DevIdx3<10240))
|
|
|
{
|
|
|
- if(redis_int((QString("hexists sp_owner8-%1 devicecode").arg(deviceid)).toUtf8())==0)
|
|
|
+ if(QString::compare(deviceid,QString(mkList->sensors[DevIdx3].Device_Code))!=0)
|
|
|
{
|
|
|
DevIdx3 = -1;
|
|
|
DeviceID3 = "";
|
|
|
}
|
|
|
}else{
|
|
|
- if(redis_int((QString("hexists sp_owner8-%1 devicecode").arg(deviceid)).toUtf8())==1)
|
|
|
+ for(int i=0;i<10240;i++)
|
|
|
{
|
|
|
- QString row = redis_qstring((QString("hget sp_owner8-%1 row").arg(deviceid)).toUtf8());
|
|
|
- DevIdx3 = row.toInt();
|
|
|
- printf("----------- row.toInt() = %d, deviceid = %s\n",DevIdx3,deviceid.toUtf8().data());
|
|
|
- DeviceID3 = deviceid;
|
|
|
+ if(QString::compare(deviceid,QString(mkList->sensors[i].Device_Code))==0)
|
|
|
+ {
|
|
|
+ DevIdx3 = i;
|
|
|
+ DeviceID3 = QString(mkList->sensors[i].Device_Code);
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
getCommData(QString("DevIdx3=====:%1").arg(DevIdx3));
|
|
@@ -484,10 +472,11 @@ void MKCore::check_cover_framedata(QJsonObject jPayload, QString deviceId, long
|
|
|
QJsonObject hsData1,hsData,hsData21,hsData20;
|
|
|
QJsonArray flucDatas,flucDatas1,flucDatas20,flucDatas21;
|
|
|
QJsonObject hsData2,hsData3,hsData4,hsData5,hsData6;
|
|
|
- if(redis_int((QString("hexists sp_owner8-%1 devicecode").arg(deviceId)).toUtf8())==1){
|
|
|
+ for(int i=0;i<10240;i++){
|
|
|
+ if(QString::compare(QString(mkList->sensors[i].Device_Code),deviceId)==0){
|
|
|
hsData1.insert("devId", deviceId);
|
|
|
hsData1.insert("connType", "N");
|
|
|
- hsData1.insert("deviceName", redis_qstring((QString("hget sp_owner8-%1 devicename").arg(deviceId)).toUtf8()));
|
|
|
+ hsData1.insert("deviceName", mkList->sensors[i].Device_Name);
|
|
|
hsData2.insert("property", "电量");
|
|
|
hsData2.insert("serial", "12801");
|
|
|
hsData2.insert("value", (QString::number(battery_voltage,'f',4)).toDouble());
|
|
@@ -509,7 +498,7 @@ void MKCore::check_cover_framedata(QJsonObject jPayload, QString deviceId, long
|
|
|
flucDatas1.append(hsData5);
|
|
|
flucDatas1.append(hsData6);
|
|
|
hsData.insert("dp", flucDatas1);
|
|
|
- hsData.insert("deviceName", redis_qstring((QString("hget sp_owner8-%1 devicename").arg(deviceId)).toUtf8()));
|
|
|
+ hsData.insert("deviceName", mkList->sensors[i].Device_Name);
|
|
|
QString dataTimeStamp1=QString("%1").arg(etime);
|
|
|
hsData.insert("timeStamp", dataTimeStamp1);
|
|
|
hsData.insert("deviceType", "22");
|
|
@@ -522,18 +511,20 @@ void MKCore::check_cover_framedata(QJsonObject jPayload, QString deviceId, long
|
|
|
QString dataMqtt = QString(QJsonDocument(hsData1).toJson());
|
|
|
if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
|
|
|
QString companyCode = "";
|
|
|
- QString infoTopic = QString("/usky/ytDP0008/%1/%2/info").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(deviceId)).toUtf8())).arg(deviceId);
|
|
|
+ QString infoTopic = QString("/usky/ytDP0008/%1/%2/info").arg(mkList->sensors[i].Company_Code).arg(deviceId);
|
|
|
m_client->publish(QMQTT::Message(mqttinfoIdx++,infoTopic,dataMqtt.toUtf8()));
|
|
|
|
|
|
if(mqttinfoIdx>9999)
|
|
|
mqttinfoIdx = 1;
|
|
|
}else if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
|
|
|
m_client->connectToHost();
|
|
|
- QString infoTopic = QString("/usky/ytDP0008/%1/%2/info").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(deviceId)).toUtf8())).arg(deviceId);
|
|
|
+ QString infoTopic = QString("/usky/ytDP0008/%1/%2/info").arg(mkList->sensors[i].Company_Code).arg(deviceId);
|
|
|
m_client->publish(QMQTT::Message(mqttinfoIdx++,infoTopic,dataMqtt.toUtf8()));
|
|
|
|
|
|
- if(mqttinfoIdx>9999)
|
|
|
- mqttinfoIdx = 1;
|
|
|
+ if(mqttinfoIdx>9999)
|
|
|
+ mqttinfoIdx = 1;
|
|
|
+ }
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -644,10 +635,11 @@ void MKCore::check_framedata(QString data, QString jDevicecode, QString ip)
|
|
|
QString bjstr = "";
|
|
|
QJsonObject hsData1,hsData,hsData21,hsData20;
|
|
|
QJsonArray flucDatas,flucDatas1,flucDatas20,flucDatas21;
|
|
|
- if(redis_int((QString("hexists sp_owner8-%1 devicecode").arg(jDevicecode)).toUtf8())==1){
|
|
|
+ for(int i=0;i<10240;i++){
|
|
|
+ if(QString::compare(QString(mkList->sensors[i].Device_Code),jDevicecode)==0){
|
|
|
hsData1.insert("devId", jDevicecode);
|
|
|
hsData1.insert("connType", "N");
|
|
|
- hsData1.insert("deviceName", redis_qstring((QString("hget sp_owner8-%1 devicename").arg(jDevicecode)).toUtf8()));
|
|
|
+ hsData1.insert("deviceName", mkList->sensors[i].Device_Name);
|
|
|
if(deviceStatus==0){
|
|
|
QJsonObject hsData2,hsData3,hsData4,hsData5,hsData6;
|
|
|
hsData2.insert("property", "电量");
|
|
@@ -671,7 +663,7 @@ void MKCore::check_framedata(QString data, QString jDevicecode, QString ip)
|
|
|
flucDatas1.append(hsData5);
|
|
|
flucDatas1.append(hsData6);
|
|
|
hsData.insert("dp", flucDatas1);
|
|
|
- hsData.insert("deviceName", redis_qstring((QString("hget sp_owner8-%1 devicename").arg(jDevicecode)).toUtf8()));
|
|
|
+ hsData.insert("deviceName", mkList->sensors[i].Device_Name);
|
|
|
QString dataTimeStamp1=QString("%1").arg(dataTimeStamp);
|
|
|
hsData.insert("timeStamp", dataTimeStamp1);
|
|
|
hsData.insert("deviceType", "22");
|
|
@@ -684,14 +676,14 @@ void MKCore::check_framedata(QString data, QString jDevicecode, QString ip)
|
|
|
QString dataMqtt = QString(QJsonDocument(hsData1).toJson());
|
|
|
if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
|
|
|
QString companyCode = "";
|
|
|
- QString infoTopic = QString("/usky/ytDP0008/%1/%2/info").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
+ QString infoTopic = QString("/usky/ytDP0008/%1/%2/info").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
m_client->publish(QMQTT::Message(mqttinfoIdx++,infoTopic,dataMqtt.toUtf8()));
|
|
|
|
|
|
if(mqttinfoIdx>9999)
|
|
|
mqttinfoIdx = 1;
|
|
|
}else if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
|
|
|
m_client->connectToHost();
|
|
|
- QString infoTopic = QString("/usky/ytDP0008/%1/%2/info").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
+ QString infoTopic = QString("/usky/ytDP0008/%1/%2/info").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
m_client->publish(QMQTT::Message(mqttinfoIdx++,infoTopic,dataMqtt.toUtf8()));
|
|
|
|
|
|
if(mqttinfoIdx>9999)
|
|
@@ -719,7 +711,7 @@ void MKCore::check_framedata(QString data, QString jDevicecode, QString ip)
|
|
|
flucDatas21.append(hsData24);
|
|
|
flucDatas21.append(hsData25);
|
|
|
hsData20.insert("dp", flucDatas21);
|
|
|
- hsData20.insert("deviceName", redis_qstring((QString("hget sp_owner8-%1 devicename").arg(jDevicecode)).toUtf8()));
|
|
|
+ hsData20.insert("deviceName", mkList->sensors[i].Device_Name);
|
|
|
QString dataTimeStamp21=QString("%1").arg(dataTimeStamp);
|
|
|
hsData20.insert("timeStamp", dataTimeStamp21);
|
|
|
hsData20.insert("deviceType", 22);
|
|
@@ -732,14 +724,14 @@ void MKCore::check_framedata(QString data, QString jDevicecode, QString ip)
|
|
|
QString data2Mqtt = QString(QJsonDocument(hsData21).toJson());
|
|
|
if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
|
|
|
QString companyCode = "";
|
|
|
- QString infoTopic = QString("/usky/%1/%2/info").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
+ QString infoTopic = QString("/usky/%1/%2/info").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
m_client->publish(QMQTT::Message(mqttinfoIdx++,infoTopic,data2Mqtt.toUtf8()));
|
|
|
|
|
|
if(mqttinfoIdx>9999)
|
|
|
mqttinfoIdx = 1;
|
|
|
}else if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
|
|
|
m_client->connectToHost();
|
|
|
- QString infoTopic = QString("/usky/%1/%2/info").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
+ QString infoTopic = QString("/usky/%1/%2/info").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
m_client->publish(QMQTT::Message(mqttinfoIdx++,infoTopic,data2Mqtt.toUtf8()));
|
|
|
|
|
|
if(mqttinfoIdx>9999)
|
|
@@ -861,7 +853,7 @@ void MKCore::check_framedata(QString data, QString jDevicecode, QString ip)
|
|
|
getOnLine(jDevicecode,true,dataTime);
|
|
|
}
|
|
|
hsData.insert("dp", flucDatas1);
|
|
|
- hsData.insert("deviceName", redis_qstring((QString("hget sp_owner8-%1 devicename").arg(jDevicecode)).toUtf8()));
|
|
|
+ hsData.insert("deviceName", mkList->sensors[i].Device_Name);
|
|
|
QString dataTimeStamp1=QString("%1").arg(dataTimeStamp);
|
|
|
hsData.insert("timeStamp", dataTimeStamp1);
|
|
|
hsData.insert("deviceType", "22");
|
|
@@ -883,136 +875,138 @@ void MKCore::check_framedata(QString data, QString jDevicecode, QString ip)
|
|
|
// if(mqttIdx>9999)
|
|
|
// mqttIdx = 1;
|
|
|
// }
|
|
|
- QString dataMqtt = QString(QJsonDocument(hsData1).toJson());
|
|
|
- if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
|
|
|
- QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
- m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,dataMqtt.toUtf8()));
|
|
|
- if(mqttalarmIdx>9999)
|
|
|
- mqttalarmIdx = 1;
|
|
|
- }else if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
|
|
|
- m_client->connectToHost();
|
|
|
- QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
- m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,dataMqtt.toUtf8()));
|
|
|
- if(mqttalarmIdx>9999)
|
|
|
- mqttalarmIdx = 1;
|
|
|
- }
|
|
|
+ QString dataMqtt = QString(QJsonDocument(hsData1).toJson());
|
|
|
+ if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
|
|
|
+ QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
+ m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,dataMqtt.toUtf8()));
|
|
|
+ if(mqttalarmIdx>9999)
|
|
|
+ mqttalarmIdx = 1;
|
|
|
+ }else if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
|
|
|
+ m_client->connectToHost();
|
|
|
+ QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
+ m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,dataMqtt.toUtf8()));
|
|
|
+ if(mqttalarmIdx>9999)
|
|
|
+ mqttalarmIdx = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if(str==1){
|
|
|
+ QJsonObject hsData2;
|
|
|
+ hsData2.insert("property", "液位下限报警");
|
|
|
+ hsData2.insert("serial", 3);
|
|
|
+ hsData2.insert("value", dataNow1);
|
|
|
+ hsData2.insert("status", 0);
|
|
|
+ flucDatas21.append(hsData2);
|
|
|
+ bjstr += "下限报警 ";
|
|
|
+ alarm_state = "下限报警";
|
|
|
+ judge = true;
|
|
|
+ getAlarm(jDevicecode,"MC1",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("低水位"),dataTime);
|
|
|
+ getOnLine(jDevicecode,true,dataTime);
|
|
|
+ }
|
|
|
+ if(str1==1){
|
|
|
+ QJsonObject hsData2;
|
|
|
+ hsData2.insert("property", "液位上限报警");
|
|
|
+ hsData2.insert("serial", 3);
|
|
|
+ hsData2.insert("value", dataNow1);
|
|
|
+ hsData2.insert("status", 0);
|
|
|
+ flucDatas21.append(hsData2);
|
|
|
+ bjstr += "上限报警 ";
|
|
|
+ alarm_state = "上限报警";
|
|
|
+ judge = true;
|
|
|
+ getAlarm(jDevicecode,"MC2",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("高水位"),dataTime);
|
|
|
+ getOnLine(jDevicecode,true,dataTime);
|
|
|
+ }
|
|
|
+ if(str2==1){
|
|
|
+ QJsonObject hsData2;
|
|
|
+ hsData2.insert("property", "电池电量报警");
|
|
|
+ hsData2.insert("serial", 4);
|
|
|
+ hsData2.insert("value", batteryLevel);
|
|
|
+ hsData2.insert("status", 0);
|
|
|
+ flucDatas21.append(hsData2);
|
|
|
+ bjstr += "电量报警 ";
|
|
|
+ alarm_state = "电量报警";
|
|
|
+ judge = true;
|
|
|
+ getAlarm(jDevicecode,"MC3",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("电量报警"),dataTime);
|
|
|
+ getOnLine(jDevicecode,true,dataTime);
|
|
|
+ }
|
|
|
+ if(str3==1){
|
|
|
+ QJsonObject hsData2;
|
|
|
+ hsData2.insert("property", "传感器异常");
|
|
|
+ hsData2.insert("serial", 32);
|
|
|
+ hsData2.insert("value", 1);
|
|
|
+ hsData2.insert("status", 0);
|
|
|
+ flucDatas21.append(hsData2);
|
|
|
+ bjstr += "传感器异常 ";
|
|
|
+ alarm_state = "传感器异常";
|
|
|
+ judge = true;
|
|
|
+ getAlarm(jDevicecode,"MC3",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("传感器异常"),dataTime);
|
|
|
+ getOnLine(jDevicecode,true,dataTime);
|
|
|
+ }
|
|
|
+ if(str7==1){
|
|
|
+ QJsonObject hsData2;
|
|
|
+ hsData2.insert("property", "井盖状态");
|
|
|
+ hsData2.insert("serial", 2);
|
|
|
+ hsData2.insert("value", 1);
|
|
|
+ hsData2.insert("status", 0);
|
|
|
+ flucDatas21.append(hsData2);
|
|
|
+ bjstr += "井盖开启 ";
|
|
|
+ alarm_state = "井盖开启";
|
|
|
+ judge = true;
|
|
|
+ getAlarm(jDevicecode,"MC4",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("井盖开启"),dataTime);
|
|
|
+ getOnLine(jDevicecode,true,dataTime);
|
|
|
+ }
|
|
|
+ if(str4==1){
|
|
|
+ bjstr += "网关连接异常 ";
|
|
|
+ alarm_state = "网关连接异常";
|
|
|
+ judge = true;
|
|
|
+ getAlarm(jDevicecode,"MC5",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("网关连接异常"),dataTime);
|
|
|
+ getOnLine(jDevicecode,true,dataTime);
|
|
|
+ }
|
|
|
+ if(str5==1){
|
|
|
+ bjstr += "第二传感器下限报警 ";
|
|
|
+ alarm_state = "第二传感器下限报警";
|
|
|
+ judge = true;
|
|
|
+ getAlarm(jDevicecode,"MC6",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("第二传感器下限报警"),dataTime);
|
|
|
+ getOnLine(jDevicecode,true,dataTime);
|
|
|
+ }
|
|
|
+ if(str6==1){
|
|
|
+ bjstr += "第二传感器上限报警 ";
|
|
|
+ alarm_state = "第二传感器上限报警";
|
|
|
+ judge = true;
|
|
|
+ getAlarm(jDevicecode,"MC7",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("第二传感器上限报警"),dataTime);
|
|
|
+ getOnLine(jDevicecode,true,dataTime);
|
|
|
+ }
|
|
|
+ hsData20.insert("dp", flucDatas21);
|
|
|
+ hsData20.insert("deviceName", mkList->sensors[i].Device_Name);
|
|
|
+ QString dataTimeStamp21=QString("%1").arg(dataTimeStamp);
|
|
|
+ hsData20.insert("timeStamp", dataTimeStamp21);
|
|
|
+ hsData20.insert("deviceType", 22);
|
|
|
+ hsData20.insert("deviceModel", "MEOKON");
|
|
|
+ hsData20.insert("devId", jDevicecode);
|
|
|
+ flucDatas20.append(hsData20);
|
|
|
+ hsData21.insert("alarms", flucDatas20);
|
|
|
+ hsData21.insert("type", "ALARM");
|
|
|
+ hsData21.insert("timeStamp", dataTimeStamp21);
|
|
|
+ QString data2Mqtt = QString(QJsonDocument(hsData21).toJson());
|
|
|
+ if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
|
|
|
+ QString topic = QString("/usky/%1/%2/alarm").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
+ m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,data2Mqtt.toUtf8()));
|
|
|
+ if(mqttalarmIdx>9999)
|
|
|
+ mqttalarmIdx = 1;
|
|
|
+ }else if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
|
|
|
+ m_client->connectToHost();
|
|
|
+ QString topic = QString("/usky/%1/%2/alarm").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
+ m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,data2Mqtt.toUtf8()));
|
|
|
+ if(mqttalarmIdx>9999)
|
|
|
+ mqttalarmIdx = 1;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- if(str==1){
|
|
|
- QJsonObject hsData2;
|
|
|
- hsData2.insert("property", "液位下限报警");
|
|
|
- hsData2.insert("serial", 3);
|
|
|
- hsData2.insert("value", dataNow1);
|
|
|
- hsData2.insert("status", 0);
|
|
|
- flucDatas21.append(hsData2);
|
|
|
- bjstr += "下限报警 ";
|
|
|
- alarm_state = "下限报警";
|
|
|
- judge = true;
|
|
|
- getAlarm(jDevicecode,"MC1",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("低水位"),dataTime);
|
|
|
- getOnLine(jDevicecode,true,dataTime);
|
|
|
- }
|
|
|
- if(str1==1){
|
|
|
- QJsonObject hsData2;
|
|
|
- hsData2.insert("property", "液位上限报警");
|
|
|
- hsData2.insert("serial", 3);
|
|
|
- hsData2.insert("value", dataNow1);
|
|
|
- hsData2.insert("status", 0);
|
|
|
- flucDatas21.append(hsData2);
|
|
|
- bjstr += "上限报警 ";
|
|
|
- alarm_state = "上限报警";
|
|
|
- judge = true;
|
|
|
- getAlarm(jDevicecode,"MC2",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("高水位"),dataTime);
|
|
|
- getOnLine(jDevicecode,true,dataTime);
|
|
|
- }
|
|
|
- if(str2==1){
|
|
|
- QJsonObject hsData2;
|
|
|
- hsData2.insert("property", "电池电量报警");
|
|
|
- hsData2.insert("serial", 4);
|
|
|
- hsData2.insert("value", batteryLevel);
|
|
|
- hsData2.insert("status", 0);
|
|
|
- flucDatas21.append(hsData2);
|
|
|
- bjstr += "电量报警 ";
|
|
|
- alarm_state = "电量报警";
|
|
|
- judge = true;
|
|
|
- getAlarm(jDevicecode,"MC3",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("电量报警"),dataTime);
|
|
|
- getOnLine(jDevicecode,true,dataTime);
|
|
|
- }
|
|
|
- if(str3==1){
|
|
|
- QJsonObject hsData2;
|
|
|
- hsData2.insert("property", "传感器异常");
|
|
|
- hsData2.insert("serial", 32);
|
|
|
- hsData2.insert("value", 1);
|
|
|
- hsData2.insert("status", 0);
|
|
|
- flucDatas21.append(hsData2);
|
|
|
- bjstr += "传感器异常 ";
|
|
|
- alarm_state = "传感器异常";
|
|
|
- judge = true;
|
|
|
- getAlarm(jDevicecode,"MC3",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("传感器异常"),dataTime);
|
|
|
- getOnLine(jDevicecode,true,dataTime);
|
|
|
- }
|
|
|
- if(str7==1){
|
|
|
- QJsonObject hsData2;
|
|
|
- hsData2.insert("property", "井盖状态");
|
|
|
- hsData2.insert("serial", 2);
|
|
|
- hsData2.insert("value", 1);
|
|
|
- hsData2.insert("status", 0);
|
|
|
- flucDatas21.append(hsData2);
|
|
|
- bjstr += "井盖开启 ";
|
|
|
- alarm_state = "井盖开启";
|
|
|
- judge = true;
|
|
|
- getAlarm(jDevicecode,"MC4",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("井盖开启"),dataTime);
|
|
|
- getOnLine(jDevicecode,true,dataTime);
|
|
|
- }
|
|
|
- if(str4==1){
|
|
|
- bjstr += "网关连接异常 ";
|
|
|
- alarm_state = "网关连接异常";
|
|
|
- judge = true;
|
|
|
- getAlarm(jDevicecode,"MC5",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("网关连接异常"),dataTime);
|
|
|
- getOnLine(jDevicecode,true,dataTime);
|
|
|
- }
|
|
|
- if(str5==1){
|
|
|
- bjstr += "第二传感器下限报警 ";
|
|
|
- alarm_state = "第二传感器下限报警";
|
|
|
- judge = true;
|
|
|
- getAlarm(jDevicecode,"MC6",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("第二传感器下限报警"),dataTime);
|
|
|
- getOnLine(jDevicecode,true,dataTime);
|
|
|
- }
|
|
|
- if(str6==1){
|
|
|
- bjstr += "第二传感器上限报警 ";
|
|
|
- alarm_state = "第二传感器上限报警";
|
|
|
- judge = true;
|
|
|
- getAlarm(jDevicecode,"MC7",batteryLevel,signal,dataNow1,ip,QString::fromUtf8("第二传感器上限报警"),dataTime);
|
|
|
- getOnLine(jDevicecode,true,dataTime);
|
|
|
- }
|
|
|
- hsData20.insert("dp", flucDatas21);
|
|
|
- hsData20.insert("deviceName", redis_qstring((QString("hget sp_owner8-%1 devicename").arg(jDevicecode)).toUtf8()));
|
|
|
- QString dataTimeStamp21=QString("%1").arg(dataTimeStamp);
|
|
|
- hsData20.insert("timeStamp", dataTimeStamp21);
|
|
|
- hsData20.insert("deviceType", 22);
|
|
|
- hsData20.insert("deviceModel", "MEOKON");
|
|
|
- hsData20.insert("devId", jDevicecode);
|
|
|
- flucDatas20.append(hsData20);
|
|
|
- hsData21.insert("alarms", flucDatas20);
|
|
|
- hsData21.insert("type", "ALARM");
|
|
|
- hsData21.insert("timeStamp", dataTimeStamp21);
|
|
|
- QString data2Mqtt = QString(QJsonDocument(hsData21).toJson());
|
|
|
- if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
|
|
|
- QString topic = QString("/usky/%1/%2/alarm").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
- m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,data2Mqtt.toUtf8()));
|
|
|
- if(mqttalarmIdx>9999)
|
|
|
- mqttalarmIdx = 1;
|
|
|
- }else if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
|
|
|
- m_client->connectToHost();
|
|
|
- QString topic = QString("/usky/%1/%2/alarm").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
- m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,data2Mqtt.toUtf8()));
|
|
|
- if(mqttalarmIdx>9999)
|
|
|
- mqttalarmIdx = 1;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
}else{
|
|
@@ -1024,10 +1018,11 @@ void MKCore::check_framedata(QString data, QString jDevicecode, QString ip)
|
|
|
QJsonObject hsData1,hsData;
|
|
|
QJsonArray flucDatas,flucDatas1;
|
|
|
|
|
|
- if(redis_int((QString("hexists sp_owner8-%1 devicecode").arg(jDevicecode)).toUtf8())==1){
|
|
|
- hsData1.insert("devId", jDevicecode);
|
|
|
- hsData1.insert("connType", "N");
|
|
|
- hsData1.insert("deviceName", redis_qstring((QString("hget sp_owner8-%1 devicename").arg(jDevicecode)).toUtf8()));
|
|
|
+ for(int i=0;i<10240;i++){
|
|
|
+ if(QString::compare(QString(mkList->sensors[i].Device_Code),jDevicecode)==0){
|
|
|
+ hsData1.insert("devId", jDevicecode);
|
|
|
+ hsData1.insert("connType", "N");
|
|
|
+ hsData1.insert("deviceName", mkList->sensors[i].Device_Name);
|
|
|
|
|
|
QString bjstr = "";
|
|
|
if (deviceStatus == 0) {
|
|
@@ -1073,35 +1068,35 @@ void MKCore::check_framedata(QString data, QString jDevicecode, QString ip)
|
|
|
hsData5.insert("serial", "504");
|
|
|
hsData5.insert("value", "LL0");
|
|
|
|
|
|
- getOnLine(jDevicecode,true,dataTime);
|
|
|
- }
|
|
|
- flucDatas1.append(hsData2);
|
|
|
- flucDatas1.append(hsData3);
|
|
|
- flucDatas1.append(hsData4);
|
|
|
- flucDatas1.append(hsData5);
|
|
|
- hsData.insert("dp", flucDatas1);
|
|
|
- hsData.insert("deviceName", redis_qstring((QString("hget sp_owner8-%1 devicename").arg(jDevicecode)).toUtf8()));
|
|
|
- QString dataTimeStamp1=QString("%1").arg(dataTimeStamp);
|
|
|
- hsData.insert("timeStamp", dataTimeStamp1);
|
|
|
- hsData.insert("deviceType", redis_qstring((QString("hget sp_owner8-%1 devicetype").arg(jDevicecode)).toUtf8()));
|
|
|
- hsData.insert("deviceModel", "");
|
|
|
- hsData.insert("devId", jDevicecode);
|
|
|
- flucDatas.append(hsData);
|
|
|
- hsData1.insert("devs", flucDatas);
|
|
|
- hsData1.insert("type", "INFO");
|
|
|
- hsData1.insert("timeStamp", dataTimeStamp1);
|
|
|
- QString dataMqtt = QString(QJsonDocument(hsData1).toJson());
|
|
|
- if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
|
|
|
- QString companyCode = "";
|
|
|
- QString infoTopic = QString("/usky/ytDP0008/%1/%2/info").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
- m_client->publish(QMQTT::Message(mqttinfoIdx++,infoTopic,dataMqtt.toUtf8()));
|
|
|
-
|
|
|
- if(mqttinfoIdx>9999)
|
|
|
- mqttinfoIdx = 1;
|
|
|
- }else if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
|
|
|
- m_client->connectToHost();
|
|
|
- QString infoTopic = QString("/usky/ytDP0008/%1/%2/info").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
- m_client->publish(QMQTT::Message(mqttinfoIdx++,infoTopic,dataMqtt.toUtf8()));
|
|
|
+ getOnLine(jDevicecode,true,dataTime);
|
|
|
+ }
|
|
|
+ flucDatas1.append(hsData2);
|
|
|
+ flucDatas1.append(hsData3);
|
|
|
+ flucDatas1.append(hsData4);
|
|
|
+ flucDatas1.append(hsData5);
|
|
|
+ hsData.insert("dp", flucDatas1);
|
|
|
+ hsData.insert("deviceName", mkList->sensors[i].Device_Name);
|
|
|
+ QString dataTimeStamp1=QString("%1").arg(dataTimeStamp);
|
|
|
+ hsData.insert("timeStamp", dataTimeStamp1);
|
|
|
+ hsData.insert("deviceType", mkList->sensors[i].Device_Type);
|
|
|
+ hsData.insert("deviceModel", "");
|
|
|
+ hsData.insert("devId", jDevicecode);
|
|
|
+ flucDatas.append(hsData);
|
|
|
+ hsData1.insert("devs", flucDatas);
|
|
|
+ hsData1.insert("type", "INFO");
|
|
|
+ hsData1.insert("timeStamp", dataTimeStamp1);
|
|
|
+ QString dataMqtt = QString(QJsonDocument(hsData1).toJson());
|
|
|
+ if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
|
|
|
+ QString companyCode = "";
|
|
|
+ QString infoTopic = QString("/usky/ytDP0008/%1/%2/info").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
+ m_client->publish(QMQTT::Message(mqttinfoIdx++,infoTopic,dataMqtt.toUtf8()));
|
|
|
+
|
|
|
+ if(mqttinfoIdx>9999)
|
|
|
+ mqttinfoIdx = 1;
|
|
|
+ }else if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
|
|
|
+ m_client->connectToHost();
|
|
|
+ QString infoTopic = QString("/usky/ytDP0008/%1/%2/info").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
+ m_client->publish(QMQTT::Message(mqttinfoIdx++,infoTopic,dataMqtt.toUtf8()));
|
|
|
|
|
|
if(mqttinfoIdx>9999)
|
|
|
mqttinfoIdx = 1;
|
|
@@ -1212,38 +1207,41 @@ void MKCore::check_framedata(QString data, QString jDevicecode, QString ip)
|
|
|
}
|
|
|
table.append( QString("bjstr:%1,").arg(bjstr));
|
|
|
|
|
|
- hsData.insert("dp", flucDatas1);
|
|
|
- hsData.insert("deviceName", redis_qstring((QString("hget sp_owner8-%1 devicename").arg(jDevicecode)).toUtf8()));
|
|
|
- QString dataTimeStamp1=QString("%1").arg(dataTimeStamp);
|
|
|
- hsData.insert("timeStamp", dataTimeStamp1);
|
|
|
- hsData.insert("deviceType", redis_qstring((QString("hget sp_owner8-%1 devicetype").arg(jDevicecode)).toUtf8()));
|
|
|
- hsData.insert("deviceModel", "");
|
|
|
- hsData.insert("devId", jDevicecode);
|
|
|
- flucDatas.append(hsData);
|
|
|
- hsData1.insert("alarams", flucDatas);
|
|
|
- hsData1.insert("type", "ALARM");
|
|
|
- hsData1.insert("timeStamp", dataTimeStamp1);
|
|
|
- QString dataMqtt = QString(QJsonDocument(hsData1).toJson());
|
|
|
- if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
|
|
|
- QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
- m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,dataMqtt.toUtf8()));
|
|
|
- if(mqttalarmIdx>9999)
|
|
|
- mqttalarmIdx = 1;
|
|
|
- }else if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
|
|
|
- m_client->connectToHost();
|
|
|
- QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
- m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,dataMqtt.toUtf8()));
|
|
|
- if(mqttalarmIdx>9999)
|
|
|
- mqttalarmIdx = 1;
|
|
|
- }
|
|
|
+ hsData.insert("dp", flucDatas1);
|
|
|
+ hsData.insert("deviceName", mkList->sensors[i].Device_Name);
|
|
|
+ QString dataTimeStamp1=QString("%1").arg(dataTimeStamp);
|
|
|
+ hsData.insert("timeStamp", dataTimeStamp1);
|
|
|
+ hsData.insert("deviceType", mkList->sensors[i].Device_Type);
|
|
|
+ hsData.insert("deviceModel", "");
|
|
|
+ hsData.insert("devId", jDevicecode);
|
|
|
+ flucDatas.append(hsData);
|
|
|
+ hsData1.insert("alarams", flucDatas);
|
|
|
+ hsData1.insert("type", "ALARM");
|
|
|
+ hsData1.insert("timeStamp", dataTimeStamp1);
|
|
|
+ QString dataMqtt = QString(QJsonDocument(hsData1).toJson());
|
|
|
+ if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
|
|
|
+ QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
+ m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,dataMqtt.toUtf8()));
|
|
|
+ if(mqttalarmIdx>9999)
|
|
|
+ mqttalarmIdx = 1;
|
|
|
+ }else if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
|
|
|
+ m_client->connectToHost();
|
|
|
+ QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
+ m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,dataMqtt.toUtf8()));
|
|
|
+ if(mqttalarmIdx>9999)
|
|
|
+ mqttalarmIdx = 1;
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
getCommData(QString("NBtable=====:%1++++++++++++++++++%2----------%3========%4")
|
|
|
.arg(table).arg(dataTimeStamp).arg(myt).arg(deviceStatuser));
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
void MKCore::check_smokedata(QString data, QString ip){
|
|
@@ -1364,10 +1362,11 @@ void MKCore::check_coverdata(QString data, QString ip){
|
|
|
QJsonObject hsData1,hsData,hsData21,hsData20;
|
|
|
QJsonArray flucDatas,flucDatas1,flucDatas20,flucDatas21;
|
|
|
QJsonObject hsData2,hsData3,hsData4,hsData5;
|
|
|
- if(redis_int((QString("hexists sp_owner8-%1 devicecode").arg(jDevicecode)).toUtf8())==1){
|
|
|
+ for(int i=0;i<10240;i++){
|
|
|
+ if(QString::compare(QString(mkList->sensors[i].Device_Code),jDevicecode)==0){
|
|
|
hsData1.insert("devId", jDevicecode);
|
|
|
hsData1.insert("connType", "N");
|
|
|
- hsData1.insert("deviceName", redis_qstring((QString("hget sp_owner8-%1 devicename").arg(jDevicecode)).toUtf8()));
|
|
|
+ hsData1.insert("deviceName", mkList->sensors[i].Device_Name);
|
|
|
hsData2.insert("property", "井盖开启");
|
|
|
hsData2.insert("serial", "12825");
|
|
|
hsData2.insert("value", manhole_cover_position_state);
|
|
@@ -1377,7 +1376,7 @@ void MKCore::check_coverdata(QString data, QString ip){
|
|
|
hsData2.insert("angle", lean_angle);
|
|
|
flucDatas1.append(hsData2);
|
|
|
hsData.insert("dp", flucDatas1);
|
|
|
- hsData.insert("deviceName", redis_qstring((QString("hget sp_owner8-%1 devicename").arg(jDevicecode)).toUtf8()));
|
|
|
+ hsData.insert("deviceName", mkList->sensors[i].Device_Name);
|
|
|
QString dataTimeStamp1=QString("%1").arg(jEventTime);
|
|
|
hsData.insert("timeStamp", dataTimeStamp1);
|
|
|
hsData.insert("deviceType", "22");
|
|
@@ -1389,17 +1388,18 @@ void MKCore::check_coverdata(QString data, QString ip){
|
|
|
hsData1.insert("timeStamp", dataTimeStamp1);
|
|
|
QString dataMqtt = QString(QJsonDocument(hsData1).toJson());
|
|
|
if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
|
|
|
- QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
+ QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,dataMqtt.toUtf8()));
|
|
|
if(mqttalarmIdx>9999)
|
|
|
mqttalarmIdx = 1;
|
|
|
}else if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
|
|
|
m_client->connectToHost();
|
|
|
- QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
+ QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,dataMqtt.toUtf8()));
|
|
|
if(mqttalarmIdx>9999)
|
|
|
mqttalarmIdx = 1;
|
|
|
- }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}else if (serviceId==1004) {
|
|
|
int water_level_state=0;
|
|
@@ -1420,10 +1420,11 @@ void MKCore::check_coverdata(QString data, QString ip){
|
|
|
QJsonObject hsData1,hsData,hsData21,hsData20;
|
|
|
QJsonArray flucDatas,flucDatas1,flucDatas20,flucDatas21;
|
|
|
QJsonObject hsData2,hsData3,hsData4,hsData5;
|
|
|
- if(redis_int((QString("hexists sp_owner8-%1 devicecode").arg(jDevicecode)).toUtf8())==1){
|
|
|
+ for(int i=0;i<10240;i++){
|
|
|
+ if(QString::compare(QString(mkList->sensors[i].Device_Code),jDevicecode)==0){
|
|
|
hsData1.insert("devId", jDevicecode);
|
|
|
hsData1.insert("connType", "N");
|
|
|
- hsData1.insert("deviceName", redis_qstring((QString("hget sp_owner8-%1 devicename").arg(jDevicecode)).toUtf8()));
|
|
|
+ hsData1.insert("deviceName", mkList->sensors[i].Device_Name);
|
|
|
hsData2.insert("property", "满溢告警");
|
|
|
hsData2.insert("serial", "12826");
|
|
|
hsData2.insert("value", water_level_state);
|
|
@@ -1433,7 +1434,7 @@ void MKCore::check_coverdata(QString data, QString ip){
|
|
|
hsData2.insert("angle", "0");
|
|
|
flucDatas1.append(hsData2);
|
|
|
hsData.insert("dp", flucDatas1);
|
|
|
- hsData.insert("deviceName", redis_qstring((QString("hget sp_owner8-%1 devicename").arg(jDevicecode)).toUtf8()));
|
|
|
+ hsData.insert("deviceName", mkList->sensors[i].Device_Name);
|
|
|
QString dataTimeStamp1=QString("%1").arg(jEventTime);
|
|
|
hsData.insert("timeStamp", dataTimeStamp1);
|
|
|
hsData.insert("deviceType", "22");
|
|
@@ -1445,17 +1446,18 @@ void MKCore::check_coverdata(QString data, QString ip){
|
|
|
hsData1.insert("timeStamp", dataTimeStamp1);
|
|
|
QString dataMqtt = QString(QJsonDocument(hsData1).toJson());
|
|
|
if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
|
|
|
- QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
+ QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,dataMqtt.toUtf8()));
|
|
|
if(mqttalarmIdx>9999)
|
|
|
mqttalarmIdx = 1;
|
|
|
}else if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
|
|
|
m_client->connectToHost();
|
|
|
- QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(redis_qstring((QString("hget sp_owner8-%1 companycode").arg(jDevicecode)).toUtf8())).arg(jDevicecode);
|
|
|
+ QString topic = QString("/usky/ytDP0008/%1/%2/alarm").arg(mkList->sensors[i].Company_Code).arg(jDevicecode);
|
|
|
m_client->publish(QMQTT::Message(mqttalarmIdx++,topic,dataMqtt.toUtf8()));
|
|
|
if(mqttalarmIdx>9999)
|
|
|
mqttalarmIdx = 1;
|
|
|
- }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1478,7 +1480,6 @@ void MKCore::check_serverdata(QString data, QString ip){
|
|
|
}
|
|
|
|
|
|
void MKCore::read_data(){
|
|
|
-
|
|
|
QTcpSocket *so = (QTcpSocket *)sender();
|
|
|
QString data = QString(so->readAll());
|
|
|
QDateTime dt = QDateTime::currentDateTime();
|
|
@@ -1486,175 +1487,4 @@ void MKCore::read_data(){
|
|
|
check_serverdata(data, so->peerAddress().toString());
|
|
|
so->write("HTTP/1.1 200 OK\r\nAccess-Control-Allow-Origin: *\r\nContent-type: text/plain\r\n\r\n");
|
|
|
so->close();
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-int MKCore::redis_init()
|
|
|
-{
|
|
|
- c = redisConnect(REDIS_HOST, REDIS_PORT);
|
|
|
- if (NULL == c || c->err) {
|
|
|
- if(c) {
|
|
|
- printf("Redis [%s:%d], Error:[%s]\n", REDIS_HOST, REDIS_PORT, c->errstr);
|
|
|
- redisFree(c);
|
|
|
- } else {
|
|
|
- printf("Redis [%s:%d] failure\n", REDIS_HOST, REDIS_PORT);
|
|
|
- }
|
|
|
- return -1;
|
|
|
- }
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-void MKCore::redis_free()
|
|
|
-{
|
|
|
- if (c) {
|
|
|
- redisFree(c);
|
|
|
- }
|
|
|
- c = NULL;
|
|
|
-}
|
|
|
-
|
|
|
-int MKCore::redis_save(const char *cmd)
|
|
|
-{
|
|
|
- int i = 0;
|
|
|
- redisReply *r = NULL;
|
|
|
- if (NULL == cmd) {
|
|
|
- return -1;
|
|
|
- }
|
|
|
-
|
|
|
- printf("%s, c %p\n", cmd,c);
|
|
|
-
|
|
|
- r = (redisReply *)redisCommand(c, cmd);
|
|
|
- if (NULL == r) {
|
|
|
- printf("Error[%d:%s]", c->err, c->errstr);
|
|
|
- return -1;
|
|
|
- }
|
|
|
-
|
|
|
- switch(r->type) {
|
|
|
- case REDIS_REPLY_STATUS:
|
|
|
- printf("type:%s, reply->len:%ld reply->str:%s\n", "REDIS_REPLY_STATUS", r->len, r->str);
|
|
|
- break;
|
|
|
- case REDIS_REPLY_ERROR:
|
|
|
- printf("type:%s, reply->len:%ld reply->str:%s\n", "REDIS_REPLY_ERROR", r->len, r->str);
|
|
|
- break;
|
|
|
- case REDIS_REPLY_INTEGER:
|
|
|
- printf("type:%s, reply->integer:%lld\n", "REDIS_REPLY_INTEGER", r->integer);
|
|
|
- break;
|
|
|
- case REDIS_REPLY_NIL:
|
|
|
- printf("type:%s, no data\n", "REDIS_REPLY_NIL");
|
|
|
- break;
|
|
|
- case REDIS_REPLY_STRING:
|
|
|
- printf("type:%s, reply->len:%ld reply->str:%s\n", "REDIS_REPLY_STRING", r->len, r->str);
|
|
|
- break;
|
|
|
- case REDIS_REPLY_ARRAY:
|
|
|
- printf("type:%s, reply->elements:%ld\n", "REDIS_REPLY_ARRAY", r->elements);
|
|
|
- for (i = 0; i < r->elements; i++) {
|
|
|
- printf("%d: %s\n", i, r->element[i]->str);
|
|
|
- }
|
|
|
- break;
|
|
|
- default:
|
|
|
- printf("unkonwn type:%d\n", r->type);
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- /*release reply and context */
|
|
|
- freeReplyObject(r);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-QString MKCore::redis_qstring(const char *cmd)
|
|
|
-{
|
|
|
- redisReply *r = NULL;
|
|
|
- if (NULL == cmd) {
|
|
|
- return "error";
|
|
|
- }
|
|
|
-
|
|
|
- printf("%s\n", cmd);
|
|
|
-
|
|
|
- r = (redisReply *)redisCommand(c, cmd);
|
|
|
- if (NULL == r) {
|
|
|
- printf("Error[%d:%s]", c->err, c->errstr);
|
|
|
- return "error";
|
|
|
- }
|
|
|
-
|
|
|
- switch(r->type) {
|
|
|
- case REDIS_REPLY_STATUS:
|
|
|
- printf("type:%s, reply->len:%ld reply->str:%s\n", "REDIS_REPLY_STATUS", r->len, r->str);
|
|
|
- break;
|
|
|
- case REDIS_REPLY_ERROR:
|
|
|
- printf("type:%s, reply->len:%ld reply->str:%s\n", "REDIS_REPLY_ERROR", r->len, r->str);
|
|
|
- break;
|
|
|
- case REDIS_REPLY_INTEGER:
|
|
|
- printf("type:%s, reply->integer:%lld\n", "REDIS_REPLY_INTEGER", r->integer);
|
|
|
- break;
|
|
|
- case REDIS_REPLY_NIL:
|
|
|
- printf("type:%s, no data\n", "REDIS_REPLY_NIL");
|
|
|
- break;
|
|
|
- case REDIS_REPLY_STRING:
|
|
|
- printf("type:%s, reply->len:%ld reply->str:%s\n", "REDIS_REPLY_STRING", r->len, r->str);
|
|
|
- break;
|
|
|
- case REDIS_REPLY_ARRAY:
|
|
|
- printf("type:%s, reply->elements:%ld\n", "REDIS_REPLY_ARRAY", r->elements);
|
|
|
- for (int i = 0; i < r->elements; i++) {
|
|
|
- printf("%d: %s\n", i, r->element[i]->str);
|
|
|
- }
|
|
|
- break;
|
|
|
- default:
|
|
|
- printf("unkonwn type:%d\n", r->type);
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- QString data = r->str;
|
|
|
-
|
|
|
- /*release reply and context */
|
|
|
- freeReplyObject(r);
|
|
|
- return data;
|
|
|
-}
|
|
|
-
|
|
|
-int MKCore::redis_int(const char *cmd)
|
|
|
-{
|
|
|
- redisReply *r = NULL;
|
|
|
- if (NULL == cmd) {
|
|
|
- return -1;
|
|
|
- }
|
|
|
-
|
|
|
- printf("%s\n", cmd);
|
|
|
-
|
|
|
- r = (redisReply *)redisCommand(c, cmd);
|
|
|
- if (NULL == r) {
|
|
|
- printf("Error[%d:%s]", c->err, c->errstr);
|
|
|
- return -1;
|
|
|
- }
|
|
|
-
|
|
|
- switch(r->type) {
|
|
|
- case REDIS_REPLY_STATUS:
|
|
|
- printf("type:%s, reply->len:%ld reply->str:%s\n", "REDIS_REPLY_STATUS", r->len, r->str);
|
|
|
- break;
|
|
|
- case REDIS_REPLY_ERROR:
|
|
|
- printf("type:%s, reply->len:%ld reply->str:%s\n", "REDIS_REPLY_ERROR", r->len, r->str);
|
|
|
- break;
|
|
|
- case REDIS_REPLY_INTEGER:
|
|
|
- printf("type:%s, reply->integer:%lld\n", "REDIS_REPLY_INTEGER", r->integer);
|
|
|
- break;
|
|
|
- case REDIS_REPLY_NIL:
|
|
|
- printf("type:%s, no data\n", "REDIS_REPLY_NIL");
|
|
|
- break;
|
|
|
- case REDIS_REPLY_STRING:
|
|
|
- printf("type:%s, reply->len:%ld reply->str:%s\n", "REDIS_REPLY_STRING", r->len, r->str);
|
|
|
- break;
|
|
|
- case REDIS_REPLY_ARRAY:
|
|
|
- printf("type:%s, reply->elements:%ld\n", "REDIS_REPLY_ARRAY", r->elements);
|
|
|
- for (int i = 0; i < r->elements; i++) {
|
|
|
- printf("%d: %s\n", i, r->element[i]->str);
|
|
|
- }
|
|
|
- break;
|
|
|
- default:
|
|
|
- printf("unkonwn type:%d\n", r->type);
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- int data = r->integer;
|
|
|
-
|
|
|
- /*release reply and context */
|
|
|
- freeReplyObject(r);
|
|
|
- return data;
|
|
|
}
|