123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548 |
- #include "elecfilecore.h"
- #include "efire.h"
- #include "../ytUserInfoProcess/userinfo.h"
- #include "../DataPrecessDog/dataprecess.h"
- #define UN_REFERENCED_PARAMETER(x) {(x) = (x);}
- ElecFileCore::ElecFileCore(QObject *parent) : QObject(parent)
- {
- mqttIdx = 1;
- mqttinfoIdx =1;
- timer = new QTimer(this);
- logThread = new LogThread(this);
- dbThread = new DatabaseThread(this);
- // mThread = new MqttThread(this);
- msgList.clear();
- logThread->start();
- // wxThreads = new WeChart2Thread(this,0,"47.98.201.73","/jdxf/wxapp2.php/Home/Waterwarn/message_electrical");
- // connect(wxThreads,&WeChart2Thread::wxchart,this,&ElecFileCore::wxchart);
- // connect(wxThreads,&WeChart2Thread::finished,this,&ElecFileCore::quit);
- // wssThread = new Tts2Thread(this,0,"47.98.201.73","/report",55125);
- // connect(wssThread,&Tts2Thread::ttslog,this,&ElecFileCore::ttslog);
- // connect(wssThread,&Tts2Thread::finished,this,&ElecFileCore::quit);
- // wxThreads->start();
- // wssThread->start();
- for(quint16 i=0;i<8;i++){
- wxThreads[i] = new WechartThreads(this,i,"47.98.201.73","/jdxf/wxapp2.php/Home/Waterwarn/message_electrical");
- connect(wxThreads[i],&WechartThreads::wxchart,this,&ElecFileCore::wxchart);
- wssThread[i] = new ttsThreads(this,i,"47.98.201.73","/report",55125);
- connect(wssThread[i],&ttsThreads::ttslog,this,&ElecFileCore::ttslog);
- wxThreads[i]->start();
- wssThread[i]->start();
- }
- wxcur = 0;
- repcur = 0;
- connect(timer, &QTimer::timeout, this, &ElecFileCore::timeout);
- connect(dbThread, &DatabaseThread::AlarmReport, this, &ElecFileCore::AlarmReport);
- connect(dbThread, &DatabaseThread::SqlLog, this, &ElecFileCore::SqlLog);
- connect(dbThread, &DatabaseThread::MqttInfo, this, &ElecFileCore::MqttConnect);
- dbThread->start();
- server = new ElectricFireServer2(this);
- connect(server,&ElectricFireServer2::CommData,this,&ElecFileCore::CommData);
- connect(server,&ElectricFireServer2::getOnLine,this,&ElecFileCore::getOnLine);
- connect(server,&ElectricFireServer2::getAlarm,this,&ElecFileCore::getAlarm);
- connect(server,&ElectricFireServer2::getAnalogValue,this,&ElecFileCore::getAnalogValue);
- eServer = new ElectricFireServer(this);
- connect(eServer,&ElectricFireServer::CommData,this,&ElecFileCore::CommData);
- connect(eServer,&ElectricFireServer::getEAlarm,this,&ElecFileCore::getEAlarm);
- connect(eServer,&ElectricFireServer::getEAnalogValue,this,&ElecFileCore::getEAnalogValue);
- connect(eServer,&ElectricFireServer::getERealtimeValue,this,&ElecFileCore::getERealtimeValue);
- server_yada = new ElectricFireServer_Yada(this);
- connect(server_yada,&ElectricFireServer_Yada::CommData,this,&ElecFileCore::CommData);
- connect(server_yada,&ElectricFireServer_Yada::getOnLine,this,&ElecFileCore::getOnLine);
- connect(server_yada,&ElectricFireServer_Yada::getAlarm,this,&ElecFileCore::getAlarm);
- connect(server_yada,&ElectricFireServer_Yada::getAnalogValue,this,&ElecFileCore::getYDAnalogValue);
- syncInterface = new SyncInterface(this);
- // connect(syncInterface,&SyncInterface::comm_data,this,&ElecFileCore::CommData);
- wssServer = new WssServer(this);
- wssServer->start();
- timer->start(1000);
- }
- ElecFileCore::~ElecFileCore()
- {
- logThread->stop();
- dbThread->stop();
- }
- void ElecFileCore::MqttConnect(QString ip,QString port,QString name,QString passwd)
- {
- printf("mqtt init\n");
- printf("ip = %s, port = %s, name = %s, passwd = %s\n",ip.toUtf8().data(),port.toUtf8().data(),name.toUtf8().data(),passwd.toUtf8().data());
- m_client = new QMQTT::Client(QHostAddress(ip), static_cast<quint16>(port.toInt()), this);
- m_client->setUsername(name);
- m_client->setPassword(passwd.toLatin1());
- connect(m_client,&QMQTT::Client::connected,this,&ElecFileCore::mqconnected);
- m_client->connectToHost();
- }
- void ElecFileCore::mqconnected()
- {
- printf("mqtt connected\n");
- // m_client->publish(QMQTT::Message(mqttIdx++,"/usky/ytDP0007/10012/60001/alarm",QByteArray("mq alarm start")));
- // if(mqttIdx>9999)
- // mqttIdx = 1;
- // m_client->publish(QMQTT::Message(mqttinfoIdx++,"/usky/ytDP0007/10012/60002/info",QByteArray("mq info start")));
- // if(mqttinfoIdx>9999)
- // mqttinfoIdx = 1;
- }
- void ElecFileCore::wssclose()
- {
- wssServer->start();
- }
- void ElecFileCore::start()
- {
- server->start();
- eServer->start();
- server_yada->start();
- }
- void ElecFileCore::quit()
- {
- exit(1);
- }
- void ElecFileCore::timeout()
- {
- QDateTime dt = QDateTime::currentDateTime();
- uint t = dt.toTime_t();
- dataProcessShm->processStatus[11].upTime[0].Enabled = 0x01;
- dataProcessShm->processStatus[11].upTime[0].t_time = t;
- if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
- m_client->connectToHost();
- }
- if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
- //msgList.append(QString("{\"devId\":\"00003215010189\",\"connType\":\"G\"}"));
- if (msgList.length()>0){
- int h1 = msgList.first().indexOf(":",0);
- int t1 = msgList.first().indexOf(",",h1);
- QString d1 = msgList.first().mid(h1+2,(t1-h1-3));
- alarmDevice = d1.toUtf8().data();
- for(int i=0;i<10240;i++){
- if(QString::compare(eFireList->devs[i].Device_Code,alarmDevice)==0){
- alarmCompany = QString(eFireList->devs[i].Company_Code);
- break;
- }
- }
- QString topic = QString("/usky/ytDP0007/%1/%2/alarm").arg(alarmCompany).arg(alarmDevice);
- m_client->publish(QMQTT::Message(mqttIdx++,topic,msgList.first().toUtf8()));
- msgList.removeFirst();
- if(mqttIdx>9999)
- mqttIdx = 1;
- }
- }
- for(int i=0;i<10240;i++){
- if(eFireList->devs[i].Enabled==0x01){
- if(eFireList->devs[i].Online_Flag!=0x00){
- if((t-eFireList->devs[i].LastCommtime)>21600){
- // eFireList->devs[i].Online_Flag=0x00;
- // dbThread->appendSql(QString("update sp_devices_status set devicestatus=75, true_status=75, statustime='%1', lastcommtime='%1' where deviceid='%2'")
- // .arg(dt.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[i].Device_Code)));
- // dbThread->appendAlarm(AlarmRep(QString(eFireList->devs[i].Device_Code),
- // QString("insert into sp_ef2017 (id, port, device_code, time, data1, data2, data3, data4) values (NULL,%1,'%2','%3','%4','%5','%6','%7')")
- // .arg(9).arg(QString(eFireList->devs[i].Device_Code)).arg(dt.toString("yyyy-MM-dd HH:mm:ss"))
- // .arg(QString("EF%1").arg(9))
- // .arg("")
- // .arg("")
- // .arg(""),
- // QString("EF%1").arg(9),
- // dt.toString("yyyy-MM-dd HH:mm:ss")));
- }
- }
- }
- }
- }
- void ElecFileCore::CommData(QString deviceID, int dir, QString data)
- {
- logThread->appendData(data);
- wssServer->subReport(deviceID,dir,false,false,data);
- }
- void ElecFileCore::SqlLog(QString log)
- {
- logThread->appendData(log);
- wssServer->subReport("",0,true,false,log);
- }
- void ElecFileCore::getOnLine(int deviceidx, bool flag, QDateTime t)
- {
- if(eFireList->devs[deviceidx].Enabled!=0x01)
- return;
- if(flag)
- {
- // eFireList->devs[deviceidx].LastCommtime = t.toTime_t();
- if(eFireList->devs[deviceidx].Online_Flag!=0x01)
- {
- eFireList->devs[deviceidx].Online_Flag=0x01;
- dbThread->appendSql(QString("update sp_devices_status set devicestatus=0, true_status=0, statustime='%1', lastcommtime='%1' where device_id='%2'")
- .arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)));
- }else{
- dbThread->appendSql(QString("update sp_devices_status set devicestatus=0, true_status=0, statustime='%1', lastcommtime='%1' where device_id='%2'")
- .arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)));
- }
- }
- }
- void ElecFileCore::getEAlarm(QString DeviceCode, int point, bool aflag, float v1, float v2, float v3, QDateTime t)
- {
- logThread->appendData(QString("[ %1 getEAlarm ] 55126 %2, %3, %4, %5, %6, %7 ")
- .arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(DeviceCode).arg(point).arg(aflag)
- .arg(v1).arg(v2).arg(v3));
- for(int i=0;i<10240;i++){
- if(eFireList->devs[i].Enabled==0x01){
- if(QString::compare(QString(eFireList->devs[i].Device_Code),DeviceCode)==0){
- // eFireList->devs[i].LastCommtime = t.toTime_t();
- if(DeviceCode.indexOf("8000")!=0){
- if((eFireList->devs[i].Point[point].Status==0x00)&&aflag){
- eFireList->devs[i].Point[point].Status=0x01;
- getAlarm(i,point,aflag,v1,v2,v3,t);
- }else if((eFireList->devs[i].Point[point].Status==0x01)&&(!aflag)){
- eFireList->devs[i].Point[point].Status=0x00;
- getAlarm(i,point,aflag,v1,v2,v3,t);
- }
- }else{
- // if(aflag)
- if((eFireList->devs[i].Point[point].Status!=(aflag?0x01:0x00))
- ||((t.toTime_t()-eFireList->devs[i].LastCommtime)>1800)
- ){
- eFireList->devs[i].Point[point].Status=(aflag?0x01:0x00);
- getAlarm(i,point,aflag,v1,v2,v3,t);
- }
- eFireList->devs[i].LastCommtime=t.toTime_t();
- }
- break;
- }
- }
- }
- }
- void ElecFileCore::getAlarm(int deviceidx, int point, bool aflag, float v1, float v2, float v3, QDateTime t)
- {
- // eFireList->devs[deviceidx].LastCommtime = t.toTime_t();
- if(aflag){
- QString pointName;
- switch(point){
- case 1: pointName = "供电过压";break;
- case 2: pointName = "供电低压";break;
- case 3: pointName = "供电过流";break;
- case 4: pointName = "漏电报警";break;
- case 5: pointName = "A相线缆温度超高";break;
- case 6: pointName = "B相线缆温度超高";break;
- case 7: pointName = "C相线缆温度超高";break;
- default: break;
- }
- msgList.append(QString("{\"devId\":\"%1\",\"connType\":\"G\",\"deviceName\":\"%2\",\"alarams\":[{\"dp\":[{\"property\":\"%3\",\"serial\":\"%4\",\"value\":\"%5\",\"status\":\"0\"}],\"deviceName\":\"%6\",\"timeStamp\":\"%7\",\"deviceModel\":\"\",\"deviceType\":\"%8\",\"devId\":\"%9\"}],\"type\":\"ALARM\",\"timeStamp\":\"%10\"}").arg(QString(eFireList->devs[deviceidx].Device_Code)).arg(QString(eFireList->devs[deviceidx].Device_Name)).arg(pointName).arg(point).arg(QString::number(static_cast<double>(v1),'f',3)).arg(QString(eFireList->devs[deviceidx].Device_Name)).arg(t.toTime_t()).arg(QString(eFireList->devs[deviceidx].Device_Type)).arg(QString(eFireList->devs[deviceidx].Device_Code)).arg(t.toTime_t()));
- AlarmRep rep = AlarmRep(QString(eFireList->devs[deviceidx].Device_Code),
- QString("insert into sp_ef2017 (id, port, device_code, time, data1, data2, data3, data4) values (NULL,%1,'%2','%3','%4','%5','%6','%7')")
- .arg(point).arg(QString(eFireList->devs[deviceidx].Device_Code)).arg(t.toString("yyyy-MM-dd HH:mm:ss"))
- .arg(QString("EF%1").arg(point))
- .arg(QString::number(static_cast<double>(v1),'f',3))
- .arg(point<4?QString::number(static_cast<double>(v2),'f',3):"")
- .arg(point<4?QString::number(static_cast<double>(v3),'f',3):""),
- QString("EF%1").arg(point),
- t.toString("yyyy-MM-dd HH:mm:ss"));
- dbThread->appendAlarm(rep);
- }
- dbThread->appendSql(QString("update sp_owner_status set point_data=%1, data_time='%2' where device_id='%3' and point_code='%4'")
- .arg(aflag?1:0).arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)).arg(point));
- if((point==1)||(point==2)){
- dbThread->appendSql(QString("update sp_owner_status set point_data=%1, data_time='%2' where device_id='%3' and point_code=65;")
- .arg(QString::number(static_cast<double>(v1),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)));
- dbThread->appendSql(QString("update sp_owner_status set point_data=%1, data_time='%2' where device_id='%3' and point_code=66;")
- .arg(QString::number(static_cast<double>(v2),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)));
- dbThread->appendSql(QString("update sp_owner_status set point_data=%1, data_time='%2' where device_id='%3' and point_code=67;")
- .arg(QString::number(static_cast<double>(v3),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)));
- }else if(point==3){
- dbThread->appendSql(QString("update sp_owner_status set point_data=%1, data_time='%2' where device_id='%3' and point_code=68;")
- .arg(QString::number(static_cast<double>(v1),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)));
- dbThread->appendSql(QString("update sp_owner_status set point_data=%1, data_time='%2' where device_id='%3' and point_code=69;")
- .arg(QString::number(static_cast<double>(v2),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)));
- dbThread->appendSql(QString("update sp_owner_status set point_data=%1, data_time='%2' where device_id='%3' and point_code=70;")
- .arg(QString::number(static_cast<double>(v3),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)));
- }else if((point==4)&&(v1>0)){
- dbThread->appendSql(QString("update sp_owner_status set point_data=%1, data_time='%2' where device_id='%3' and point_code=75;")
- .arg(QString::number(static_cast<double>(v1),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)));
- }else if(point==5){
- dbThread->appendSql(QString("update sp_owner_status set point_data=%1, data_time='%2' where device_id='%3' and point_code=71;")
- .arg(QString::number(static_cast<double>(v1),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)));
- }else if(point==6){
- dbThread->appendSql(QString("update sp_owner_status set point_data=%1, data_time='%2' where device_id='%3' and point_code=72;")
- .arg(QString::number(static_cast<double>(v1),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)));
- }else if(point==7){
- dbThread->appendSql(QString("update sp_owner_status set point_data=%1, data_time='%2' where device_id='%3' and point_code=73;")
- .arg(QString::number(static_cast<double>(v1),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)));
- }
- }
- void ElecFileCore::AlarmReport(QString addr, quint64 insertid, QString type, QString time)
- {
- UN_REFERENCED_PARAMETER(time);
- QString phonelist = "";
- QString companyCode = "";
- for(int i=0;i<10240;i++){
- if(QString::compare(QString(eFireList->devs[i].Device_Code),addr)==0){
- companyCode = QString(eFireList->devs[i].Company_Code);
- break;
- }
- }
- QString name = "";
- if(type.compare("EF1")==0)
- name = "欠压报警";
- else if(type.compare("EF2")==0)
- name = "过压报警";
- else if(type.compare("EF3")==0)
- name = "过流报警";
- else if(type.compare("EF4")==0)
- name = "漏电报警";
- else if(type.compare("EF5")==0)
- name = "1号线缆温度超高";
- else if(type.compare("EF6")==0)
- name = "2号线缆温度超高";
- else if(type.compare("EF7")==0)
- name = "3号线缆温度超高";
- QString rep2 = QString("{\"SubType\":7,\"DeviceId\":\"%1\",\"InsertId\":%2,\"Confirmed\":0,\"CompanyCode\":\"%3\",\"evt_name\":\"%4\",\"evt\":0,\"alarm_time\":\"%5\"}")
- .arg(addr).arg(insertid).arg(companyCode).arg(name).arg(time);
- wssThread[repcur]->appendData(rep2);
- repcur++;
- repcur &= 0x07;
- if(companyCode.length()>0){
- for(int i=0;i<102400;i++){
- if(companyCode.compare(QString(sysConfShm->userInfo[i].CompanyCode))==0){
- QString phone = QString(sysConfShm->userInfo[i].CellPhone);
- if(phone.trimmed().length()>0){
- if(phonelist.length()==0)
- phonelist = phone;
- else
- phonelist.append(","+phone);
- }
- }
- }
- if(phonelist.length()>0){
- QString evtType = type;
- QString unique_number = QString("%1%2").arg(addr).arg(type.remove(0, 2));
- QString data = QString("evt=%4&device_code=%1&phone=%3&insert_id=%2&unique_number=%5&time=%6").arg(addr).arg(insertid).arg(phonelist).arg(evtType).arg(unique_number).arg(time)
- .replace(",","%2C").replace(":","%3A").replace(" ","+");
- wxThreads[wxcur]->appendData(data);
- wxcur++;
- wxcur &= 0x07;
- }
- }
- }
- void ElecFileCore::wxchart(quint16 idx, QDateTime t, QString data, bool dirflag)
- {
- UN_REFERENCED_PARAMETER(idx);
- logThread->appendData(QString("[ %1 47.98.201.73 (wx) %2 ] %3")
- .arg(t.toString("yyyy-MM-dd HH:mm:ss.zzz"))
- .arg(dirflag?">>>":"<<<")
- .arg(data.replace('\n',"\\n").replace('\r',"\\r")));
- }
- void ElecFileCore::ttslog(quint16 idx, QDateTime t, QString data, bool dirflag)
- {
- UN_REFERENCED_PARAMETER(idx);
- logThread->appendData(QString("[ %1 47.98.201.73 (wss) %2 ] %3")
- .arg(t.toString("yyyy-MM-dd HH:mm:ss.zzz"))
- .arg(dirflag?">>>":"<<<")
- .arg(data.replace('\n',"\\n").replace('\r',"\\r")));
- }
- void ElecFileCore::getERealtimeValue(QString DeviceCode, int point, float rtv, QDateTime t)
- {
- 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(DeviceCode));
- dbThread->appendSql(QString("update sp_owner_status set point_data=%1, data_time='%2' where device_id='%3' and point_code=%4")
- .arg(QString::number(static_cast<double>(rtv),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(DeviceCode).arg(point));
- dbThread->appendSql(QString("insert into sp_owner_sync_data (id, native_id, device_id, point_code, point_data, data_time, content) values (NULL,0,'%1',%2,%3,'%4','')")
- .arg(DeviceCode).arg(point).arg(QString::number(static_cast<double>(rtv),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")));
- }
- void ElecFileCore::getAnalogValue(int deviceidx, int point, float ave, float rtv, QDateTime t, float maxv, QDateTime maxt, float minv, QDateTime mint)
- {
- // eFireList->devs[deviceidx].LastCommtime = t.toTime_t();
- QString pointName;
- switch(point){
- case 65: pointName = "A相电压";break;
- case 66: pointName = "B相电压";break;
- case 67: pointName = "C相电压";break;
- case 68: pointName = "A相电流";break;
- case 69: pointName = "B相电流";break;
- case 70: pointName = "C相电流";break;
- case 71: pointName = "A相线缆温度";break;
- case 72: pointName = "B相线缆温度";break;
- case 73: pointName = "C相线缆温度";break;
- default: break;
- }
- pointStr.append(QString("{\"property\":\"%1\",\"serial\":\"%2\",\"value\":\"%3\"},").arg(pointName).arg(point).arg(QString::number(static_cast<double>(rtv),'f',3)));
- if(point == 73){
- if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
- m_client->connectToHost();
- }
- if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
- QString infoList;
- // QString devPtr;
- // if(eFireList->devs[deviceidx].Enabled==0x01){
- // QString pointStr;
- // for(int j=0;j<256;j++){
- // if(eFireList->devs[deviceidx].Point[j].Enabled==0x01){
- // QString pointName;
- // switch(j){
- // case 1: pointName = "供电过压";break;
- // case 2: pointName = "供电低压";break;
- // case 3: pointName = "供电过流";break;
- // case 4: pointName = "漏电报警";break;
- // case 5: pointName = "A相线缆温度超高";break;
- // case 6: pointName = "B相线缆温度超高";break;
- // case 7: pointName = "C相线缆温度超高";break;
- // case 65: pointName = "A相电压";break;
- // case 66: pointName = "B相电压";break;
- // case 67: pointName = "C相电压";break;
- // case 68: pointName = "A相电流";break;
- // case 69: pointName = "B相电流";break;
- // case 70: pointName = "C相电流";break;
- // case 71: pointName = "A相线缆温度";break;
- // case 72: pointName = "B相线缆温度";break;
- // case 73: pointName = "C相线缆温度";break;
- // default: break;
- // }
- // if(j == 73)
- // {
- // pointStr.append(QString("{\"property\":\"%1\",\"serial\":\"%2\",\"value\":\"%3\"},").arg(pointName).arg(j).arg(QString::number(static_cast<double>(rtv),'f',3)));
- // }else if(eFireList->devs[deviceidx].Point[j].Type == 0x01){
- // pointStr.append(QString("{\"property\":\"%1\",\"serial\":\"%2\",\"value\":\"%3\"},").arg(pointName).arg(j).arg(eFireList->devs[deviceidx].Point[j].IoValue==0x01?1:0));
- // }else{
- // pointStr.append(QString("{\"property\":\"%1\",\"serial\":\"%2\",\"value\":\"%3\"},").arg(pointName).arg(j).arg(QString::number(static_cast<double>(eFireList->devs[deviceidx].Point[j].CurrentValue),'f',3)));
- // }
- // }
- // }
- pointStr=pointStr.left(pointStr.length()-1);
- infoList.append(QString("{\"devId\":\"%1\",\"connType\":\"G\",\"deviceName\":\"%2\",\"devs\":[{\"dp\":[%3],\"deviceName\":\"%4\",\"timeStamp\":\"%5\",\"deviceModel\":\"\",\"deviceType\":\"%6\",\"devId\":\"%7\"}],\"type\":\"INFO\",\"timeStamp\":\"%8\"}").arg(QString(eFireList->devs[deviceidx].Device_Code)).arg(QString(eFireList->devs[deviceidx].Device_Name)).arg(pointStr).arg(QString(eFireList->devs[deviceidx].Device_Name)).arg(t.toTime_t()).arg(QString(eFireList->devs[deviceidx].Device_Type)).arg(QString(eFireList->devs[deviceidx].Device_Code)).arg(t.toTime_t()));
- QString infoTopic = QString("/usky/ytDP0007/%1/%2/info").arg(QString(eFireList->devs[deviceidx].Company_Code)).arg(QString(eFireList->devs[deviceidx].Device_Code));
- //2021/11/15 山东党校需求 电气火灾推漏电和故障电弧,温度超高
- m_client->publish(QMQTT::Message(mqttinfoIdx++,infoTopic,infoList.toUtf8()));
- if(mqttinfoIdx>9999)
- mqttinfoIdx = 1;
- pointStr.clear();
- // }
- }
- }
- QString sql;
- dbThread->appendSql(QString("update sp_owner_status set point_data=%1, data_time='%2' where device_id='%3' and point_code=%4")
- .arg(QString::number(static_cast<double>(rtv),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)).arg(point));
- dbThread->appendSql(QString("insert into sp_owner_sync_data (id, native_id, device_id, point_code, point_data, data_time, content) values (NULL,0,'%1',%2,%3,'%4','')")
- .arg(QString(eFireList->devs[deviceidx].Device_Code)).arg(point).arg(QString::number(static_cast<double>(rtv),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")));
- dbThread->appendSql(QString("insert into sp_e%1 (id, device_id, point_code, point_data, data_time, max_data, max_time, min_data, min_time, ave_data, content) values (NULL, '%1', %2, %3, '%4', %5, '%6', %7, '%8', %9, '')")
- .arg(QString(eFireList->devs[deviceidx].Device_Code)).arg(point)
- .arg(QString::number(static_cast<double>(rtv),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss"))
- .arg(QString::number(static_cast<double>(maxv),'f',3)).arg(maxt.toString("yyyy-MM-dd HH:mm:ss"))
- .arg(QString::number(static_cast<double>(minv),'f',3)).arg(mint.toString("yyyy-MM-dd HH:mm:ss"))
- .arg(QString::number(static_cast<double>(ave),'f',3)));
- }
- void ElecFileCore::getEAnalogValue(QString DeviceCode, int point, float ave, float rtv, QDateTime t, float maxv, QDateTime maxt, float minv, QDateTime mint)
- {
- if(point==70)
- return;
- for(int i=0;i<10240;i++){
- if(eFireList->devs[i].Enabled==0x01){
- if(QString::compare(QString(eFireList->devs[i].Device_Code),DeviceCode)==0){
- // eFireList->devs[i].LastCommtime = t.toTime_t();
- logThread->appendData(QString("55126 deviceCode:%1, point:%2, ave:%3, max:%4, min:%5").arg(DeviceCode).arg(point).arg(ave).arg(maxv).arg(minv));
- getAnalogValue(i,point,ave,rtv,t,maxv,maxt,minv,mint);
- break;
- }
- }
- }
- }
- void ElecFileCore::getYDAnalogValue(int deviceidx, int point, float ave, float rtv, QDateTime t, float maxv, QDateTime maxt, float minv, QDateTime mint)
- {
- // eFireList->devs[deviceidx].LastCommtime = t.toTime_t();
- QString pointName;
- switch(point){
- case 65: pointName = "A相电压";break;
- case 66: pointName = "B相电压";break;
- case 67: pointName = "C相电压";break;
- case 68: pointName = "A相电流";break;
- case 69: pointName = "B相电流";break;
- case 70: pointName = "C相电流";break;
- case 71: pointName = "A相线缆温度";break;
- case 72: pointName = "B相线缆温度";break;
- case 73: pointName = "C相线缆温度";break;
- default: break;
- }
- pointStr.append(QString("{\"property\":\"%1\",\"serial\":\"%2\",\"value\":\"%3\"},").arg(pointName).arg(point).arg(QString::number(static_cast<double>(rtv),'f',3)));
- if(point == 73){
- if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
- m_client->connectToHost();
- }
- if(m_client->connectionState()==QMQTT::STATE_CONNECTED){
- QString infoList;
- pointStr=pointStr.left(pointStr.length()-1);
- infoList.append(QString("{\"devId\":\"%1\",\"connType\":\"G\",\"deviceName\":\"%2\",\"devs\":[{\"dp\":[%3],\"deviceName\":\"%4\",\"timeStamp\":\"%5\",\"deviceModel\":\"\",\"deviceType\":\"%6\",\"devId\":\"%7\"}],\"type\":\"INFO\",\"timeStamp\":\"%8\"}").arg(QString(eFireList->devs[deviceidx].Device_Code)).arg(QString(eFireList->devs[deviceidx].Device_Name)).arg(pointStr).arg(QString(eFireList->devs[deviceidx].Device_Name)).arg(t.toTime_t()).arg(QString(eFireList->devs[deviceidx].Device_Type)).arg(QString(eFireList->devs[deviceidx].Device_Code)).arg(t.toTime_t()));
- QString infoTopic = QString("/usky/ytDP0007/%1/%2/info").arg(QString(eFireList->devs[deviceidx].Company_Code)).arg(QString(eFireList->devs[deviceidx].Device_Code));
- //2021/11/15 山东党校需求 电气火灾推漏电和故障电弧,温度超高
- m_client->publish(QMQTT::Message(mqttinfoIdx++,infoTopic,infoList.toUtf8(),0));
- if(mqttinfoIdx>9999)
- mqttinfoIdx = 1;
- pointStr.clear();
- }
- }
- QString sql;
- dbThread->appendSql(QString("update sp_owner_status set point_data=%1, data_time='%2' where device_id='%3' and point_code=%4")
- .arg(QString::number(static_cast<double>(rtv),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(QString(eFireList->devs[deviceidx].Device_Code)).arg(point));
- dbThread->appendSql(QString("insert into sp_owner_sync_data (id, native_id, device_id, point_code, point_data, data_time, content) values (NULL,0,'%1',%2,%3,'%4','')")
- .arg(QString(eFireList->devs[deviceidx].Device_Code)).arg(point).arg(QString::number(static_cast<double>(rtv),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss")));
- dbThread->appendSql(QString("insert into sp_e%1 (id, device_id, point_code, point_data, data_time, max_data, max_time, min_data, min_time, ave_data, content) values (NULL, '%1', %2, %3, '%4', %5, '%6', %7, '%8', %9, '')")
- .arg(QString(eFireList->devs[deviceidx].Device_Code)).arg(point)
- .arg(QString::number(static_cast<double>(rtv),'f',3)).arg(t.toString("yyyy-MM-dd HH:mm:ss"))
- .arg(QString::number(static_cast<double>(maxv),'f',3)).arg(maxt.toString("yyyy-MM-dd HH:mm:ss"))
- .arg(QString::number(static_cast<double>(minv),'f',3)).arg(mint.toString("yyyy-MM-dd HH:mm:ss"))
- .arg(QString::number(static_cast<double>(ave),'f',3)));
- }
|