userinfoprocesscore.cpp 134 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539
  1. #include "userinfoprocesscore.h"
  2. #include <../DataPrecessDog/dataprecess.h>
  3. #include "userinfo.h"
  4. //#include <QDebug>
  5. #define UN_REFERENCED_PARAMETER(x) {(x) = (x);}
  6. #define WxDbg
  7. #define ytDb
  8. #define ListenPort 3344
  9. #define changningSyncurl "http://www.cnfire119.cn/open/platform/analysis/analysisTest?appKey=4464378a1152474f82d0025e1bc847b3&secret=88fb10459cad484abeec27c576c853d8"
  10. UserInfoProcessCore::UserInfoProcessCore(QObject *parent) :
  11. QObject(parent)
  12. {
  13. idx1 = 1;
  14. idx2 = 1;
  15. idx3 = 1;
  16. CurrentIdx = 0;
  17. logthread = new LogThread(this);
  18. logthread->start();
  19. dbThread = new DataBaseThread(this);
  20. connect(dbThread,&DataBaseThread::SqlAction,this,&UserInfoProcessCore::appendLOg);
  21. connect(dbThread,&DataBaseThread::AlarmReport,this,&UserInfoProcessCore::AlarmReport);
  22. connect(dbThread,&DataBaseThread::MqttInfo,this,&UserInfoProcessCore::MqttInfo);
  23. connect(dbThread,&DataBaseThread::MqttInit,this,&UserInfoProcessCore::MqttConnect);
  24. dbThread->start();
  25. db = QSqlDatabase::addDatabase("QMYSQL","main_db");
  26. db.setHostName("47.98.201.187");
  27. db.setPort(3306);
  28. db.setUserName("root");
  29. db.setPassword("Yt2018IoT");
  30. db.setDatabaseName("jdxf");
  31. if(db.open()){
  32. logthread->appendData("main db opened");
  33. }else{
  34. logthread->appendData("main db failed");
  35. }
  36. timer = new QTimer(this);
  37. connect(timer,SIGNAL(timeout()),this,SLOT(time_out()));
  38. for(quint16 i=0;i<16;i++){
  39. wxThreads[0][i] = new WechartThreads(this,i,"47.98.201.73","/jdxf/wxapp.php/Home/Firewarn/message_sendalarm");
  40. connect(wxThreads[0][i],SIGNAL(wxchart(quint16,QDateTime,QString,bool)),this,SLOT(wxchart(quint16,QDateTime,QString,bool)));
  41. wxThreads[1][i] = new WechartThreads(this,i,"47.98.201.73","/jdxf/wxapp2.php/Home/Firewarn/message_sendalarm");
  42. connect(wxThreads[1][i],SIGNAL(wxchart(quint16,QDateTime,QString,bool)),this,SLOT(wxchart(quint16,QDateTime,QString,bool)));
  43. voiceThreads[i] = new ttsThreads(this,i,"47.98.201.73","/jdxf/wxapp2.php/Home/XVoiceAlarm/voice",80);
  44. connect(voiceThreads[i],SIGNAL(ttslog(quint16,QDateTime,QString,bool)),this,SLOT(ttslog(quint16,QDateTime,QString,bool)));
  45. repThread[i] = new ttsThreads(this,i,"127.0.0.1","/report",55335);
  46. connect(repThread[i],&ttsThreads::ttslog,this,&UserInfoProcessCore::replog);
  47. wssThread[i] = new ttsThreads(this,i,"47.98.201.73","/report",55125);
  48. connect(wssThread[i],&ttsThreads::ttslog,this,&UserInfoProcessCore::wsslog);
  49. wxThreads[0][i]->start();
  50. wxThreads[1][i]->start();
  51. voiceThreads[i]->start();
  52. repThread[i]->start();
  53. wssThread[i]->start();
  54. }
  55. wxcur = 0;
  56. ttscur = 0;
  57. repcur = 0;
  58. wssServer = new WssServer(this);
  59. wssServer->start();
  60. sr = new QTcpServer(this);
  61. connect(sr,SIGNAL(newConnection()),this,SLOT(new_incomming()));
  62. }
  63. void UserInfoProcessCore::start()
  64. {
  65. if(sr->listen(QHostAddress::Any,(ListenPort&0xffff))){
  66. timer->start(1000);
  67. }else{
  68. printf("listen failed\n");
  69. exit(1);
  70. }
  71. }
  72. void UserInfoProcessCore::MqttConnect(QString ip,QString port,QString name,QString passwd)
  73. {
  74. printf("mqtt init\n");
  75. printf("ip = %s, port = %s, name = %s, passwd = %s\n",ip.toUtf8().data(),port.toUtf8().data(),name.toUtf8().data(),passwd.toUtf8().data());
  76. m_client = new QMQTT::Client(QHostAddress(ip), static_cast<quint16>(port.toInt()), this);
  77. m_client->setUsername(name);
  78. m_client->setPassword(passwd.toLatin1());
  79. connect(m_client,&QMQTT::Client::connected,this,&UserInfoProcessCore::OnConnected);
  80. m_client->connectToHost();
  81. }
  82. void UserInfoProcessCore::OnConnected()
  83. {
  84. printf("mqtt connected\n");
  85. }
  86. void UserInfoProcessCore::getSyncData(quint64 srcAddr, QByteArray data)
  87. {
  88. dbThread->getSyncData(srcAddr,data);
  89. }
  90. bool UserInfoProcessCore::check_voicealarm(qulonglong devid)
  91. {
  92. bool ret=false;
  93. for(int i=0;i<10000;i++){
  94. if(devid==userinfoShm->userInfoParam[i].UserInfoAddr){
  95. if(userinfoShm->userInfoParam[i].Unused[ParamIdxPushParam2]!=0){
  96. ret = true;
  97. }
  98. break;
  99. }
  100. }
  101. return ret;
  102. }
  103. void UserInfoProcessCore::wxchart(quint16 idx, QDateTime t, QString data, bool dirflag)
  104. {
  105. UN_REFERENCED_PARAMETER(idx);
  106. QString Data = QString("[ %1 47.98.201.73 (wx) %2 ] %3")
  107. .arg(t.toString("yyyy-MM-dd HH:mm:ss.zzz"))
  108. .arg(dirflag?">>>":"<<<")
  109. .arg(data.replace('\n',"\\n").replace('\r',"\\r"));
  110. logthread->appendData(Data);
  111. // wssServer->subReport(QString("%1").arg(idx),dirflag?1:2,false,false,Data);
  112. }
  113. void UserInfoProcessCore::ttslog(quint16 idx, QDateTime t, QString data, bool dirflag)
  114. {
  115. UN_REFERENCED_PARAMETER(idx);
  116. QString Data = QString("[ %1 47.98.201.73 (tts) %2 ] %3")
  117. .arg(t.toString("yyyy-MM-dd HH:mm:ss.zzz"))
  118. .arg(dirflag?">>>":"<<<")
  119. .arg(data.replace('\n',"\\n").replace('\r',"\\r"));
  120. logthread->appendData(data);
  121. // wssServer->subReport(QString("%1").arg(idx),dirflag?1:2,false,false,Data);
  122. }
  123. void UserInfoProcessCore::replog(quint16 idx, QDateTime t, QString data, bool dirflag)
  124. {
  125. UN_REFERENCED_PARAMETER(idx);
  126. QString Data = QString("[ %1 47.98.201.187 (rep) %2 ] %3")
  127. .arg(t.toString("yyyy-MM-dd HH:mm:ss.zzz"))
  128. .arg(dirflag?">>>":"<<<")
  129. .arg(data.replace('\n',"\\n").replace('\r',"\\r"));
  130. logthread->appendData(Data);
  131. // wssServer->subReport(QString("%1").arg(idx),dirflag?1:2,false,false,Data);
  132. }
  133. void UserInfoProcessCore::wsslog(quint16 idx, QDateTime t, QString data, bool dirflag)
  134. {
  135. // UN_REFERENCED_PARAMETER(idx);
  136. logthread->appendData(QString("[ %1 47.98.201.73 (wss %2) %3 ] %4")
  137. .arg(t.toString("yyyy-MM-dd HH:mm:ss.zzz"))
  138. .arg(idx,2,10,QChar('0'))
  139. .arg(dirflag?">>>":"<<<")
  140. .arg(data.replace('\n',"\\n").replace('\r',"\\r")));
  141. }
  142. void UserInfoProcessCore::MqttInfo(QString infoStr,QString alarmStr,QString statusStr,QString topic1,QString topic2,QString topic3)
  143. {
  144. if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED) || (m_client->connectionState()==QMQTT::STATE_INIT))
  145. {
  146. m_client->connectToHost();
  147. }
  148. if(m_client->connectionState()==QMQTT::STATE_CONNECTED)
  149. {
  150. //2021/11/15 山东党校需求 火灾告警系统,做一下筛选,只有含告警内容的推送,其他信息不要推了
  151. m_client->publish(QMQTT::Message(idx1++,topic1,infoStr.toUtf8().data()));
  152. if(idx1>9999)
  153. idx1 = 1;
  154. m_client->publish(QMQTT::Message(idx3++,topic3,statusStr.toUtf8().data()));
  155. if(idx3>9999)
  156. idx3 = 1;
  157. m_client->publish(QMQTT::Message(idx2++,topic2,alarmStr.toUtf8().data()));
  158. if(idx2>9999)
  159. idx2 = 1;
  160. }
  161. }
  162. void UserInfoProcessCore::AlarmReport(quint64 addr, quint64 insertid, QString type, QString time, QString name,quint64 port, QString address)
  163. {
  164. #ifdef ytDb
  165. // logthread->appendData(QString("(wss) addr:%1 type:%2 time:%3").arg(addr).arg(type).arg(time));
  166. QString phonelist = "";
  167. QString companyCode = "";
  168. for(int i=0;i<102400;i++){
  169. if(QString(sysConfShm->deviceInfo[i].DeviceId).toULongLong()==addr){
  170. companyCode = QString(sysConfShm->deviceInfo[i].CompanyCode);
  171. break;
  172. }
  173. }
  174. // QString rep = QString("{\"SubType\":1,\"DeviceId\":\"%1\",\"InsertId\":%2,\"Confirmed\":false}").arg(addr).arg(insertid);
  175. QString rep2 = QString("{\"SubType\":1,\"DeviceId\":\"%1\",\"InsertId\":%2,\"Confirmed\":0,\"CompanyCode\":\"%3\",\"evt_name\":\"%4\",\"evt\":\"%5\",\"alarm_time\":\"%6\"}")
  176. .arg(addr).arg(insertid).arg(companyCode).arg(name).arg(type).arg(time);
  177. // logthread->appendData(QString("(wss %1) append data \"%2\"").arg(repcur).arg(rep2));
  178. repThread[repcur]->appendData(rep2);
  179. wssThread[repcur++]->appendData(rep2);
  180. repcur &= 0x0f;
  181. if(companyCode.length()>0){
  182. for(int i=0;i<102400;i++){
  183. if(companyCode.compare(QString(sysConfShm->userInfo[i].CompanyCode))==0){
  184. QString phone = QString(sysConfShm->userInfo[i].CellPhone);
  185. if(phone.trimmed().length()>0){
  186. if(phonelist.length()==0)
  187. phonelist = phone;
  188. else
  189. phonelist.append(","+phone);
  190. }
  191. }
  192. }
  193. if(phonelist.length()>0){
  194. QString unique_number;
  195. if(port==0){
  196. unique_number = QString("%1%2").arg(addr).arg(address);
  197. }else{
  198. unique_number = QString("%1%2%3").arg(addr).arg(port).arg(address);
  199. }
  200. QString data = QString("id=%1&types=%2&insert_id=%3&phone=%4&unique_number=%5&time=%6").arg(addr).arg(type).arg(insertid).arg(phonelist).arg(unique_number).arg(time);
  201. wxThreads[0][wxcur&0x0f]->appendData(data);
  202. wxThreads[1][wxcur&0x0f]->appendData(data);
  203. wxcur++;
  204. wxcur &= 0x0f;
  205. }
  206. }
  207. #endif
  208. }
  209. QString UserInfoProcessCore::getSysStructType(quint8 stype)
  210. {
  211. switch(stype){
  212. case UserInfoReport::BuildingFireCtrlSysStatusType_Common:
  213. return QString::fromUtf8("通用系统 ");
  214. case UserInfoReport::BuildingFireCtrlSysStatusType_FireRepSystem:
  215. return QString::fromUtf8("火灾报警系统 ");
  216. case UserInfoReport::BuildingFireCtrlSysStatusType_FireActCtrler:
  217. return QString::fromUtf8("消防联动控制器 ");
  218. case UserInfoReport::BuildingFireCtrlSysStatusType_WaterPoint:
  219. return QString::fromUtf8("消火栓系统 ");
  220. case UserInfoReport::BuildingFireCtrlSysStatusType_AutoWater:
  221. return QString::fromUtf8("自动喷水灭火系统 ");
  222. case UserInfoReport::BuildingFireCtrlSysStatusType_AirFireCtrler:
  223. return QString::fromUtf8("气体灭火系统 ");
  224. case UserInfoReport::BuildingFireCtrlSysStatusType_WaterSpray1:
  225. return QString::fromUtf8("水喷雾灭火系统(泵启动方式) ");
  226. case UserInfoReport::BuildingFireCtrlSysStatusType_WaterSpray2:
  227. return QString::fromUtf8("水喷雾灭火系统(压力容器启动方式) ");
  228. case UserInfoReport::BuildingFireCtrlSysStatusType_Foam:
  229. return QString::fromUtf8("泡沫灭火系统 ");
  230. case UserInfoReport::BuildingFireCtrlSysStatusType_DryFlower:
  231. return QString::fromUtf8("干粉灭火系统 ");
  232. case UserInfoReport::BuildingFireCtrlSysStatusType_Smoker:
  233. return QString::fromUtf8("防烟排烟系统 ");
  234. case UserInfoReport::BuildingFireCtrlSysStatusType_FireDoor:
  235. return QString::fromUtf8("防火门及卷帘门系统 ");
  236. case UserInfoReport::BuildingFireCtrlSysStatusType_FireLift:
  237. return QString::fromUtf8("消防电梯 ");
  238. case UserInfoReport::BuildingFireCtrlSysStatusType_EmBroad:
  239. return QString::fromUtf8("消防应急广播 ");
  240. case UserInfoReport::BuildingFireCtrlSysStatusType_EmLighting:
  241. return QString::fromUtf8("消防应急照明和疏散指示系统 ");
  242. case UserInfoReport::BuildingFireCtrlSysStatusType_PowerSupply:
  243. return QString::fromUtf8("消防电源 ");
  244. case UserInfoReport::BuildingFireCtrlSysStatusType_Telephone:
  245. return QString::fromUtf8("消防电话 ");
  246. }
  247. return QString("");
  248. }
  249. QString UserInfoProcessCore::getUnitType(quint8 utype)
  250. {
  251. switch(utype){
  252. case UserInfoReport::BuildingFireCtrlUnitType_Common:
  253. return QString::fromUtf8("通用设备 ");
  254. case UserInfoReport::BuildingFireCtrlUnitType_FireAlarmer:
  255. return QString::fromUtf8("火灾报警控制器 ");
  256. case UserInfoReport::BuildingFireCtrlUnitType_GasAlarmer:
  257. return QString::fromUtf8("可燃气体探测器 ");
  258. case UserInfoReport::BuildingFireCtrlUnitType_PointGasAlarmer:
  259. return QString::fromUtf8("点型可燃气体探测器 ");
  260. case UserInfoReport::BuildingFireCtrlUnitType_SingleGasAlarmer:
  261. return QString::fromUtf8("独立式可燃气体探测器 ");
  262. case UserInfoReport::BuildingFireCtrlUnitType_LineGasAlarmer:
  263. return QString::fromUtf8("线型可燃气体探测器 ");
  264. case UserInfoReport::BuildingFireCtrlUnitType_EleAlarmer:
  265. return QString::fromUtf8("电气火灾监控告警器 ");
  266. case UserInfoReport::BuildingFireCtrlUnitType_EleCurAlarmer:
  267. return QString::fromUtf8("剩余电流式电气火灾监控探测器 ");
  268. case UserInfoReport::BuildingFireCtrlUnitType_EleTemAlarmer:
  269. return QString::fromUtf8("测温式电气火灾监控探测器 ");
  270. case UserInfoReport::BuildingFireCtrlUnitType_Loop:
  271. return QString::fromUtf8("探测回路 ");
  272. case UserInfoReport::BuildingFireCtrlUnitType_Dispanel:
  273. return QString::fromUtf8("火灾显示盘 ");
  274. case UserInfoReport::BuildingFireCtrlUnitType_Button:
  275. return QString::fromUtf8("手动火灾报警按钮 ");
  276. case UserInfoReport::BuildingFireCtrlUnitType_HydrantBtn:
  277. return QString::fromUtf8("消火栓按钮 ");
  278. case UserInfoReport::BuildingFireCtrlUnitType_FireSensor:
  279. return QString::fromUtf8("火灾探测器 ");
  280. case UserInfoReport::BuildingFireCtrlUnitType_TemSensor:
  281. return QString::fromUtf8("感温火灾探测器 ");
  282. case UserInfoReport::BuildingFireCtrlUnitType_PointTemSersor:
  283. return QString::fromUtf8("点型感温火灾探测器 ");
  284. case UserInfoReport::BuildingFireCtrlUnitType_SPointTemSensor:
  285. return QString::fromUtf8("点型感温火灾探测器(S型) ");
  286. case UserInfoReport::BuildingFireCtrlUnitType_RPointTemSensor:
  287. return QString::fromUtf8("点型感温火灾探测器(R型) ");
  288. case UserInfoReport::BuildingFireCtrlUnitType_LineTemSensor:
  289. return QString::fromUtf8("线型感温火灾探测器 ");
  290. case UserInfoReport::BuildingFireCtrlUnitType_SLineTemSensor:
  291. return QString::fromUtf8("线型感温火灾探测器(S型) ");
  292. case UserInfoReport::BuildingFireCtrlUnitType_RLineTemSensor:
  293. return QString::fromUtf8("线型感温火灾探测器(R型) ");
  294. case UserInfoReport::BuildingFireCtrlUnitType_FibreTemSensor:
  295. return QString::fromUtf8("光纤感温火灾探测器 ");
  296. case UserInfoReport::BuildingFireCtrlUnitType_SmokeSensor:
  297. return QString::fromUtf8("感烟火灾探测器 ");
  298. case UserInfoReport::BuildingFireCtrlUnitType_IonSmokeSensor:
  299. return QString::fromUtf8("点型离子感烟火灾探测器 ");
  300. case UserInfoReport::BuildingFireCtrlUnitType_PhotoSmokeSensor:
  301. return QString::fromUtf8("点型光电感烟火灾探测器 ");
  302. case UserInfoReport::BuildingFireCtrlUnitType_LightSmokeSensor:
  303. return QString::fromUtf8("线型光束感烟火灾探测器 ");
  304. case UserInfoReport::BuildingFireCtrlUnitType_AirSmokeSensor:
  305. return QString::fromUtf8("吸气式感烟火灾探测器 ");
  306. case UserInfoReport::BuildingFireCtrlUnitType_FixSensor:
  307. return QString::fromUtf8("复合式火灾探测器 ");
  308. case UserInfoReport::BuildingFireCtrlUnitType_FixSmokeTemSensor:
  309. return QString::fromUtf8("复合式感烟感温探测器 ");
  310. case UserInfoReport::BuildingFireCtrlUnitType_FixLightTemSensor:
  311. return QString::fromUtf8("复合式感光感温火灾探测器 ");
  312. case UserInfoReport::BuildingFireCtrlUnitType_FixLightSmokeSensor:
  313. return QString::fromUtf8("复合式感光感烟火灾探测器 ");
  314. case UserInfoReport::BuildingFireCtrlUnitType_UltraSensor:
  315. return QString::fromUtf8("紫外火焰探测器 ");
  316. case UserInfoReport::BuildingFireCtrlUnitType_InfraSensor:
  317. return QString::fromUtf8("红外火焰探测器 ");
  318. case UserInfoReport::BuildingFireCtrlUnitType_PhotoSensor:
  319. return QString::fromUtf8("感光火灾探测器 ");
  320. case UserInfoReport::BuildingFireCtrlUnitType_GasSensor:
  321. return QString::fromUtf8("气体探测器 ");
  322. case UserInfoReport::BuildingFireCtrlUnitType_PicSensor:
  323. return QString::fromUtf8("图像摄像方式火灾探测器 ");
  324. case UserInfoReport::BuildingFireCtrlUnitType_SoundSensor:
  325. return QString::fromUtf8("感声火灾探测器 ");
  326. case UserInfoReport::BuildingFireCtrlUnitType_GasFireSupp:
  327. return QString::fromUtf8("气体灭火控制器 ");
  328. case UserInfoReport::BuildingFireCtrlUnitType_FireElectricity:
  329. return QString::fromUtf8("消防电气控制装置 ");
  330. case UserInfoReport::BuildingFireCtrlUnitType_CtrlDisplay:
  331. return QString::fromUtf8("消防控制室图形显示装置 ");
  332. case UserInfoReport::BuildingFireCtrlUnitType_Model:
  333. return QString::fromUtf8("模块 ");
  334. case UserInfoReport::BuildingFireCtrlUnitType_Input:
  335. return QString::fromUtf8("输入模块 ");
  336. case UserInfoReport::BuildingFireCtrlUnitType_Output:
  337. return QString::fromUtf8("输出模块 ");
  338. case UserInfoReport::BuildingFireCtrlUnitType_IO:
  339. return QString::fromUtf8("输入/输出模块 ");
  340. case UserInfoReport::BuildingFireCtrlUnitType_Relay:
  341. return QString::fromUtf8("中继模块 ");
  342. case UserInfoReport::BuildingFireCtrlUnitType_FirePump:
  343. return QString::fromUtf8("消防水泵 ");
  344. case UserInfoReport::BuildingFireCtrlUnitType_FireTank:
  345. return QString::fromUtf8("消防水箱 ");
  346. case UserInfoReport::BuildingFireCtrlUnitType_SparyPump:
  347. return QString::fromUtf8("喷淋泵 ");
  348. case UserInfoReport::BuildingFireCtrlUnitType_FlowIndicator:
  349. return QString::fromUtf8("水流指示器 ");
  350. case UserInfoReport::BuildingFireCtrlUnitType_SignalTap:
  351. return QString::fromUtf8("信号阀 ");
  352. case UserInfoReport::BuildingFireCtrlUnitType_AlarmTap:
  353. return QString::fromUtf8("报警阀 ");
  354. case UserInfoReport::BuildingFireCtrlUnitType_PressureSwitch:
  355. return QString::fromUtf8("压力开关 ");
  356. case UserInfoReport::BuildingFireCtrlUnitType_ValveDrive:
  357. return QString::fromUtf8("阀驱动装置 ");
  358. case UserInfoReport::BuildingFireCtrlUnitType_FireDoor:
  359. return QString::fromUtf8("防火门 ");
  360. case UserInfoReport::BuildingFireCtrlUnitType_FireTap:
  361. return QString::fromUtf8("防火阀 ");
  362. case UserInfoReport::BuildingFireCtrlUnitType_VentilationAC:
  363. return QString::fromUtf8("通风空调 ");
  364. case UserInfoReport::BuildingFireCtrlUnitType_FoamPump:
  365. return QString::fromUtf8("泡沫液泵 ");
  366. case UserInfoReport::BuildingFireCtrlUnitType_SolenoidValve:
  367. return QString::fromUtf8("管网电子阀 ");
  368. case UserInfoReport::BuildingFireCtrlUnitType_SmokeFan:
  369. return QString::fromUtf8("防烟排烟风机 ");
  370. case UserInfoReport::BuildingFireCtrlUnitType_SmokeFireValve:
  371. return QString::fromUtf8("排烟防火阀 ");
  372. case UserInfoReport::BuildingFireCtrlUnitType_ClosedAirOutlet:
  373. return QString::fromUtf8("常闭送风口 ");
  374. case UserInfoReport::BuildingFireCtrlUnitType_SmokeOutlet:
  375. return QString::fromUtf8("排烟口 ");
  376. case UserInfoReport::BuildingFireCtrlUnitType_SmokeBarrier:
  377. return QString::fromUtf8("电控挡烟垂壁 ");
  378. case UserInfoReport::BuildingFireCtrlUnitType_FireShutter:
  379. return QString::fromUtf8("防火卷帘控制器 ");
  380. case UserInfoReport::BuildingFireCtrlUnitType_FireDoorMonitor:
  381. return QString::fromUtf8("防火门监控器 ");
  382. case UserInfoReport::BuildingFireCtrlUnitType_Alarmer:
  383. return QString::fromUtf8("报警装置 ");
  384. }
  385. return QString("");
  386. }
  387. void UserInfoProcessCore::getOffLine(quint64 srcAddr)
  388. {
  389. for(int i=0;i<10000;i++){
  390. if((userinfoShm->userInfoParam[i].Unused[ParamIdxOnLine]==0x01)
  391. &&(userinfoShm->userInfoParam[i].UserInfoAddr==srcAddr)){
  392. userinfoShm->userInfoParam[i].Unused[ParamIdxOnLine]=0x00;
  393. getOnLine(userinfoShm->userInfoParam[i].UserInfoAddr,false);
  394. break;
  395. }
  396. }
  397. }
  398. void UserInfoProcessCore::time_out()
  399. {
  400. uint t = QDateTime::currentDateTime().toTime_t();
  401. dataProcessShm->processStatus[15].upTime[0].Enabled = 0x01;
  402. dataProcessShm->processStatus[15].upTime[0].t_time = t;
  403. }
  404. bool UserInfoProcessCore::chk1byte(quint8 d, quint8 v)
  405. {
  406. return ((d&v)==v);
  407. }
  408. bool UserInfoProcessCore::chk2byte(quint16 d, quint16 v)
  409. {
  410. return ((d&v)==v);
  411. }
  412. bool UserInfoProcessCore::chk4byte(quint32 d, quint32 v)
  413. {
  414. return ((d&v)==v);
  415. }
  416. bool UserInfoProcessCore::check_dev(qulonglong devId)
  417. {
  418. for(int i=0;i<10000;i++){
  419. if(devId==userinfoShm->userInfoParam[i].UserInfoAddr)
  420. return true;
  421. }
  422. return false;
  423. }
  424. quint16 UserInfoProcessCore::get_method(qulonglong devId)
  425. {
  426. quint16 ret = 0x0000;
  427. for(int i=0;i<10000;i++){
  428. if(devId==userinfoShm->userInfoParam[i].UserInfoAddr)
  429. return userinfoShm->userInfoParam[i].UserInfoType;
  430. }
  431. return ret;
  432. }
  433. qint16 UserInfoProcessCore::getDeviceIdx(quint64 addr)
  434. {
  435. for(qint16 i=0;i<10000;i++){
  436. if(userinfoShm->userInfoParam[i].UserInfoAddr==addr)
  437. return i;
  438. }
  439. return -1;
  440. }
  441. void UserInfoProcessCore::CommData(QString deviceid, int dir, QString data)
  442. {
  443. logthread->appendData(data);
  444. wssServer->subReport(deviceid,dir,false,false,data);
  445. }
  446. void UserInfoProcessCore::appendLOg(QString log)
  447. {
  448. logthread->appendData(log);
  449. }
  450. void UserInfoProcessCore::getWrongData(QString data)
  451. {
  452. logthread->appendWrongData(data);
  453. }
  454. void UserInfoProcessCore::new_incomming()
  455. {
  456. QTcpSocket *so = sr->nextPendingConnection();
  457. QString ip = so->peerAddress().toString();
  458. UserinfoCommThread *thread = new UserinfoCommThread(this,so);
  459. connect(thread,SIGNAL(getCommData(QString)),this,SLOT(appendLOg(QString)));
  460. connect(thread,SIGNAL(CommData(QString,int,QString)),this,SLOT(CommData(QString,int,QString)));
  461. connect(thread,SIGNAL(getWrongData(QString)),this,SLOT(getWrongData(QString)));
  462. connect(thread,SIGNAL(getOnLine(quint64,bool)),this,SLOT(getOnLine(quint64,bool)));
  463. connect(thread,SIGNAL(getOffLine(quint64)),this,SLOT(getOffLine(quint64)));
  464. connect(thread,SIGNAL(getBuildingFireCtrlReport(quint8,QString,void*)),this,SLOT(getBuildingFireCtrlReport(quint8,QString,void*)));
  465. connect(thread,SIGNAL(getHaetBeat(quint64)),this,SLOT(getHaertBeat(quint64)));
  466. connect(thread,SIGNAL(getSyncData(quint64,QByteArray)),this,SLOT(getSyncData(quint64,QByteArray)));
  467. thread->start();
  468. }
  469. void UserInfoProcessCore::getHaertBeat(quint64 srcAddr)
  470. {
  471. #ifdef JdxfDb
  472. dbThread->appendSql(QString("update sp_devices_status set devicestatus=0, true_status=0, lastcommtime='%1', statustime='%1' where deviceid=%2")
  473. .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(srcAddr));
  474. #endif
  475. }
  476. QString UserInfoProcessCore::getOwnerAddr(quint64 devid, quint8 sysAddr, quint32 areaid, quint32 point, quint32 hostNum){
  477. QString Address = "";
  478. QString sql = "";
  479. if(!db.isOpen())
  480. db.open();
  481. if(db.isOpen()){
  482. // if((devid==90004)||(devid==90048)||(devid==90051)||(devid==90085)||(devid==90086)||(devid==90142)||(devid==90145)||(devid==90151)||(devid==90152)||(devid==90153)){
  483. // sql = QString("select `area`, `type`, `info` from `sp_owner_point` where `device_code`=%1 and `Com_idx`=%2 and `loop`=%3 and `pno`=%4 and `host_num`=%5")
  484. // .arg(devid).arg(sysAddr).arg(areaid).arg(point).arg(hostNum);
  485. // }else{
  486. // sql = QString("select `area`, `type`, `info` from `sp_owner_point` where `device_code`=%1 and `Com_idx`=%2 and `loop`=%3 and `pno`=%4")
  487. // .arg(devid).arg(sysAddr).arg(areaid).arg(point);
  488. // }
  489. if(hostNum != 0){
  490. sql = QString("select `area`, `type`, `info` from `sp_owner_point` where `device_code`=%1 and `Com_idx`=%2 and `loop`=%3 and `pno`=%4 and `host_num`=%5")
  491. .arg(devid).arg(sysAddr).arg(areaid).arg(point).arg(hostNum);
  492. }else{
  493. sql = QString("select `area`, `type`, `info` from `sp_owner_point` where `device_code`=%1 and `Com_idx`=%2 and `loop`=%3 and `pno`=%4")
  494. .arg(devid).arg(sysAddr).arg(areaid).arg(point);
  495. }
  496. this->appendLOg(QString("+++++++++++++ sql +++++ %1").arg(sql));
  497. QSqlQuery qry = db.exec(sql);
  498. if(qry.next()){
  499. QString area = qry.value(0).toString();
  500. int type = qry.value(1).toInt();
  501. QString info = qry.value(2).toString();
  502. QString name="";
  503. switch (type) {
  504. case 0:
  505. name = QString::fromUtf8(",通用设备");
  506. break;
  507. case 1:
  508. name = QString::fromUtf8(",火灾报警控制器");
  509. break;
  510. case 10:
  511. name = QString::fromUtf8(",可燃气体探测器");
  512. break;
  513. case 11:
  514. name = QString::fromUtf8(",点型可燃气体探测器");
  515. break;
  516. case 12:
  517. name = QString::fromUtf8(",独立式可燃气体探测器");
  518. break;
  519. case 13:
  520. name = QString::fromUtf8(",线型可燃气体探测器");
  521. break;
  522. case 15:
  523. name = QString::fromUtf8(",电气火灾监控报警器");
  524. break;
  525. case 16:
  526. name = QString::fromUtf8(",剩余电流式电气火灾监控探测器");
  527. break;
  528. case 17:
  529. name = QString::fromUtf8(",测温式电气火灾监控探测器");
  530. break;
  531. case 21:
  532. name = QString::fromUtf8(",探测回路");
  533. break;
  534. case 22:
  535. name = QString::fromUtf8(",火灾显示盘");
  536. break;
  537. case 23:
  538. name = QString::fromUtf8(",手动火灾报警按钮");
  539. break;
  540. case 24:
  541. name = QString::fromUtf8(",消火栓按钮");
  542. break;
  543. case 25:
  544. name = QString::fromUtf8(",火灾探测器");
  545. break;
  546. case 30:
  547. name = QString::fromUtf8(",感温火灾探测器");
  548. break;
  549. case 31:
  550. name = QString::fromUtf8(",点型感温火灾探测器");
  551. break;
  552. case 32:
  553. name = QString::fromUtf8(",点型感温火灾探测器(s型)");
  554. break;
  555. case 33:
  556. name = QString::fromUtf8(",点型感温火灾探测器(R型)");
  557. break;
  558. case 34:
  559. name = QString::fromUtf8(",线型感温火灾探测器");
  560. break;
  561. case 35:
  562. name = QString::fromUtf8(",线型感温火灾探测器(S型)");
  563. break;
  564. case 36:
  565. name = QString::fromUtf8(",线型感温火灾探测器(R型)");
  566. break;
  567. case 37:
  568. name = QString::fromUtf8(",光纤感温火灾探测器");
  569. break;
  570. case 40:
  571. name = QString::fromUtf8(",感烟火灾探测器");
  572. break;
  573. case 41:
  574. name = QString::fromUtf8(",点型离子感烟火灾探测器");
  575. break;
  576. case 42:
  577. name = QString::fromUtf8(",点型光电感烟火灾探测器");
  578. break;
  579. case 43:
  580. name = QString::fromUtf8(",线型光束感烟火灾探测器");
  581. break;
  582. case 44:
  583. name = QString::fromUtf8(",吸气式感烟火灾探测器");
  584. break;
  585. case 50:
  586. name = QString::fromUtf8(",复合式火灾探测器");
  587. break;
  588. case 51:
  589. name = QString::fromUtf8(",复合式感烟感温火灾探测器");
  590. break;
  591. case 52:
  592. name = QString::fromUtf8(",复合式感光感温火灾探浏器");
  593. break;
  594. case 53:
  595. name = QString::fromUtf8(",复合式感光感烟火灾探测器");
  596. break;
  597. case 61:
  598. name = QString::fromUtf8(",紫外火焰探测器");
  599. break;
  600. case 62:
  601. name = QString::fromUtf8(",红外火焰探测器");
  602. break;
  603. case 69:
  604. name = QString::fromUtf8(",感光火灾探测器");
  605. break;
  606. case 74:
  607. name = QString::fromUtf8(",气体探测器");
  608. break;
  609. case 78:
  610. name = QString::fromUtf8(",图像摄像方式火灾探测器");
  611. break;
  612. case 79:
  613. name = QString::fromUtf8(",感声火灾探测器");
  614. break;
  615. case 81:
  616. name = QString::fromUtf8(",气体灭火控制器");
  617. break;
  618. case 82:
  619. name = QString::fromUtf8(",消防电气控制装置");
  620. break;
  621. case 83:
  622. name = QString::fromUtf8(",消防控制室图形显示装置");
  623. break;
  624. case 84:
  625. name = QString::fromUtf8(",模块");
  626. break;
  627. case 85:
  628. name = QString::fromUtf8(",输入模块");
  629. break;
  630. case 86:
  631. name = QString::fromUtf8(",输出模块");
  632. break;
  633. case 87:
  634. name = QString::fromUtf8(",输入/输出模块");
  635. break;
  636. case 88:
  637. name = QString::fromUtf8(",中继模块");
  638. break;
  639. case 91:
  640. name = QString::fromUtf8(",消防水泵");
  641. break;
  642. case 92:
  643. name = QString::fromUtf8(",消防水箱");
  644. break;
  645. case 95:
  646. name = QString::fromUtf8(",喷淋泵");
  647. break;
  648. case 96:
  649. name = QString::fromUtf8(",水流指示器");
  650. break;
  651. case 97:
  652. name = QString::fromUtf8(",信号阀");
  653. break;
  654. case 98:
  655. name = QString::fromUtf8(",报警阀");
  656. break;
  657. case 99:
  658. name = QString::fromUtf8(",压力开关");
  659. break;
  660. case 101:
  661. name = QString::fromUtf8(",阀驱动装置");
  662. break;
  663. case 102:
  664. name = QString::fromUtf8(",防火门");
  665. break;
  666. case 103:
  667. name = QString::fromUtf8(",防火阀");
  668. break;
  669. case 104:
  670. name = QString::fromUtf8(",通风空调");
  671. break;
  672. case 105:
  673. name = QString::fromUtf8(",泡沫液泵");
  674. break;
  675. case 106:
  676. name = QString::fromUtf8(",管网电磁阀");
  677. break;
  678. case 111:
  679. name = QString::fromUtf8(",防烟排烟风机");
  680. break;
  681. case 113:
  682. name = QString::fromUtf8(",排烟防火阀");
  683. break;
  684. case 114:
  685. name = QString::fromUtf8(",常闭送风口");
  686. break;
  687. case 115:
  688. name = QString::fromUtf8(",排烟口");
  689. break;
  690. case 116:
  691. name = QString::fromUtf8(",电控挡烟垂壁");
  692. break;
  693. case 117:
  694. name = QString::fromUtf8(",防火卷帘控制器");
  695. break;
  696. case 118:
  697. name = QString::fromUtf8(",防火门监控器");
  698. break;
  699. case 121:
  700. name = QString::fromUtf8(",警报装置");
  701. break;
  702. case 128:
  703. name = QString::fromUtf8(",卷帘门");
  704. break;
  705. case 129:
  706. name = QString::fromUtf8(",广播模块");
  707. break;
  708. case 130:
  709. name = QString::fromUtf8(",门禁");
  710. break;
  711. case 131:
  712. name = QString::fromUtf8(",雨淋阀");
  713. break;
  714. case 132:
  715. name = QString::fromUtf8(",声光");
  716. break;
  717. case 133:
  718. name = QString::fromUtf8(",电梯迫降");
  719. break;
  720. case 134:
  721. name = QString::fromUtf8(",强切");
  722. break;
  723. case 135:
  724. name = QString::fromUtf8(",蝶阀");
  725. break;
  726. case 136:
  727. name = QString::fromUtf8(",补风机");
  728. break;
  729. case 137:
  730. name = QString::fromUtf8(",照明切断");
  731. break;
  732. case 138:
  733. name = QString::fromUtf8(",红外光束");
  734. break;
  735. case 139:
  736. name = QString::fromUtf8(",正压风阀");
  737. break;
  738. case 140:
  739. name = QString::fromUtf8(",智能光电");
  740. break;
  741. case 141:
  742. name = QString::fromUtf8(",空调切断");
  743. break;
  744. case 142:
  745. name = QString::fromUtf8(",控制模块");
  746. break;
  747. default:break;
  748. }
  749. Address = QString("%1%2%3")
  750. .arg(area.length()>0?QString("防火分区:%1,").arg(area):"")
  751. .arg(info).arg(name);
  752. }
  753. qry.clear();
  754. }
  755. return Address;
  756. }
  757. QString UserInfoProcessCore::getMAddr(quint64 devid, quint16 method, quint8 sysAddr, quint64 uaddr)
  758. {
  759. QString subAddr = "";
  760. QString Address = "";
  761. quint16 m=0x0000;
  762. if(sysAddr==1)
  763. m = method&0x000f;
  764. else if(sysAddr==2)
  765. m = (method>>4)&0x000f;
  766. else if(sysAddr==3)
  767. m = (method>>8)&0x000f;
  768. if(uaddr>0){
  769. switch(m){
  770. case 0:
  771. subAddr = getOwnerAddr(devid,sysAddr,(uaddr>>16)&0xffff,uaddr&0xffff,0);
  772. Address = QString::fromUtf8(",回路号:%1,设备号:%2").arg((uaddr>>16)&0xffff).arg(uaddr&0xffff);
  773. if(subAddr.length()>0)
  774. Address.append(QString(" (%1)").arg(subAddr));
  775. break;
  776. case 1:
  777. subAddr = getOwnerAddr(devid,sysAddr,((uaddr>>16)&0xffff)%1000,uaddr&0xffff,((uaddr>>16)&0xffff)/1000);
  778. Address = QString::fromUtf8(",主机号:%1,回路号:%2,设备号:%3 ").arg(((uaddr>>16)&0xffff)/1000).arg(((uaddr>>16)&0xffff)%1000).arg(uaddr&0xffff);
  779. if(subAddr.length()>0)
  780. Address.append(QString(" (%1)").arg(subAddr));
  781. break;
  782. case 2:
  783. subAddr = getOwnerAddr(devid,sysAddr,((uaddr>>16)&0xffff)%100,uaddr&0xffff,((uaddr>>16)&0xffff)/100);
  784. Address = QString::fromUtf8(",主机号:%1,回路号:%2,设备号:%3 ").arg(((uaddr>>16)&0xffff)/100).arg(((uaddr>>16)&0xffff)%100).arg(uaddr&0xffff);
  785. if(subAddr.length()>0)
  786. Address.append(QString(" (%1)").arg(subAddr));
  787. break;
  788. case 3:
  789. subAddr = getOwnerAddr(devid,sysAddr,(uaddr>>16)&0xffff,uaddr&0xffff,0);
  790. Address = QString::fromUtf8(",设备号:%1 ").arg(uaddr,8,16,QChar('0'));
  791. if(subAddr.length()>0)
  792. Address.append(QString(" (%1)").arg(subAddr));
  793. break;
  794. case 4:
  795. Address = QString::fromUtf8(",栋:%1,区:%2,层:%3,设备号:%4" )
  796. .arg((uaddr>>24)&0xff).arg((uaddr>>16)&0xff).arg((uaddr>>8)&0xff).arg(uaddr&0xff);
  797. break;
  798. case 0x000f:
  799. Address = QString::fromUtf8(",编号:%1-%2-%3,设备号:%4" )
  800. .arg((uaddr>>24)&0xff).arg((uaddr>>16)&0xff).arg((uaddr>>8)&0xff).arg(uaddr&0xff);
  801. break;
  802. default:
  803. subAddr = getOwnerAddr(devid,sysAddr,(uaddr>>16)&0xffff,uaddr&0xffff,0);
  804. Address = QString::fromUtf8(",设备号:%1").arg(uaddr,8,16,QChar('0'));
  805. if(subAddr.length()>0)
  806. Address.append(QString(" (%1)").arg(subAddr));
  807. break;
  808. }
  809. }
  810. else
  811. Address = "";
  812. return Address;
  813. }
  814. QString UserInfoProcessCore::devNumStr(quint64 addr){
  815. QString ret = "";
  816. ret.append(QString("%1").arg(addr&0xff,2,16,QChar('0')));
  817. ret.append(QString("%1").arg((addr>>8)&0xff,2,16,QChar('0')));
  818. ret.append(QString("%1").arg((addr>>16)&0xff,2,16,QChar('0')));
  819. ret.append(QString("%1").arg((addr>>24)&0xff,2,16,QChar('0')));
  820. ret.append(QString("%1").arg((addr>>32)&0xff,2,16,QChar('0')));
  821. ret.append(QString("%1").arg((addr>>40)&0xff,2,16,QChar('0')));
  822. return ret;
  823. }
  824. void UserInfoProcessCore::appendReportCount(quint64 srcAddr, quint8 repType)
  825. {
  826. if(repType>0x0f)
  827. return;
  828. for(int i=0;i<10000;i++){
  829. if(userinfoShm->userInfoParam[i].UserInfoAddr==srcAddr){
  830. quint8 idc = 0x20+repType*2;
  831. quint16 count = static_cast<quint16>((((userinfoShm->userInfoParam[i].Unused[idc+0]&0x00ff)<<8)
  832. |(userinfoShm->userInfoParam[i].Unused[idc+1]&0x00ff))+1);
  833. userinfoShm->userInfoParam[i].Unused[idc+0] = ((count>>8)&0xff);
  834. userinfoShm->userInfoParam[i].Unused[idc+1] = (count&0xff);
  835. break;
  836. }
  837. }
  838. }
  839. void UserInfoProcessCore::getBuildingFireCtrlReport(quint8 dataType, QString ip, void *data)
  840. {
  841. if(dataType==0x01){
  842. SysStatusReport *rep = static_cast<SysStatusReport *>(data);
  843. rep->SendTime = QDateTime::currentDateTime();
  844. rep->ReportTime = QDateTime::currentDateTime();
  845. getBuildingFireCtrlSysStatusReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->SysStatus,rep->SendTime,rep->ReportTime);
  846. #ifdef JdxfDb
  847. QString sta="";
  848. QString pos = QString("H%1P").arg(dataType,2,10,QChar('0'));
  849. QString add = QString::fromUtf8("端口号:%1").arg(rep->SysAddr);
  850. if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Normal)){
  851. sta = QString::fromUtf8("测试状态");
  852. pos.append("0");
  853. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_FireSta)){
  854. sta = QString::fromUtf8("火警");
  855. pos.append("1");
  856. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Trouble)){
  857. sta = QString::fromUtf8("故障");
  858. pos.append("2");
  859. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Shield)){
  860. sta = QString::fromUtf8("屏蔽");
  861. pos.append("3");
  862. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Super)){
  863. sta = QString::fromUtf8("监管");
  864. pos.append("4");
  865. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Open)){
  866. sta = QString::fromUtf8("启动");
  867. pos.append("5");
  868. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Feedback)){
  869. sta = QString::fromUtf8("反馈");
  870. pos.append("6");
  871. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Delay)){
  872. sta = QString::fromUtf8("延时");
  873. pos.append("7");
  874. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_MainPower)){
  875. sta = QString::fromUtf8("主电故障");
  876. pos.append("8");
  877. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_SubPower)){
  878. sta = QString::fromUtf8("备电故障");
  879. pos.append("9");
  880. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Bus)){
  881. sta = QString::fromUtf8("总线故障");
  882. pos.append("10");
  883. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Manual)){
  884. sta = QString::fromUtf8("手动");
  885. pos.append("11");
  886. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_ParamChanged)){
  887. sta = QString::fromUtf8("配置改变");
  888. pos.append("12");
  889. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Reset)){
  890. sta = QString::fromUtf8("复位");
  891. pos.append("13");
  892. }
  893. dbThread->appendSta(UiPoint(rep->SrcAddr,rep->SysAddr,0,rep->SysStatus,rep->ReportTime.toTime_t()));
  894. QString sql = QString::fromUtf8("insert into `sp_d%1` (`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`,`port`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10',%11)")
  895. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->SysStatus,4,16,QChar('0')).arg(sta).arg("").arg(add).arg(pos).arg(rep->SysStatus);
  896. dbThread->appendSql(sql);
  897. sql = QString::fromUtf8("insert into `sp_hj2017`(`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`,`port`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10',%11)")
  898. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->SysStatus,4,16,QChar('0')).arg(sta).arg("").arg(add).arg(pos).arg(rep->SysStatus);
  899. dbThread->appendAlarm(AlarmRep(rep->SrcAddr,sql,pos,rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss"),sta+","+add,rep->SysAddr,""));
  900. if(check_voicealarm(rep->SrcAddr)){
  901. QString Dat = QString::fromUtf8("IMEI=%1&time=%2&evt_name=%3&dwtype=1").arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(sta);
  902. voiceThreads[ttscur]->appendData(Dat);
  903. ttscur = (ttscur+1)&0x0f;
  904. }
  905. #endif
  906. }else if((dataType==0x15)||(dataType==0xcf)){
  907. UserinfoStatusReport *rep = static_cast<UserinfoStatusReport *>(data);
  908. rep->SendTime = QDateTime::currentDateTime();
  909. rep->ReportTime = QDateTime::currentDateTime();
  910. getBuildingFireUserinfoStaReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->UserinfoStatus,rep->SendTime,rep->ReportTime);
  911. #ifdef JdxfDb
  912. QString sta = "";
  913. QString pos = QString("U%1P").arg(dataType,2,10,QChar('0'));
  914. if(!chk1byte(rep->UserinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_Normal)){
  915. sta = QString::fromUtf8("测试状态");
  916. pos.append("0");
  917. }else if(chk1byte(rep->UserinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_FireSta)){
  918. sta = QString::fromUtf8("火警");
  919. pos.append("1");
  920. }else if(chk1byte(rep->UserinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_Trouble)){
  921. sta = QString::fromUtf8("故障");
  922. pos.append("2");
  923. }else if(chk1byte(rep->UserinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_MainPower)){
  924. sta = QString::fromUtf8("主电故障");
  925. pos.append("3");
  926. }else if(chk1byte(rep->UserinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_SubPower)){
  927. sta = QString::fromUtf8("备电故障");
  928. pos.append("4");
  929. }else if(chk1byte(rep->UserinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_UpComm)){
  930. sta = QString::fromUtf8("与监控中心通信故障");
  931. pos.append("5");
  932. }else if(chk1byte(rep->UserinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_DnComm)){
  933. sta = QString::fromUtf8("监测连线故障");
  934. pos.append("6");
  935. }
  936. // dbThread->appendSta(UiPoint(rep->SrcAddr,0,0,rep->UserinfoStatus,rep->ReportTime.toTime_t()));
  937. QString sql = QString::fromUtf8("insert into `sp_d%1` (`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  938. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->UserinfoStatus,2,16,QChar('0')).arg(sta).arg("").arg("").arg(pos);
  939. dbThread->appendSql(sql);
  940. sql = QString::fromUtf8("insert into `sp_hj2017`(`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  941. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->UserinfoStatus,2,16,QChar('0')).arg(sta).arg("").arg("").arg(pos);
  942. dbThread->appendAlarm(AlarmRep(rep->SrcAddr,sql,pos,rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss"),sta,0,""));
  943. if(check_voicealarm(rep->SrcAddr)){
  944. QString Dat = QString::fromUtf8("IMEI=%1&time=%2&evt_name=%3&dwtype=1").arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(sta);
  945. voiceThreads[ttscur]->appendData(Dat);
  946. ttscur = (ttscur+1)&0x0f;
  947. }
  948. #endif
  949. }else if((dataType==0x02)||(dataType==0xce)){
  950. UnitStatusReport *rep = static_cast<UnitStatusReport *>(data);
  951. rep->SendTime = QDateTime::currentDateTime();
  952. rep->ReportTime = QDateTime::currentDateTime();
  953. #ifdef JdxfDb
  954. QString sta = "";
  955. QString pos = QString("H%1P").arg(dataType,2,10,QChar('0'));
  956. if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Normal)){
  957. sta=QString::fromUtf8("测试状态");
  958. pos.append("0");
  959. appendReportCount(rep->SrcAddr,0x0a);
  960. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_FireSta)){
  961. sta = QString::fromUtf8("火警");
  962. pos.append("1");
  963. appendReportCount(rep->SrcAddr,0x02);
  964. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Trouble)){
  965. sta=QString::fromUtf8("故障");
  966. pos.append("2");
  967. appendReportCount(rep->SrcAddr,0x01);
  968. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Shield)){
  969. sta = QString::fromUtf8("屏蔽");
  970. pos.append("3");
  971. appendReportCount(rep->SrcAddr,0x07);
  972. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Super)){
  973. sta = QString::fromUtf8("监管");
  974. pos.append("4");
  975. appendReportCount(rep->SrcAddr,0x04);
  976. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Open)){
  977. sta = QString::fromUtf8("启动");
  978. pos.append("5");
  979. appendReportCount(rep->SrcAddr,0x05);
  980. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Feedback)){
  981. sta = QString::fromUtf8("反馈");
  982. pos.append("6");
  983. appendReportCount(rep->SrcAddr,0x03);
  984. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Delay)){
  985. sta = QString::fromUtf8("延时状态");
  986. pos.append("7");
  987. appendReportCount(rep->SrcAddr,0x0a);
  988. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Power)){
  989. sta = QString::fromUtf8("电源故障");
  990. pos.append("8");
  991. appendReportCount(rep->SrcAddr,0x01);
  992. }
  993. quint16 method = get_method(rep->SrcAddr);
  994. QString uAddr = QString::fromUtf8("端口号:%1").arg(rep->SysAddr)+ getMAddr(rep->SrcAddr, method,rep->SysAddr,rep->UnitAddr);
  995. QString sql = QString::fromUtf8("insert into `sp_d%1` (`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`,`port`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10',%11)")
  996. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->UintStatus,2,16,QChar('0')).arg(sta).arg(QString("%1,%2,%3").arg(rep->UnitAddr,8,16,QChar('0')).arg(((rep->UnitAddr)>>16)&0xffff).arg((rep->UnitAddr)&0xffff)).arg(uAddr).arg(pos).arg(rep->UintStatus);
  997. dbThread->appendSql(sql);
  998. sql = QString::fromUtf8("insert into `sp_hj2017`(`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`,`port`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10',%11)")
  999. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->UintStatus,2,16,QChar('0')).arg(sta).arg(QString("%1,%2,%3").arg(rep->UnitAddr,8,16,QChar('0')).arg(((rep->UnitAddr)>>16)&0xffff).arg((rep->UnitAddr)&0xffff)).arg(uAddr).arg(pos).arg(rep->UintStatus);
  1000. dbThread->appendAlarm(AlarmRep(rep->SrcAddr,sql,pos,rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss"),sta+","+uAddr,rep->SysAddr,QString("%1%2%3").arg(rep->UnitAddr,8,16,QChar('0')).arg(((rep->UnitAddr)>>16)&0xffff).arg((rep->UnitAddr)&0xffff)));
  1001. if(check_voicealarm(rep->SrcAddr)){
  1002. QString Dat = QString::fromUtf8("IMEI=%1&time=%2&evt_name=%3&dwtype=1").arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(sta);
  1003. voiceThreads[ttscur]->appendData(Dat);
  1004. ttscur = (ttscur+1)&0x0f;
  1005. }
  1006. #endif
  1007. }else if(dataType==0x88){
  1008. UserinfoStatusReport *rep = static_cast<UserinfoStatusReport *>(data);
  1009. rep->SendTime = QDateTime::currentDateTime();
  1010. rep->ReportTime = QDateTime::currentDateTime();
  1011. getBuildingFireUserinfoStaRestoreReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->UserinfoStatus,rep->SendTime,rep->ReportTime);
  1012. #ifdef JdxfDb
  1013. QString sta = "";
  1014. QString pos = QString("U%1P").arg(dataType,2,10,QChar('0'));
  1015. if(chk1byte(rep->UserinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_Normal)){
  1016. sta = QString::fromUtf8("恢复正常运行");
  1017. pos.append("0");
  1018. }else if(chk1byte(rep->UserinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_FireSta)){
  1019. sta = QString::fromUtf8("火警撤销");
  1020. pos.append("1");
  1021. }else if(chk1byte(rep->UserinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_Trouble)){
  1022. sta = QString::fromUtf8("故障撤销");
  1023. pos.append("2");
  1024. }else if(chk1byte(rep->UserinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_MainPower)){
  1025. sta = QString::fromUtf8("主电故障撤销");
  1026. pos.append("3");
  1027. }else if(chk1byte(rep->UserinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_SubPower)){
  1028. sta = QString::fromUtf8("备电故障撤销");
  1029. pos.append("4");
  1030. }else if(chk1byte(rep->UserinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_UpComm)){
  1031. sta = QString::fromUtf8("监控中心通信故障撤销");
  1032. pos.append("5");
  1033. }else if(chk1byte(rep->UserinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_DnComm)){
  1034. sta = QString::fromUtf8("监测连线通信故障撤销");
  1035. pos.append("6");
  1036. }
  1037. QString sql = QString::fromUtf8("insert into `sp_d%1` (`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  1038. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->UserinfoStatus,2,16,QChar('0')).arg(sta).arg("").arg("").arg(pos);
  1039. dbThread->appendSql(sql);
  1040. sql = QString::fromUtf8("insert into `sp_hj2017`(`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`,`clzt`,`clr`,`clsj`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10','1','admin','%11')")
  1041. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->UserinfoStatus,2,16,QChar('0')).arg(sta).arg("").arg("").arg(pos).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"));
  1042. if(rep->UserinfoStatus&0x79){
  1043. dbThread->appendAlarm(AlarmRep(rep->SrcAddr,sql,pos,rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss"),sta,0,""));
  1044. }else if(rep->UserinfoStatus&0x06){
  1045. dbThread->appendSql(sql);
  1046. }
  1047. #endif
  1048. }else if(dataType==0x87){
  1049. UnitStatusReport *rep = static_cast<UnitStatusReport *>(data);
  1050. rep->SendTime = QDateTime::currentDateTime();
  1051. rep->ReportTime = QDateTime::currentDateTime();
  1052. getBuildingFireCtrlUintStatusRestoreReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->UnitType,rep->UnitAddr,rep->UintStatus,rep->UnitNote,rep->SendTime,rep->ReportTime);
  1053. #ifdef JdxfDb
  1054. QString sta = "";
  1055. QString pos = QString("H%1P").arg(dataType,2,10,QChar('0'));
  1056. quint16 method = get_method(rep->SrcAddr);
  1057. QString uAddr = QString::fromUtf8("端口号:%1").arg(rep->SysAddr)+ getMAddr(rep->SrcAddr, method,rep->SysAddr,rep->UnitAddr);
  1058. if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Normal)){
  1059. sta = QString::fromUtf8("恢复正常运行");
  1060. pos.append("0");
  1061. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_FireSta)){
  1062. sta = QString::fromUtf8("火警撤销");
  1063. pos.append("1");
  1064. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Trouble)){
  1065. sta = QString::fromUtf8("故障撤销");
  1066. pos.append("2");
  1067. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Shield)){
  1068. sta = QString::fromUtf8("屏蔽撤销");
  1069. pos.append("3");
  1070. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Super)){
  1071. sta = QString::fromUtf8("监管撤销");
  1072. pos.append("4");
  1073. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Open)){
  1074. sta = QString::fromUtf8("停止");
  1075. pos.append("5");
  1076. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Feedback)){
  1077. sta = QString::fromUtf8("反馈撤销");
  1078. pos.append("6");
  1079. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Delay)){
  1080. sta = QString::fromUtf8("延时恢复");
  1081. pos.append("7");
  1082. }else if(chk2byte(rep->UintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Power)){
  1083. sta = QString::fromUtf8("电源故障撤销");
  1084. pos.append("8");
  1085. }
  1086. QString sql = QString::fromUtf8("insert into `sp_d%1` (`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  1087. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->UintStatus,2,16,QChar('0')).arg(sta).arg(QString("%1,%2,%3").arg(rep->UnitAddr,8,16,QChar('0')).arg(((rep->UnitAddr)>>16)&0xffff).arg((rep->UnitAddr)&0xffff)).arg(uAddr).arg(pos);
  1088. dbThread->appendSql(sql);
  1089. sql = QString::fromUtf8("insert into `sp_hj2017`(`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`,`clzt`,`clr`,`clsj`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10',1,'admin','%11')")
  1090. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->UintStatus,2,16,QChar('0')).arg(sta).arg(QString("%1,%2,%3").arg(rep->UnitAddr,8,16,QChar('0')).arg(((rep->UnitAddr)>>16)&0xffff).arg((rep->UnitAddr)&0xffff)).arg(uAddr).arg(pos).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"));
  1091. if(rep->UintStatus&0x0039)
  1092. dbThread->appendAlarm(AlarmRep(rep->SrcAddr,sql,pos,rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss"),sta+","+uAddr,rep->SysAddr,QString("%1%2%3").arg(rep->UnitAddr,8,16,QChar('0')).arg(((rep->UnitAddr)>>16)&0xffff).arg((rep->UnitAddr)&0xffff)));
  1093. else if(rep->UintStatus&0x0006)
  1094. dbThread->appendSql(sql);
  1095. #endif
  1096. }else if(dataType==0x86){
  1097. SysStatusReport *rep = static_cast<SysStatusReport *>(data);
  1098. rep->SendTime = QDateTime::currentDateTime();
  1099. rep->ReportTime = QDateTime::currentDateTime();
  1100. getBuildingFireCtrlSysStatusRestoreReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->SysStatus,rep->SendTime,rep->ReportTime);
  1101. #ifdef JdxfDb
  1102. QString sta = "";
  1103. QString pos = QString("H%1P").arg(dataType,2,10,QChar('0'));
  1104. QString uAddr = QString::fromUtf8("端口号:%1").arg(rep->SysAddr);
  1105. if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Normal)){
  1106. sta = QString::fromUtf8("恢复正常运行");
  1107. pos.append("0");
  1108. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_FireSta)){
  1109. sta = QString::fromUtf8("火警撤销");
  1110. pos.append("1");
  1111. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Trouble)){
  1112. sta = QString::fromUtf8("故障撤销");
  1113. pos.append("2");
  1114. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Shield)){
  1115. sta = QString::fromUtf8("屏蔽撤销");
  1116. pos.append("3");
  1117. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Super)){
  1118. sta = QString::fromUtf8("监管撤销");
  1119. pos.append("4");
  1120. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Open)){
  1121. sta = QString::fromUtf8("停止");
  1122. pos.append("5");
  1123. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Feedback)){
  1124. sta = QString::fromUtf8("反馈撤销");
  1125. pos.append("6");
  1126. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Delay)){
  1127. sta = QString::fromUtf8("延时撤销");
  1128. pos.append("7");
  1129. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_MainPower)){
  1130. sta = QString::fromUtf8("主电故障撤销");
  1131. pos.append("8");
  1132. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_SubPower)){
  1133. sta = QString::fromUtf8("备电故障撤销");
  1134. pos.append("9");
  1135. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Bus)){
  1136. sta = QString::fromUtf8("总线故障撤销");
  1137. pos.append("10");
  1138. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Manual)){
  1139. sta = QString::fromUtf8("自动");
  1140. pos.append("11");
  1141. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_ParamChanged)){
  1142. sta = QString::fromUtf8("配置改变撤销");
  1143. pos.append("12");
  1144. }else if(chk2byte(rep->SysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Reset)){
  1145. sta = QString::fromUtf8("复位撤销");
  1146. pos.append("13");
  1147. }
  1148. QString sql = QString::fromUtf8("insert into `sp_d%1` (`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  1149. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->SysStatus,2,16,QChar('0')).arg(sta).arg("").arg(uAddr).arg(pos);
  1150. dbThread->appendSql(sql);
  1151. sql = QString::fromUtf8("insert into `sp_hj2017`(`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`,`clzt`,`clr`,`clsj`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10',1,'admin','%11')")
  1152. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->SysStatus,2,16,QChar('0')).arg(sta).arg("").arg(uAddr).arg(pos).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"));
  1153. if(rep->SysStatus&0x0039)
  1154. dbThread->appendAlarm(AlarmRep(rep->SrcAddr,sql,pos,rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss"),sta+","+uAddr,rep->SysAddr,""));
  1155. else if(rep->SysStatus&0x3fc6)
  1156. dbThread->appendSql(sql);
  1157. #endif
  1158. }else if(dataType==0x89){
  1159. UnitStatusReport2 *rep = static_cast<UnitStatusReport2 *>(data);
  1160. rep->SendTime = QDateTime::currentDateTime();
  1161. rep->ReportTime = QDateTime::currentDateTime();
  1162. getBuildingFireCtrlUintStatusReport2(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->UnitType,rep->UnitAddr,rep->UintStatus,rep->UnitNote,rep->SendTime,rep->ReportTime);
  1163. #ifdef JdxfDb
  1164. QString sta = "";
  1165. QString pos = QString("H%1P").arg(dataType,2,10,QChar('0'));
  1166. quint16 method = get_method(rep->SrcAddr);
  1167. QString uAddr = QString::fromUtf8("端口号:%1").arg(rep->SysAddr)+ getMAddr(rep->SrcAddr, method,rep->SysAddr,rep->UnitAddr);
  1168. if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Normal&0x0000ffff))){
  1169. sta = QString::fromUtf8("测试");
  1170. pos.append("0");
  1171. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_FireSta&0x0000ffff))){
  1172. sta = QString::fromUtf8("火警");
  1173. pos.append("1");
  1174. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Trouble&0x0000ffff))){
  1175. sta = QString::fromUtf8("故障");
  1176. pos.append("2");
  1177. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Shield&0x0000ffff))){
  1178. sta = QString::fromUtf8("屏蔽");
  1179. pos.append("3");
  1180. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Super&0x0000ffff))){
  1181. sta = QString::fromUtf8("监管");
  1182. pos.append("4");
  1183. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Open&0x0000ffff))){
  1184. sta = QString::fromUtf8("启动");
  1185. pos.append("5");
  1186. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Feedback&0x0000ffff))){
  1187. sta = QString::fromUtf8("反馈");
  1188. pos.append("6");
  1189. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Delay&0x0000ffff))){
  1190. sta = QString::fromUtf8("延时");
  1191. pos.append("7");
  1192. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Power&0x0000ffff))){
  1193. sta = QString::fromUtf8("电源故障");
  1194. pos.append("8");
  1195. }
  1196. QString sql = QString::fromUtf8("insert into `sp_d%1` (`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  1197. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->UintStatus,2,16,QChar('0')).arg(sta).arg(QString("%1,%2,%3").arg(rep->UnitAddr,8,16,QChar('0')).arg(((rep->UnitAddr)>>16)&0xffff).arg((rep->UnitAddr)&0xffff)).arg(uAddr).arg(pos);
  1198. dbThread->appendSql(sql);
  1199. sql = QString::fromUtf8("insert into `sp_hj2017`(`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  1200. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->UintStatus,2,16,QChar('0')).arg(sta).arg(QString("%1,%2,%3").arg(rep->UnitAddr,8,16,QChar('0')).arg(((rep->UnitAddr)>>16)&0xffff).arg((rep->UnitAddr)&0xffff)).arg(uAddr).arg(pos);
  1201. dbThread->appendAlarm(AlarmRep(rep->SrcAddr,sql,pos,rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss"),sta+","+uAddr,rep->SysAddr,QString("%1%2%3").arg(rep->UnitAddr,8,16,QChar('0')).arg(((rep->UnitAddr)>>16)&0xffff).arg((rep->UnitAddr)&0xffff)));
  1202. if(check_voicealarm(rep->SrcAddr)){
  1203. QString Dat = QString::fromUtf8("IMEI=%1&time=%2&evt_name=%3&dwtype=1").arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(sta);
  1204. voiceThreads[ttscur]->appendData(Dat);
  1205. ttscur = (ttscur+1)&0x0f;
  1206. }
  1207. #endif
  1208. }else if(dataType==0x8a){
  1209. UnitStatusReport2 *rep = static_cast<UnitStatusReport2 *>(data);
  1210. rep->SendTime = QDateTime::currentDateTime();
  1211. rep->ReportTime = QDateTime::currentDateTime();
  1212. getBuildingFireCtrlUintStatusRestoreReport2(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->UnitType,rep->UnitAddr,rep->UintStatus,rep->UnitNote,rep->SendTime,rep->ReportTime);
  1213. #ifdef JdxfDb
  1214. QString sta = "";
  1215. QString pos = QString("H%1P").arg(dataType,2,10,QChar('0'));
  1216. quint16 method = get_method(rep->SrcAddr);
  1217. QString uAddr = QString::fromUtf8("端口号:%1").arg(rep->SysAddr)+ getMAddr(rep->SrcAddr, method,rep->SysAddr,rep->UnitAddr);
  1218. if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Normal&0x0000ffff))){
  1219. sta = QString::fromUtf8("恢复正常运行");
  1220. pos.append("0");
  1221. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_FireSta&0x0000ffff))){
  1222. sta = QString::fromUtf8("火警撤销");
  1223. pos.append("1");
  1224. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Trouble&0x0000ffff))){
  1225. sta = QString::fromUtf8("故障撤销");
  1226. pos.append("2");
  1227. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Shield&0x0000ffff))){
  1228. sta = QString::fromUtf8("屏蔽撤销");
  1229. pos.append("3");
  1230. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Super&0x0000ffff))){
  1231. sta = QString::fromUtf8("监管撤销");
  1232. pos.append("4");
  1233. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Open&0x0000ffff))){
  1234. sta = QString::fromUtf8("停止");
  1235. pos.append("5");
  1236. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Feedback&0x0000ffff))){
  1237. sta = QString::fromUtf8("反馈撤销");
  1238. pos.append("6");
  1239. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Delay&0x0000ffff))){
  1240. sta = QString::fromUtf8("延时撤销");
  1241. pos.append("7");
  1242. }else if(chk4byte(rep->UintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Power&0x0000ffff))){
  1243. sta = QString::fromUtf8("电源故障撤销");
  1244. pos.append("8");
  1245. }
  1246. QString sql = QString::fromUtf8("insert into `sp_d%1` (`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  1247. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->UintStatus,2,16,QChar('0')).arg(sta).arg(QString("%1,%2,%3").arg(rep->UnitAddr,8,16,QChar('0')).arg(((rep->UnitAddr)>>16)&0xffff).arg((rep->UnitAddr)&0xffff)).arg(uAddr).arg(pos);
  1248. dbThread->appendSql(sql);
  1249. sql = QString::fromUtf8("insert into `sp_hj2017`(`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`,`clzt`,`clr`,`clsj`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10',1,'admin','%11')")
  1250. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->UintStatus,2,16,QChar('0')).arg(sta).arg(QString("%1,%2,%3").arg(rep->UnitAddr,8,16,QChar('0')).arg(((rep->UnitAddr)>>16)&0xffff).arg((rep->UnitAddr)&0xffff)).arg(uAddr).arg(pos).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"));
  1251. if(rep->UintStatus&0x00000039)
  1252. dbThread->appendAlarm(AlarmRep(rep->SrcAddr,sql,pos,rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss"),sta,rep->SysAddr,QString("%1%2%3").arg(rep->UnitAddr,8,16,QChar('0')).arg(((rep->UnitAddr)>>16)&0xffff).arg((rep->UnitAddr)&0xffff)));
  1253. else
  1254. dbThread->appendSql(sql);
  1255. #endif
  1256. }else if(dataType==0x03){
  1257. UnitDataReport *rep = static_cast<UnitDataReport *>(data);
  1258. rep->SendTime = QDateTime::currentDateTime();
  1259. rep->ReportTime = QDateTime::currentDateTime();
  1260. getBuildingFireCtrlUintDateReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->UnitType,rep->UnitAddr,rep->UnitDataType,rep->UintData,rep->SendTime,rep->ReportTime);
  1261. }else if(dataType==0x04){
  1262. SysOperationReport *rep = static_cast<SysOperationReport *>(data);
  1263. rep->SendTime = QDateTime::currentDateTime();
  1264. rep->ReportTime = QDateTime::currentDateTime();
  1265. getBuildingFireCtrlOperationReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->OperationType,rep->UserId,rep->SendTime,rep->ReportTime);
  1266. #ifdef JdxfDb
  1267. QString sta = "";
  1268. QString pos = QString("H%1P").arg(dataType,2,10,QChar('0'));
  1269. QString uAddr = QString::fromUtf8("端口号:%1").arg(rep->SysAddr);
  1270. if(chk1byte(rep->OperationType,UserInfoReport::BuildingFireCtrlOperation_Reset)){
  1271. sta = QString::fromUtf8("复位");
  1272. pos.append("0");
  1273. }else if(chk1byte(rep->OperationType,UserInfoReport::BuildingFireCtrlOperation_Silent)){
  1274. sta = QString::fromUtf8("消音");
  1275. pos.append("1");
  1276. }else if(chk1byte(rep->OperationType,UserInfoReport::BuildingFireCtrlOperation_Manual)){
  1277. sta = QString::fromUtf8("手动");
  1278. pos.append("2");
  1279. }else if(chk1byte(rep->OperationType,UserInfoReport::BuildingFireCtrlOperation_Clear)){
  1280. sta = QString::fromUtf8("警情消除");
  1281. pos.append("3");
  1282. }else if(chk1byte(rep->OperationType,UserInfoReport::BuildingFireCtrlOperation_TestSelf)){
  1283. sta = QString::fromUtf8("自检");
  1284. pos.append("4");
  1285. }else if(chk1byte(rep->OperationType,UserInfoReport::BuildingFireCtrlOperation_Confirm)){
  1286. sta = QString::fromUtf8("确认");
  1287. pos.append("5");
  1288. }else if(chk1byte(rep->OperationType,UserInfoReport::BuildingFireCtrlOperation_Test)){
  1289. sta = QString::fromUtf8("测试");
  1290. pos.append("6");
  1291. }
  1292. QString sql = QString::fromUtf8("insert into `sp_d%1` (`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  1293. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->OperationType,2,16,QChar('0')).arg(sta).arg("").arg(uAddr).arg(pos);
  1294. dbThread->appendSql(sql);
  1295. sql = QString::fromUtf8("insert into `sp_hj2017`(`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  1296. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->OperationType,2,16,QChar('0')).arg(sta).arg("").arg(uAddr).arg(pos);
  1297. dbThread->appendAlarm(AlarmRep(rep->SrcAddr,sql,pos,rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss"),sta+","+uAddr,rep->SysAddr,""));
  1298. #endif
  1299. }else if(dataType==0x05){
  1300. SysVersionReport *rep = static_cast<SysVersionReport *>(data);
  1301. rep->SendTime = QDateTime::currentDateTime();
  1302. getBuildingFireCtrlVersionReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->Ver,rep->SendTime);
  1303. }else if(dataType==0x06){
  1304. SysNoteReport *rep = static_cast<SysNoteReport *>(data);
  1305. rep->SendTime = QDateTime::currentDateTime();
  1306. getBuildingFireCtrlSystemNoteReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->SysNote,rep->SendTime);
  1307. }else if(dataType==0x07){
  1308. UnitNoteReport *rep = static_cast<UnitNoteReport *>(data);
  1309. rep->SendTime = QDateTime::currentDateTime();
  1310. getBuildingFireCtrlUintNoteReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->UnitType,rep->UnitAddr,rep->UnitNote,rep->SendTime);
  1311. }else if(dataType==0x08){
  1312. SysTimeReport *rep = static_cast<SysTimeReport *>(data);
  1313. rep->SendTime = QDateTime::currentDateTime();
  1314. rep->ReportTime = QDateTime::currentDateTime();
  1315. getBuildingFireCtrlTimeReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->SendTime,rep->ReportTime);
  1316. }else if(dataType==0x18){
  1317. UserinfoOperationReport *rep = static_cast<UserinfoOperationReport *>(data);
  1318. rep->SendTime = QDateTime::currentDateTime();
  1319. rep->ReportTime = QDateTime::currentDateTime();
  1320. #ifdef JdxfDb
  1321. QString sta = "";
  1322. QString pos = QString("U%1P").arg(dataType,2,10,QChar('0'));
  1323. if(chk1byte(rep->UserinfoOpt,UserInfoReport::BuildinfFireUserinfoOperation_Reset)){
  1324. sta = QString::fromUtf8("复位");
  1325. pos .append("0");
  1326. appendReportCount(rep->SrcAddr,0x08);
  1327. }else if(chk1byte(rep->UserinfoOpt,UserInfoReport::BuildinfFireUserinfoOperation_Silent)){
  1328. sta = QString::fromUtf8("消音");
  1329. pos.append("1");
  1330. appendReportCount(rep->SrcAddr,0x09);
  1331. }else if(chk1byte(rep->UserinfoOpt,UserInfoReport::BuildinfFireUserinfoOperation_Manual)){
  1332. sta = QString::fromUtf8("手报");
  1333. pos.append("2");
  1334. appendReportCount(rep->SrcAddr,0x0a);
  1335. }else if(chk1byte(rep->UserinfoOpt,UserInfoReport::BuildinfFireUserinfoOperation_Clear)){
  1336. sta = QString::fromUtf8("警情消除");
  1337. pos.append("3");
  1338. appendReportCount(rep->SrcAddr,0x0a);
  1339. }else if(chk1byte(rep->UserinfoOpt,UserInfoReport::BuildinfFireUserinfoOperation_TestSelf)){
  1340. sta = QString::fromUtf8("自检");
  1341. pos.append("4");
  1342. appendReportCount(rep->SrcAddr,0x06);
  1343. }else if(chk1byte(rep->UserinfoOpt,UserInfoReport::BuildinfFireUserinfoOperation_PointEcho)){
  1344. sta = QString::fromUtf8("查岗应答");
  1345. pos.append("5");
  1346. appendReportCount(rep->SrcAddr,0x0a);
  1347. }else if(chk1byte(rep->UserinfoOpt,UserInfoReport::BuildinfFireUserinfoOperation_Test)){
  1348. sta = QString::fromUtf8("测试");
  1349. pos.append("6");
  1350. appendReportCount(rep->SrcAddr,0x0a);
  1351. }
  1352. QString sql = QString::fromUtf8("insert into `sp_d%1` (`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  1353. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->UserinfoOpt,2,16,QChar('0')).arg(sta).arg("").arg("").arg(pos);
  1354. dbThread->appendSql(sql);
  1355. sql = QString::fromUtf8("insert into `sp_hj2017`(`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  1356. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg(rep->UserinfoOpt,2,16,QChar('0')).arg(sta).arg("").arg("").arg(pos);
  1357. dbThread->appendAlarm(AlarmRep(rep->SrcAddr,sql,pos,rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss"),sta,0,""));
  1358. if(check_voicealarm(rep->SrcAddr)){
  1359. QString Dat = QString::fromUtf8("IMEI=%1&time=%2&evt_name=%3&dwtype=1").arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(sta);
  1360. voiceThreads[ttscur]->appendData(Dat);
  1361. ttscur = (ttscur+1)&0x0f;
  1362. }
  1363. #endif
  1364. }else if(dataType==0x19){
  1365. UserinfoVersionReport *rep = static_cast<UserinfoVersionReport *>(data);
  1366. rep->SendTime = QDateTime::currentDateTime();
  1367. getBuildingFireUserinfoVersionReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->Ver,rep->SendTime);
  1368. }else if(dataType==0x1a){
  1369. UserinfoParamreport *rep = static_cast<UserinfoParamreport *>(data);
  1370. rep->SendTime = QDateTime::currentDateTime();
  1371. getBuildingFireUserinfoParamNoteReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->PNote,rep->SendTime);
  1372. }else if(dataType==0x1c){
  1373. UserinfoTimeReport *rep = static_cast<UserinfoTimeReport *>(data);
  1374. rep->SendTime = QDateTime::currentDateTime();
  1375. rep->UiTime = QDateTime::currentDateTime();
  1376. getBuildingFireUserinfoTimeReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SendTime,rep->UiTime);
  1377. }else if(dataType==0x80){
  1378. UserinfoTimeReport *rep = static_cast<UserinfoTimeReport *>(data);
  1379. rep->SendTime = QDateTime::currentDateTime();
  1380. rep->UiTime = QDateTime::currentDateTime();
  1381. getBuildingFireUserinfoManuDateReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SendTime,rep->UiTime);
  1382. }else if((dataType==0x81)||(dataType==0xcb)){
  1383. UserinfoTimeReport *rep = static_cast<UserinfoTimeReport *>(data);
  1384. rep->SendTime = QDateTime::currentDateTime();
  1385. rep->UiTime = QDateTime::currentDateTime();
  1386. getBuildingFireUserinfoSignupTimeReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SendTime,rep->UiTime);
  1387. }else if(dataType==0x82){
  1388. UserInfoBootReport *rep = static_cast<UserInfoBootReport *>(data);
  1389. rep->SendTime = QDateTime::currentDateTime();
  1390. rep->ReportTime = QDateTime::currentDateTime();
  1391. getBuildingFireUserinfoBootReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->UserId,rep->SendTime,rep->ReportTime);
  1392. }else if(dataType==0x83){
  1393. UserInfoBootReport *rep = static_cast<UserInfoBootReport *>(data);
  1394. rep->SendTime = QDateTime::currentDateTime();
  1395. rep->ReportTime = QDateTime::currentDateTime();
  1396. getBuildingFireUserinfoShutdownReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->UserId,rep->SendTime,rep->ReportTime);
  1397. }else if(dataType==0x84){
  1398. UserInfoSysBootReport *rep = static_cast<UserInfoSysBootReport *>(data);
  1399. rep->SendTime = QDateTime::currentDateTime();
  1400. rep->ReportTime = QDateTime::currentDateTime();
  1401. getBuildingFireCtrlSysBootReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->SendTime,rep->ReportTime);
  1402. QString pos = "U132P1";
  1403. QString uadd = QString::fromUtf8("系统类型:%1 系统地址:%2 端口:%2").arg(rep->SysType).arg(rep->SysAddr);
  1404. QString sql = QString::fromUtf8("insert into `sp_d%1` (`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  1405. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg("").arg(QString::fromUtf8("火警总告警")).arg(uadd).arg("").arg(pos);
  1406. dbThread->appendSql(sql);
  1407. sql = QString::fromUtf8("insert into `sp_hj2017`(`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  1408. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg("").arg(QString::fromUtf8("火警总告警")).arg(uadd).arg("").arg(pos);
  1409. dbThread->appendAlarm(AlarmRep(rep->SrcAddr,sql,pos,rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss"),uadd,rep->SysAddr,""));
  1410. }else if(dataType==0x85){
  1411. UserInfoSysBootReport *rep = static_cast<UserInfoSysBootReport *>(data);
  1412. rep->SendTime = QDateTime::currentDateTime();
  1413. rep->ReportTime = QDateTime::currentDateTime();
  1414. getBuildingFireCtrlSysShutdownReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->SendTime,rep->ReportTime);
  1415. QString pos = "U132P1";
  1416. QString uadd = QString::fromUtf8("系统类型:%1 系统地址:%2 端口:%2").arg(rep->SysType).arg(rep->SysAddr);
  1417. QString sql = QString::fromUtf8("insert into `sp_d%1` (`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10')")
  1418. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg("").arg(QString::fromUtf8("火警总告警撤销")).arg(uadd).arg("").arg(pos);
  1419. dbThread->appendSql(sql);
  1420. sql = QString::fromUtf8("insert into `sp_hj2017`(`device_code`, `time`, `status`, `address`, `ncmd`, `data1`, `data2`, `data3`, `data4`, `data5`,`clzt`,`clr`,`clsj`) values ('%1', '%2', '%3', '%4','%5','%6','%7','%8','%9','%10',1,'admin','%2')")
  1421. .arg(rep->SrcAddr).arg(rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss")).arg("02").arg(ip).arg(dataType,2,10,QChar('0')).arg("").arg(QString::fromUtf8("火警总告警撤销")).arg(uadd).arg("").arg(pos);
  1422. dbThread->appendAlarm(AlarmRep(rep->SrcAddr,sql,pos,rep->ReportTime.toString("yyyy-MM-dd HH:mm:ss"),uadd,rep->SysAddr,""));
  1423. }else if(dataType==0xc8){
  1424. UserInfoCommReport *rep = static_cast<UserInfoCommReport *>(data);
  1425. rep->SendTime = QDateTime::currentDateTime();
  1426. rep->ReportTime = QDateTime::currentDateTime();
  1427. getBuildingFireUserinfoCommStaReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->CommSta,rep->SendTime,rep->ReportTime);
  1428. }else if(dataType==0xc9){
  1429. UserInfoCommReport *rep = static_cast<UserInfoCommReport *>(data);
  1430. rep->SendTime = QDateTime::currentDateTime();
  1431. rep->ReportTime = QDateTime::currentDateTime();
  1432. getBuildingFireUserinfoCommStaRestoreReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->CommSta,rep->SendTime,rep->ReportTime);
  1433. }else if(dataType==0xca){
  1434. UserinfoOperationReport *rep = static_cast<UserinfoOperationReport *>(data);
  1435. rep->SendTime = QDateTime::currentDateTime();
  1436. rep->ReportTime = QDateTime::currentDateTime();
  1437. getBuildingFireUserinfoPostsoutReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->UserId,rep->SendTime,rep->ReportTime);
  1438. }else if(dataType==0xcc){
  1439. UserinfoUnitFireTypereport *rep = static_cast<UserinfoUnitFireTypereport *>(data);
  1440. rep->SendTime = QDateTime::currentDateTime();
  1441. rep->ReportTime = QDateTime::currentDateTime();
  1442. getBuildingFireCtrlUintFireTypeReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->UnitType,rep->UnitAddr,rep->FireType,rep->UnitNote,rep->SendTime,rep->ReportTime);
  1443. }else if(dataType==0xcd){
  1444. UserInfoSysActStatusReport *rep = static_cast<UserInfoSysActStatusReport *>(data);
  1445. rep->SendTime = QDateTime::currentDateTime();
  1446. rep->ReportTime = QDateTime::currentDateTime();
  1447. getBuildingFireCtrlSysActStatusReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->SysType,rep->SysAddr,rep->ActStatus,rep->SendTime,rep->ReportTime);
  1448. }else if(dataType==0xd0){
  1449. UserinfoOperationReport *rep = static_cast<UserinfoOperationReport *>(data);
  1450. rep->SendTime = QDateTime::currentDateTime();
  1451. rep->ReportTime = QDateTime::currentDateTime();
  1452. getBuildingFireUserinfoOptTimeReport(rep->Sn,rep->SrcAddr,rep->DestAddr,dataType,rep->UserId,rep->SendTime,rep->ReportTime);
  1453. }
  1454. }
  1455. void UserInfoProcessCore::getBuildingFireUserinfoVersionReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint16 version, QDateTime sendTime)
  1456. {
  1457. UN_REFERENCED_PARAMETER(sn);
  1458. UN_REFERENCED_PARAMETER(srcAddr);
  1459. UN_REFERENCED_PARAMETER(destAddr);
  1460. UN_REFERENCED_PARAMETER(dataType);
  1461. #ifdef ytDb
  1462. QDateTime curTime = QDateTime::currentDateTime();
  1463. QString sql = QString::fromUtf8("insert into `sp_userinfo_param` (`id`, `device_id`, `param_type`, `param_value`, `report_time`, `store_time`) values (NULL,'%1','1','%2','%3','%4')")
  1464. .arg(srcAddr).arg(QString("%1.%2").arg(version>>8).arg(static_cast<char>(version&0xff),2,QChar('0'))).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1465. dbThread->appendSql(sql);
  1466. #endif
  1467. }
  1468. void UserInfoProcessCore::getBuildingFireUserinfoManuDateReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, QDateTime sendTime, QDateTime manuTime)
  1469. {
  1470. UN_REFERENCED_PARAMETER(sn);
  1471. UN_REFERENCED_PARAMETER(destAddr);
  1472. UN_REFERENCED_PARAMETER(dataType);
  1473. #ifdef ytDb
  1474. QDateTime curTime = QDateTime::currentDateTime();
  1475. QString sql = QString::fromUtf8("insert into `sp_userinfo_param` (`id`, `device_id`, `param_type`, `param_value`, `report_time`, `store_time`) values (NULL,'%1','2','%2','%3','%4')")
  1476. .arg(srcAddr).arg(manuTime.toString("yyyy-MM-dd")).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1477. dbThread->appendSql(sql);
  1478. #endif
  1479. }
  1480. void UserInfoProcessCore::getBuildingFireUserinfoParamNoteReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, QString pNote, QDateTime sendTime)
  1481. {
  1482. UN_REFERENCED_PARAMETER(sn);
  1483. UN_REFERENCED_PARAMETER(destAddr);
  1484. UN_REFERENCED_PARAMETER(dataType);
  1485. #ifdef ytDb
  1486. QDateTime curTime = QDateTime::currentDateTime();
  1487. QString sql = QString::fromUtf8("insert into `sp_userinfo_param` (`id`, `device_id`, `param_type`, `param_value`, `report_time`, `store_time`) values (NULL,'%1','3','%2','%3','%4')")
  1488. .arg(srcAddr).arg(pNote).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1489. dbThread->appendSql(sql);
  1490. #endif
  1491. }
  1492. void UserInfoProcessCore::getBuildingFireUserinfoTimeReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, QDateTime sendTime, QDateTime uiTime)
  1493. {
  1494. UN_REFERENCED_PARAMETER(sn);
  1495. UN_REFERENCED_PARAMETER(destAddr);
  1496. UN_REFERENCED_PARAMETER(dataType);
  1497. #ifdef ytDb
  1498. QDateTime curTime = QDateTime::currentDateTime();
  1499. QString sql = QString::fromUtf8("insert into `sp_userinfo_param` (`id`, `device_id`, `param_type`, `param_value`, `report_time`, `store_time`) values (NULL,'%1','4','%2','%3','%4')")
  1500. .arg(srcAddr).arg(uiTime.toString("yyyy-MM-dd HH:mm:ss")).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1501. dbThread->appendSql(sql);
  1502. #endif
  1503. }
  1504. void UserInfoProcessCore::getBuildingFireUserinfoSignupTimeReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, QDateTime sendTime, QDateTime signupTime)
  1505. {
  1506. UN_REFERENCED_PARAMETER(sn);
  1507. UN_REFERENCED_PARAMETER(destAddr);
  1508. UN_REFERENCED_PARAMETER(dataType);
  1509. #ifdef ytDb
  1510. QDateTime curTime = QDateTime::currentDateTime();
  1511. QString sql = QString::fromUtf8("insert into `sp_userinfo_operation` (`id`,`device_id`, `opt_type`, `opt_code`, `opt_value`, `user_id`, `send_time`, `report_time`, `store_time`) values (NULL,'%1','1',0,'%2',0,'%3','%4','%5')")
  1512. .arg(srcAddr).arg(QString::fromUtf8("报到,")+signupTime.toString("yyyy-MM-dd HH:mm:ss")).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(signupTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1513. dbThread->appendSql(sql);
  1514. #endif
  1515. }
  1516. void UserInfoProcessCore::getBuildingFireUserinfoBootReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 userId, QDateTime sendTime, QDateTime bootTime)
  1517. {
  1518. UN_REFERENCED_PARAMETER(sn);
  1519. UN_REFERENCED_PARAMETER(destAddr);
  1520. UN_REFERENCED_PARAMETER(dataType);
  1521. QString devNum = devNumStr(srcAddr);
  1522. #ifdef SyncIface
  1523. syncThread->appendData(SyncData(devNum,(qint32)4));
  1524. #endif
  1525. #ifdef ytDb
  1526. QDateTime curTime = QDateTime::currentDateTime();
  1527. QString sql = QString::fromUtf8("insert into `sp_userinfo_operation` (`id`,`device_id`, `opt_type`, `opt_code`, `opt_value`, `user_id`, `send_time`, `report_time`, `store_time`) values (NULL,'%1','2',0,'%2',%3,'%4','%5','%6')")
  1528. .arg(srcAddr).arg(bootTime.toString("yyyy-MM-dd HH:mm:dd")).arg(userId).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(bootTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1529. dbThread->appendSql(sql);
  1530. #endif
  1531. }
  1532. void UserInfoProcessCore::getBuildingFireUserinfoShutdownReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 userId, QDateTime sendTime, QDateTime shutdownTime)
  1533. {
  1534. UN_REFERENCED_PARAMETER(sn);
  1535. UN_REFERENCED_PARAMETER(destAddr);
  1536. UN_REFERENCED_PARAMETER(dataType);
  1537. #ifdef ytDb
  1538. QDateTime curTime = QDateTime::currentDateTime();
  1539. QString sql = QString::fromUtf8("insert into `sp_userinfo_operation` (`id`,`device_id`, `opt_type`, `opt_code`, `opt_value`, `user_id`, `send_time`, `report_time`, `store_time`) values (NULL,'%1','3',0,'%2',%3,'%4','%5','%6')")
  1540. .arg(srcAddr).arg(shutdownTime.toString("yyyy-MM-dd HH:mm:dd")).arg(userId).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(shutdownTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1541. dbThread->appendSql(sql);
  1542. #endif
  1543. }
  1544. void UserInfoProcessCore::getBuildingFireUserinfoOptTimeReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 userId, QDateTime sendTime, QDateTime reportTime)
  1545. {
  1546. UN_REFERENCED_PARAMETER(sn);
  1547. UN_REFERENCED_PARAMETER(destAddr);
  1548. UN_REFERENCED_PARAMETER(dataType);
  1549. #ifdef ytDb
  1550. QDateTime curTime = QDateTime::currentDateTime();
  1551. QString sql = QString::fromUtf8("insert into `sp_userinfo_operation` (`id`,`device_id`, `opt_type`, `opt_code`, `opt_value`, `user_id`, `send_time`, `report_time`, `store_time`) values (NULL,'%1','5',0,'%2',%3,'%4','%5','%6')")
  1552. .arg(srcAddr).arg(reportTime.toString("yyyy-MM-dd HH:mm:dd")).arg(userId).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1553. dbThread->appendSql(sql);
  1554. #endif
  1555. }
  1556. void UserInfoProcessCore::getBuildingFireUserinfoPostsoutReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 userId, QDateTime sendTime, QDateTime reportTime)
  1557. {
  1558. UN_REFERENCED_PARAMETER(sn);
  1559. UN_REFERENCED_PARAMETER(destAddr);
  1560. UN_REFERENCED_PARAMETER(dataType);
  1561. #ifdef ytDb
  1562. QDateTime curTime = QDateTime::currentDateTime();
  1563. QString sql = QString::fromUtf8("insert into `sp_userinfo_operation` (`id`,`device_id`, `opt_type`, `opt_code`, `opt_value`, `user_id`, `send_time`, `report_time`, `store_time`) values (NULL,'%1','6',0,'%2',%3,'%4','%5','%6')")
  1564. .arg(srcAddr).arg(reportTime.toString("yyyy-MM-dd HH:mm:dd")).arg(userId).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1565. dbThread->appendSql(sql);
  1566. #endif
  1567. }
  1568. void UserInfoProcessCore::getBuildingFireUserinfoCommStaReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 commSta, QDateTime sendTime, QDateTime reportTime)
  1569. {
  1570. UN_REFERENCED_PARAMETER(sn);
  1571. UN_REFERENCED_PARAMETER(destAddr);
  1572. UN_REFERENCED_PARAMETER(dataType);
  1573. QString devNum = devNumStr(srcAddr);
  1574. #ifdef SyncIface
  1575. syncThread->appendData(SyncData(devNum,0));
  1576. #endif
  1577. #ifdef ytDb
  1578. QDateTime curTime = QDateTime::currentDateTime();
  1579. QString sta = "";
  1580. // int pos = -1;
  1581. if(chk1byte(commSta,UserInfoReport::BuildingFireUserinfoUpcommStatus_WlanTrouble)){
  1582. sta.append(QString::fromUtf8("网线故障,"));
  1583. // pos = 0;
  1584. }
  1585. if(chk1byte(commSta,UserInfoReport::BuildingFireUserinfoUpcommStatus_WirlessTrouble)){
  1586. sta.append(QString::fromUtf8("无线故障,"));
  1587. // pos = 1;
  1588. }
  1589. if(chk1byte(commSta,UserInfoReport::BuildingFireUserinfoUpcommStatus_CommTrouble)){
  1590. sta.append(QString::fromUtf8("通信故障,"));
  1591. // pos = 2;
  1592. }
  1593. sta.append(reportTime.toString("yyyy-MM-dd HH:mm:ss"));
  1594. QString sql = QString::fromUtf8("insert into `sp_userinfo_report` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `stat_type`, `stat_code`, `status`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', -1, -1, -1, 0, '0', %2, '%3' ,'%4', '%5', '%6')")
  1595. .arg(srcAddr).arg(commSta).arg(sta).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1596. dbThread->appendSql(sql);
  1597. #endif
  1598. }
  1599. void UserInfoProcessCore::getBuildingFireUserinfoCommStaRestoreReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 commSta, QDateTime sendTime, QDateTime reportTime)
  1600. {
  1601. UN_REFERENCED_PARAMETER(sn);
  1602. UN_REFERENCED_PARAMETER(destAddr);
  1603. UN_REFERENCED_PARAMETER(dataType);
  1604. #ifdef ytDb
  1605. QDateTime curTime = QDateTime::currentDateTime();
  1606. QString sta = "";
  1607. // int pos = -1;
  1608. if(chk1byte(commSta,UserInfoReport::BuildingFireUserinfoUpcommStatus_WlanTrouble)){
  1609. sta.append(QString::fromUtf8("网线故障撤销,"));
  1610. // pos = 0;
  1611. }
  1612. if(chk1byte(commSta,UserInfoReport::BuildingFireUserinfoUpcommStatus_WirlessTrouble)){
  1613. sta.append(QString::fromUtf8("无线故障撤销,"));
  1614. // pos = 1;
  1615. }
  1616. if(chk1byte(commSta,UserInfoReport::BuildingFireUserinfoUpcommStatus_CommTrouble)){
  1617. sta.append(QString::fromUtf8("通信故障撤销,"));
  1618. // pos = 2;
  1619. }
  1620. sta.append(reportTime.toString("yyyy-MM-dd HH:mm:ss"));
  1621. QString sql = QString::fromUtf8("insert into `sp_userinfo_report` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `stat_type`, `stat_code`, `status`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', -1, -1, -1, 0, '0', %2, '%3' ,'%4', '%5', '%6')")
  1622. .arg(srcAddr).arg(commSta).arg(sta).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1623. dbThread->appendSql(sql);
  1624. #endif
  1625. }
  1626. void UserInfoProcessCore::getBuildingFireUserinfoStaReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 userinfoStatus, QDateTime sendTime, QDateTime reportTime)
  1627. {
  1628. UN_REFERENCED_PARAMETER(sn);
  1629. UN_REFERENCED_PARAMETER(destAddr);
  1630. QString devNum = devNumStr(srcAddr);
  1631. #ifdef ytDb
  1632. QDateTime curTime = QDateTime::currentDateTime();
  1633. QString sta = "";
  1634. // int pos = -1;
  1635. // quint8 alarmType = 0x03;
  1636. #endif
  1637. if(dataType==0x15){
  1638. if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_Normal)){
  1639. #ifdef ytDb
  1640. sta.append(QString::fromUtf8("测试状态,"));
  1641. // pos = 0;
  1642. #endif
  1643. }
  1644. if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_FireSta)){
  1645. #ifdef SyncIface
  1646. syncThread->appendData(SyncData(devNum,(qint32)1));
  1647. #endif
  1648. #ifdef ytDb
  1649. sta.append(QString::fromUtf8("火警,"));
  1650. // pos = 1;
  1651. // alarmType = 0x01;
  1652. #endif
  1653. }
  1654. if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_Trouble)){
  1655. #ifdef SyncIface
  1656. syncThread->appendData(SyncData(devNum,(qint32)0));
  1657. #endif
  1658. #ifdef ytDb
  1659. sta.append(QString::fromUtf8("故障,"));
  1660. // pos = 2;
  1661. // alarmType = 0x02;
  1662. #endif
  1663. }
  1664. if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_MainPower)){
  1665. #ifdef SyncIface
  1666. syncThread->appendData(SyncData(devNum,(qint32)0));
  1667. #endif
  1668. #ifdef ytDb
  1669. sta.append(QString::fromUtf8("主电故障,"));
  1670. // pos = 3;
  1671. // alarmType = 0x02;
  1672. #endif
  1673. }
  1674. if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_SubPower)){
  1675. #ifdef SyncIface
  1676. syncThread->appendData(SyncData(devNum,(qint32)0));
  1677. #endif
  1678. #ifdef ytDb
  1679. sta.append(QString::fromUtf8("备电故障,"));
  1680. // pos = 4;
  1681. // alarmType = 0x02;
  1682. #endif
  1683. }
  1684. if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_UpComm)){
  1685. #ifdef SyncIface
  1686. syncThread->appendData(SyncData(devNum,(qint32)0));
  1687. #endif
  1688. #ifdef ytDb
  1689. sta.append(QString::fromUtf8("与监控中心通信故障,"));
  1690. // pos = 5;
  1691. // alarmType = 0x02;
  1692. #endif
  1693. }
  1694. if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_DnComm)){
  1695. #ifdef SyncIface
  1696. syncThread->appendData(SyncData(devNum,(qint32)0));
  1697. #endif
  1698. #ifdef ytDb
  1699. sta.append(QString::fromUtf8("监测连线故障,"));
  1700. // pos = 6;
  1701. // alarmType = 0x02;
  1702. #endif
  1703. }
  1704. #ifdef ytDb
  1705. sta.append(reportTime.toString("yyyy-MM-dd HH:mm:ss"));
  1706. QString sql = QString::fromUtf8("insert into`sp_userinfo_report` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `stat_type`, `stat_code`, `status`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', -1, -1, -1, 0, '1', %2, '%3' ,'%4', '%5', '%6')")
  1707. .arg(srcAddr).arg(userinfoStatus).arg(sta).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1708. dbThread->appendSql(sql);
  1709. #endif
  1710. }else{
  1711. #ifdef ytDb
  1712. if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoOtherStatus_TimeErr)){
  1713. sta.append(QString::fromUtf8("时间异常"));
  1714. // pos = 0;
  1715. }
  1716. sta.append(reportTime.toString("yyyy-MM-dd HH:mm:ss"));
  1717. QString sql = QString::fromUtf8("insert into`sp_userinfo_report` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `stat_type`, `stat_code`, `status`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', -1, -1, -1, 0, '2', %2, '%3' ,'%4', '%5', '%6')")
  1718. .arg(srcAddr).arg(userinfoStatus).arg(sta).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1719. dbThread->appendSql(sql);
  1720. #endif
  1721. }
  1722. }
  1723. void UserInfoProcessCore::getBuildingFireUserinfoStaRestoreReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 userinfoStatus, QDateTime sendTime, QDateTime reportTime)
  1724. {
  1725. UN_REFERENCED_PARAMETER(sn);
  1726. UN_REFERENCED_PARAMETER(destAddr);
  1727. UN_REFERENCED_PARAMETER(dataType);
  1728. #ifdef ytDb
  1729. QDateTime curTime = QDateTime::currentDateTime();
  1730. QString sta = "";
  1731. // int pos = -1;
  1732. if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_Normal)){
  1733. sta.append(QString::fromUtf8("测试状态撤销(正常运行) "));
  1734. // pos = 0;
  1735. }
  1736. else if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_FireSta)){
  1737. sta.append(QString::fromUtf8("火警撤销 "));
  1738. // pos = 1;
  1739. }
  1740. else if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_Trouble)){
  1741. sta.append(QString::fromUtf8("故障撤销 "));
  1742. // pos = 2;
  1743. }
  1744. else if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_MainPower)){
  1745. sta.append(QString::fromUtf8("主电故障撤销 "));
  1746. // pos = 3;
  1747. }
  1748. else if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_SubPower)){
  1749. sta.append(QString::fromUtf8("备电故障撤销 "));
  1750. // pos = 4;
  1751. }
  1752. else if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_UpComm)){
  1753. sta.append(QString::fromUtf8("与监控中心通信故障撤销 "));
  1754. // pos = 5;
  1755. }
  1756. else if(chk1byte(userinfoStatus,UserInfoReport::BuildingFireUserinfoStatus_DnComm)){
  1757. sta.append(QString::fromUtf8("监测连线故障撤销 "));
  1758. // pos = 6;
  1759. }
  1760. sta.append(reportTime.toString("yyyy-MM-dd HH:mm:ss"));
  1761. QString sql = QString::fromUtf8("insert into`sp_userinfo_report` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `stat_type`, `stat_code`, `status`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', -1, -1, -1, 0, '1', %2, '%3' ,'%4', '%5', '%6')")
  1762. .arg(srcAddr).arg(userinfoStatus).arg(sta).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1763. dbThread->appendSql(sql);
  1764. #endif
  1765. }
  1766. void UserInfoProcessCore::getBuildingFireCtrlSysStatusReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, quint16 sysStatus, QDateTime sendTime, QDateTime reportTime)
  1767. {
  1768. UN_REFERENCED_PARAMETER(sn);
  1769. UN_REFERENCED_PARAMETER(destAddr);
  1770. UN_REFERENCED_PARAMETER(dataType);
  1771. QString devNum = devNumStr(srcAddr);
  1772. #ifdef ytDb
  1773. QDateTime curTime = QDateTime::currentDateTime();
  1774. QString sta = getSysStructType(sysType);
  1775. // int pos = -1;
  1776. #endif
  1777. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Normal)){
  1778. #ifdef ytDb
  1779. sta.append(QString::fromUtf8("测试状态,"));
  1780. // pos = 0;
  1781. #endif
  1782. }
  1783. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_FireSta)){
  1784. #ifdef SyncIface
  1785. syncThread->appendData(SyncData(devNum,(qint32)1));
  1786. #endif
  1787. #ifdef ytDb
  1788. sta.append(QString::fromUtf8("火警,"));
  1789. // pos = 1;
  1790. #endif
  1791. }
  1792. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Trouble)){
  1793. #ifdef SyncIface
  1794. syncThread->appendData(SyncData(devNum,(qint32)0));
  1795. #endif
  1796. #ifdef ytDb
  1797. sta.append(QString::fromUtf8("故障,"));
  1798. // pos = 2;
  1799. #endif
  1800. }
  1801. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Shield)){
  1802. #ifdef SyncIface
  1803. syncThread->appendData(SyncData(devNum,(qint32)6));
  1804. #endif
  1805. #ifdef ytDb
  1806. sta.append(QString::fromUtf8("屏蔽,"));
  1807. // pos = 3;
  1808. #endif
  1809. }
  1810. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Super)){
  1811. #ifdef SyncIface
  1812. syncThread->appendData(SyncData(devNum,(qint32)3));
  1813. #endif
  1814. #ifdef ytDb
  1815. sta.append(QString::fromUtf8("监管,"));
  1816. // pos = 4;
  1817. #endif
  1818. }
  1819. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Open)){
  1820. #ifdef SyncIface
  1821. syncThread->appendData(SyncData(devNum,(qint32)4));
  1822. #endif
  1823. #ifdef ytDb
  1824. sta.append(QString::fromUtf8("启动,"));
  1825. // pos = 5;
  1826. #endif
  1827. }
  1828. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Feedback)){
  1829. #ifdef SyncIface
  1830. syncThread->appendData(SyncData(devNum,(qint32)2));
  1831. #endif
  1832. #ifdef ytDb
  1833. sta.append(QString::fromUtf8("反馈,"));
  1834. // pos = 6;
  1835. #endif
  1836. }
  1837. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Delay)){
  1838. #ifdef ytDb
  1839. sta.append(QString::fromUtf8("延时,"));
  1840. // pos = 7;
  1841. #endif
  1842. }
  1843. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_MainPower)){
  1844. #ifdef SyncIface
  1845. syncThread->appendData(SyncData(devNum,(qint32)0));
  1846. #endif
  1847. #ifdef ytDb
  1848. sta.append(QString::fromUtf8("主电故障,"));
  1849. // pos = 8;
  1850. #endif
  1851. }
  1852. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_SubPower)){
  1853. #ifdef SyncIface
  1854. syncThread->appendData(SyncData(devNum,(qint32)0));
  1855. #endif
  1856. #ifdef ytDb
  1857. sta.append(QString::fromUtf8("备电故障,"));
  1858. // pos = 9;
  1859. #endif
  1860. }
  1861. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Bus)){
  1862. #ifdef SyncIface
  1863. syncThread->appendData(SyncData(devNum,(qint32)0));
  1864. #endif
  1865. #ifdef ytDb
  1866. sta.append(QString::fromUtf8("总线故障,"));
  1867. // pos = 10;
  1868. #endif
  1869. }
  1870. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Manual)){
  1871. #ifdef ytDb
  1872. sta.append(QString::fromUtf8("手动状态,"));
  1873. // pos = 11;
  1874. #endif
  1875. }
  1876. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_ParamChanged)){
  1877. #ifdef ytDb
  1878. sta.append(QString::fromUtf8("配置改变,"));
  1879. // pos = 12;
  1880. #endif
  1881. }
  1882. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Reset)){
  1883. #ifdef SyncIface
  1884. syncThread->appendData(SyncData(devNum,(qint32)7));
  1885. #endif
  1886. #ifdef ytDb
  1887. sta.append(QString::fromUtf8("复位,"));
  1888. // pos = 13;
  1889. #endif
  1890. }
  1891. #ifdef ytDb
  1892. sta.append(reportTime.toString("yyyy-MM-dd HH:mm:ss"));
  1893. QString sql = QString::fromUtf8("insert into`sp_userinfo_report` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `stat_type`, `stat_code`, `status`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', %2, %3, -1, 0, '2', %4, '%5' ,'%6', '%7', '%8')")
  1894. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(sysStatus).arg(sta).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1895. dbThread->appendSql(sql);
  1896. #endif
  1897. }
  1898. void UserInfoProcessCore::getBuildingFireCtrlSysStatusRestoreReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, quint16 sysStatus, QDateTime sendTime, QDateTime reportTime)
  1899. {
  1900. UN_REFERENCED_PARAMETER(sn);
  1901. UN_REFERENCED_PARAMETER(destAddr);
  1902. UN_REFERENCED_PARAMETER(dataType);
  1903. #ifdef ytDb
  1904. QDateTime curTime = QDateTime::currentDateTime();
  1905. QString sta = "";
  1906. // int pos = -1;
  1907. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Normal)){
  1908. sta.append(QString::fromUtf8("测试状态撤销,"));
  1909. // pos = 0;
  1910. }
  1911. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_FireSta)){
  1912. sta.append(QString::fromUtf8("火警撤销,"));
  1913. // pos = 1;
  1914. }
  1915. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Trouble)){
  1916. sta.append(QString::fromUtf8("故障撤销,"));
  1917. // pos = 2;
  1918. }
  1919. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Shield)){
  1920. sta.append(QString::fromUtf8("屏蔽撤销,"));
  1921. // pos = 3;
  1922. }
  1923. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Super)){
  1924. sta.append(QString::fromUtf8("监管撤销,"));
  1925. // pos = 4;
  1926. }
  1927. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Open)){
  1928. sta.append(QString::fromUtf8("启动撤销,"));
  1929. // pos = 5;
  1930. }
  1931. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Feedback)){
  1932. sta.append(QString::fromUtf8("反馈撤销,"));
  1933. // pos = 6;
  1934. }
  1935. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Delay)){
  1936. sta.append(QString::fromUtf8("延时撤销,"));
  1937. // pos = 7;
  1938. }
  1939. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_MainPower)){
  1940. sta.append(QString::fromUtf8("主电故障撤销,"));
  1941. // pos = 8;
  1942. }
  1943. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_SubPower)){
  1944. sta.append(QString::fromUtf8("备电故障撤销,"));
  1945. // pos = 9;
  1946. }
  1947. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Bus)){
  1948. sta.append(QString::fromUtf8("总线故障撤销,"));
  1949. // pos = 10;
  1950. }
  1951. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Manual)){
  1952. sta.append(QString::fromUtf8("手动状态撤销,"));
  1953. // pos = 11;
  1954. }
  1955. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_ParamChanged)){
  1956. sta.append(QString::fromUtf8("配置改变撤销,"));
  1957. // pos = 12;
  1958. }
  1959. if(chk2byte(sysStatus,UserInfoReport::BuildingFireCtrlSysStatus_Reset)){
  1960. sta.append(QString::fromUtf8("复位撤销,"));
  1961. // pos = 13;
  1962. }
  1963. sta.append(reportTime.toString("yyyy-MM-dd HH:mm:ss"));
  1964. QString sql = QString::fromUtf8("insert into`sp_userinfo_report` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `stat_type`, `stat_code`, `status`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', %2, %3, -1, 0, '2', %4, '%5' ,'%6', '%7', '%8')")
  1965. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(sysStatus).arg(sta).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1966. dbThread->appendSql(sql);
  1967. #endif
  1968. }
  1969. void UserInfoProcessCore::getBuildingFireCtrlVersionReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, quint16 version, QDateTime sendTime)
  1970. {
  1971. UN_REFERENCED_PARAMETER(sn);
  1972. UN_REFERENCED_PARAMETER(destAddr);
  1973. UN_REFERENCED_PARAMETER(dataType);
  1974. #ifdef ytDb
  1975. QDateTime curTime = QDateTime::currentDateTime();
  1976. QString ver = QString("%1.%2").arg((version>>8)&0xff).arg((version&0xff),2,10,QChar('0'));
  1977. QString sql = QString::fromUtf8("insert into `sp_userinfo_param` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `param_type` ,`param_value`, `report_time`, `store_time`) values (NULL, '%1', %2, %3, -1, 0, '1', '%4', '%5', '%6')")
  1978. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(ver).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1979. dbThread->appendSql(sql);
  1980. #endif
  1981. }
  1982. void UserInfoProcessCore::getBuildingFireCtrlSystemNoteReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, QString sysNote, QDateTime sendTime)
  1983. {
  1984. UN_REFERENCED_PARAMETER(sn);
  1985. UN_REFERENCED_PARAMETER(destAddr);
  1986. UN_REFERENCED_PARAMETER(dataType);
  1987. #ifdef ytDb
  1988. QDateTime curTime = QDateTime::currentDateTime();
  1989. QString sql = QString::fromUtf8("insert into `sp_userinfo_param` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `param_type` ,`param_value`, `report_time`, `store_time`) values (NULL, '%1', %2, %3, -1, 0, '1', '%4', '%5', '%6')")
  1990. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(sysNote).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  1991. dbThread->appendSql(sql);
  1992. #endif
  1993. }
  1994. void UserInfoProcessCore::getBuildingFireCtrlSysBootReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, QDateTime sendTime, QDateTime bootTime)
  1995. {
  1996. UN_REFERENCED_PARAMETER(sn);
  1997. UN_REFERENCED_PARAMETER(destAddr);
  1998. UN_REFERENCED_PARAMETER(dataType);
  1999. QString devNum = devNumStr(srcAddr);
  2000. #ifdef SyncIface
  2001. syncThread->appendData(SyncData(devNum,4));
  2002. #endif
  2003. #ifdef ytDb
  2004. QDateTime curTime = QDateTime::currentDateTime();
  2005. QString sql = QString::fromUtf8("insert into `sp_userinfo_operation` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `opt_type`, `opt_code`, `opt_value`, `user_id`, `send_time`, `report_time`, `store_time`) value (NULL, '%1', %2, %3, -1, 0, '1',0, '%4', 0, '%5', '%6', '%7')")
  2006. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(QString::fromUtf8("系统设备开机")+bootTime.toString("yyyy-MM-dd HH:mm:dd")).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(bootTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  2007. dbThread->appendSql(sql);
  2008. #endif
  2009. }
  2010. void UserInfoProcessCore::getBuildingFireCtrlSysShutdownReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, QDateTime sendTime, QDateTime shutdownTime)
  2011. {
  2012. UN_REFERENCED_PARAMETER(sn);
  2013. UN_REFERENCED_PARAMETER(destAddr);
  2014. UN_REFERENCED_PARAMETER(dataType);
  2015. #ifdef ytDb
  2016. QDateTime curTime = QDateTime::currentDateTime();
  2017. QString sql = QString::fromUtf8("insert into `sp_userinfo_operation` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `opt_type`, `opt_code`, `opt_value`, `user_id`, `send_time`, `report_time`, `store_time`) value (NULL, '%1', %2, %3, -1, 0, '2',0, '%4', 0, '%5', '%6', '%7')")
  2018. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(QString::fromUtf8("系统设备关机")+shutdownTime.toString("yyyy-MM-dd HH:mm:dd")).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(shutdownTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  2019. dbThread->appendSql(sql);
  2020. #endif
  2021. }
  2022. void UserInfoProcessCore::getBuildingFireCtrlSysActStatusReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, quint16 actStatus, QDateTime sendTime, QDateTime reportTime)
  2023. {
  2024. UN_REFERENCED_PARAMETER(sn);
  2025. UN_REFERENCED_PARAMETER(destAddr);
  2026. UN_REFERENCED_PARAMETER(dataType);
  2027. #ifdef ytDb
  2028. QDateTime curTime = QDateTime::currentDateTime();
  2029. QString sta = getSysStructType(sysType);
  2030. // int pos = -1;
  2031. if(chk2byte(actStatus,UserInfoReport::BuildingFireSysActStatus_AllowManual)){
  2032. sta.append(QString::fromUtf8("允许手动,"));
  2033. // pos = 0;
  2034. }
  2035. if(chk2byte(actStatus,UserInfoReport::BuildingFireSysActStatus_AllowAuto)){
  2036. sta.append(QString::fromUtf8("允许自动,"));
  2037. // pos = 1;
  2038. }
  2039. if(chk2byte(actStatus,UserInfoReport::BuildingFireSysActStatus_AllowSpray)){
  2040. sta.append(QString::fromUtf8("允许喷洒,"));
  2041. // pos = 2;
  2042. }
  2043. if(chk2byte(actStatus,UserInfoReport::BuildingFireSysActStatus_AllowManualOnly)){
  2044. sta.append(QString::fromUtf8("允许手动禁止自动,"));
  2045. // pos = 3;
  2046. }
  2047. if(chk2byte(actStatus,UserInfoReport::BuildingFireSysActStatus_AllowAutoOnly)){
  2048. sta.append(QString::fromUtf8("允许自动禁止手动,"));
  2049. // pos = 4;
  2050. }
  2051. if(chk2byte(actStatus,UserInfoReport::BuildingFireSysActStatus_NoManual)){
  2052. sta.append(QString::fromUtf8("禁止手动,"));
  2053. // pos = 8;
  2054. }
  2055. if(chk2byte(actStatus,UserInfoReport::BuildingFireSysActStatus_NoAuto)){
  2056. sta.append(QString::fromUtf8("禁止自动,"));
  2057. // pos = 9;
  2058. }
  2059. if(chk2byte(actStatus,UserInfoReport::BuildingFireSysActStatus_NoSpray)){
  2060. sta.append(QString::fromUtf8("禁止喷洒,"));
  2061. // pos = 10;
  2062. }
  2063. if(chk2byte(actStatus,UserInfoReport::BuildingFireSysActStatus_NoAutoManual)){
  2064. sta.append(QString::fromUtf8("禁止手自动,"));
  2065. // pos = 11;
  2066. }
  2067. sta.append(reportTime.toString("yyyy-MM-dd HH:mm:ss"));
  2068. QString sql = QString::fromUtf8("insert into `sp_userinfo_operation` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, opt_type`, `opt_code`, `opt_value`, `user_id`, `send_time`, `report_time`, `store_time`) value (NULL, '%1', %2, %3, -1, 0, '7', '%4', 0, '%5', '%6', '%7')")
  2069. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(sta).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  2070. dbThread->appendSql(sql);
  2071. #endif
  2072. }
  2073. void UserInfoProcessCore::getBuildingFireCtrlOperationReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, quint8 operationType, quint8 userId, QDateTime sendTime, QDateTime reportTime)
  2074. {
  2075. UN_REFERENCED_PARAMETER(sn);
  2076. UN_REFERENCED_PARAMETER(destAddr);
  2077. UN_REFERENCED_PARAMETER(dataType);
  2078. QString devNum = devNumStr(srcAddr);
  2079. #ifdef ytDb
  2080. QDateTime curTime = QDateTime::currentDateTime();
  2081. QString sta = getSysStructType(sysType);
  2082. // int pos = -1;
  2083. #endif
  2084. if(chk1byte(operationType,UserInfoReport::BuildingFireCtrlOperation_Reset)){
  2085. #ifdef SyncIface
  2086. syncThread->appendData(SyncData(devNum,7));
  2087. #endif
  2088. #ifdef ytDb
  2089. sta.append(QString::fromUtf8("复位,"));
  2090. // pos = 0;
  2091. #endif
  2092. }
  2093. if(chk1byte(operationType,UserInfoReport::BuildingFireCtrlOperation_Silent)){
  2094. #ifdef SyncIface
  2095. syncThread->appendData(SyncData(devNum,8));
  2096. #endif
  2097. #ifdef ytDb
  2098. sta.append(QString::fromUtf8("消音,"));
  2099. // pos = 1;
  2100. #endif
  2101. }
  2102. if(chk1byte(operationType,UserInfoReport::BuildingFireCtrlOperation_Manual)){
  2103. #ifdef SyncIface
  2104. syncThread->appendData(SyncData(devNum,1));
  2105. #endif
  2106. #ifdef ytDb
  2107. sta.append(QString::fromUtf8("手报,"));
  2108. // pos = 2;
  2109. #endif
  2110. }
  2111. if(chk1byte(operationType,UserInfoReport::BuildingFireCtrlOperation_Clear)){
  2112. #ifdef ytDb
  2113. sta.append(QString::fromUtf8("消除警报,"));
  2114. // pos = 3;
  2115. #endif
  2116. }
  2117. if(chk1byte(operationType,UserInfoReport::BuildingFireCtrlOperation_TestSelf)){
  2118. #ifdef SyncIface
  2119. syncThread->appendData(SyncData(devNum,5));
  2120. #endif
  2121. #ifdef ytDb
  2122. sta.append(QString::fromUtf8("自检,"));
  2123. // pos = 4;
  2124. #endif
  2125. }
  2126. if(chk1byte(operationType,UserInfoReport::BuildingFireCtrlOperation_Confirm)){
  2127. #ifdef ytDb
  2128. sta.append(QString::fromUtf8("确认,"));
  2129. // pos = 5;
  2130. #endif
  2131. }
  2132. if(chk1byte(operationType,UserInfoReport::BuildingFireCtrlOperation_Test)){
  2133. #ifdef ytDb
  2134. sta.append(QString::fromUtf8("测试,"));
  2135. // pos = 6;
  2136. #endif
  2137. }
  2138. #ifdef ytDb
  2139. sta.append(reportTime.toString("yyyy-MM-dd HH:mm:ss"));
  2140. QString sql = QString::fromUtf8("insert into `sp_userinfo_operation` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `opt_type`, `opt_code`, `opt_value`, `user_id`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', %2, %3, -1, 0, '8', %4, '%5', %6, '%7', '%8', '%9')")
  2141. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(operationType).arg(sta).arg(userId).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  2142. dbThread->appendSql(sql);
  2143. #endif
  2144. }
  2145. void UserInfoProcessCore::getBuildingFireCtrlTimeReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, QDateTime sendTime, QDateTime reportTime)
  2146. {
  2147. UN_REFERENCED_PARAMETER(sn);
  2148. UN_REFERENCED_PARAMETER(destAddr);
  2149. UN_REFERENCED_PARAMETER(dataType);
  2150. #ifdef ytDb
  2151. QDateTime curTime = QDateTime::currentDateTime();
  2152. QString sta = QString::fromUtf8("上报系统时间,");
  2153. sta.append(reportTime.toString("yyyy-MM-dd HH:mm:ss"));
  2154. QString sql = QString::fromUtf8("insert into `sp_userinfo_operation` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `opt_type`, `opt_code`, `opt_value`, `user_id`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', %2, %3, -1, 0, '8', %4, '%5', %6, '%7', '%8', '%9')")
  2155. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(0).arg(sta).arg(0).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  2156. dbThread->appendSql(sql);
  2157. #endif
  2158. }
  2159. void UserInfoProcessCore::getBuildingFireCtrlUintStatusReport2(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, quint8 unitType, quint32 unitAddr, quint32 uintStatus, QString unitNote, QDateTime sendTime, QDateTime reportTime)
  2160. {
  2161. UN_REFERENCED_PARAMETER(sn);
  2162. UN_REFERENCED_PARAMETER(destAddr);
  2163. UN_REFERENCED_PARAMETER(dataType);
  2164. QString devNum = devNumStr(srcAddr);
  2165. #ifdef ytDb
  2166. QDateTime curTime = QDateTime::currentDateTime();
  2167. QString sta = getSysStructType(sysType)+getUnitType(unitType);
  2168. // int pos = -1;
  2169. #endif
  2170. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Normal&0x0000ffff))){
  2171. #ifdef ytDb
  2172. sta.append(QString::fromUtf8("测试状态,"));
  2173. // pos = 0;
  2174. #endif
  2175. }
  2176. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_FireSta&0x0000ffff))){
  2177. #ifdef SyncIface
  2178. syncThread->appendData(SyncData(devNum,(qint32)1));
  2179. #endif
  2180. #ifdef ytDf
  2181. sta.append(QString::fromUtf8("火警,"));
  2182. // pos = 1;
  2183. #endif
  2184. }
  2185. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Trouble&0x0000ffff))){
  2186. #ifdef SyncIface
  2187. syncThread->appendData(SyncData(devNum,(qint32)0));
  2188. #endif
  2189. #ifdef ytDb
  2190. sta.append(QString::fromUtf8("故障,"));
  2191. // pos = 2;
  2192. #endif
  2193. }
  2194. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Shield&0x0000ffff))){
  2195. #ifdef SyncIface
  2196. syncThread->appendData(SyncData(devNum,(qint32)6));
  2197. #endif
  2198. #ifdef ytDb
  2199. sta.append(QString::fromUtf8("屏蔽,"));
  2200. // pos = 3;
  2201. #endif
  2202. }
  2203. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Super&0x0000ffff))){
  2204. #ifdef SyncIface
  2205. syncThread->appendData(SyncData(devNum,(qint32)3));
  2206. #endif
  2207. #ifdef ytDb
  2208. sta.append(QString::fromUtf8("监管,"));
  2209. // pos = 8;
  2210. #endif
  2211. }
  2212. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Open&0x0000ffff))){
  2213. #ifdef SyncIface
  2214. syncThread->appendData(SyncData(devNum,(qint32)4));
  2215. #endif
  2216. #ifdef ytDb
  2217. sta.append(QString::fromUtf8("启动,"));
  2218. // pos = 9;
  2219. #endif
  2220. }
  2221. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Feedback&0x0000ffff))){
  2222. #ifdef SyncIface
  2223. syncThread->appendData(SyncData(devNum,(qint32)2));
  2224. #endif
  2225. #ifdef ytDb
  2226. sta.append(QString::fromUtf8("反馈,"));
  2227. // pos = 10;
  2228. #endif
  2229. }
  2230. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Delay&0x0000ffff))){
  2231. #ifdef ytDb
  2232. sta.append(QString::fromUtf8("延时状态,"));
  2233. // pos = 11;
  2234. #endif
  2235. }
  2236. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Power&0x0000ffff))){
  2237. #ifdef SyncIface
  2238. syncThread->appendData(SyncData(devNum,(qint32)0));
  2239. #endif
  2240. #ifdef ytDb
  2241. sta.append(QString::fromUtf8("电源故障,"));
  2242. // pos = 12;
  2243. #endif
  2244. }
  2245. #ifdef ytDb
  2246. sta.append(reportTime.toString("yyyy-MM-dd HH:mm:ss"));
  2247. if(unitNote.trimmed().length()>0)
  2248. sta.append(",").append(unitNote.trimmed());
  2249. QString sql = QString::fromUtf8("insert into `sp_userinfo_report` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `stat_type`, `stat_code`, `status`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', %2, %3, %4, %5, '4', %6, '%7', '%8', '%9', '%10')")
  2250. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(unitType).arg(unitAddr).arg(uintStatus).arg(sta).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  2251. dbThread->appendSql(sql);
  2252. #endif
  2253. }
  2254. void UserInfoProcessCore::getBuildingFireCtrlUintStatusRestoreReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, quint8 unitType, quint32 unitAddr, quint16 uintStatus, QString unitNote, QDateTime sendTime, QDateTime reportTime)
  2255. {
  2256. UN_REFERENCED_PARAMETER(sn);
  2257. UN_REFERENCED_PARAMETER(destAddr);
  2258. UN_REFERENCED_PARAMETER(dataType);
  2259. UN_REFERENCED_PARAMETER(unitNote)
  2260. #ifdef ytDb
  2261. QDateTime curTime = QDateTime::currentDateTime();
  2262. QString sta = getSysStructType(sysType)+getUnitType(unitType);
  2263. // int pos = -1;
  2264. if(chk2byte(uintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Normal)){
  2265. sta.append(QString::fromUtf8("测试状态撤销(正常) "));
  2266. // pos = 0;
  2267. }
  2268. else if(chk2byte(uintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_FireSta)){
  2269. sta.append(QString::fromUtf8("火警撤销 "));
  2270. // pos = 1;
  2271. }
  2272. else if(chk2byte(uintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Trouble)){
  2273. sta.append(QString::fromUtf8("故障撤销 "));
  2274. // pos = 2;
  2275. }
  2276. else if(chk2byte(uintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Shield)){
  2277. sta.append(QString::fromUtf8("屏蔽撤销 "));
  2278. // pos = 3;
  2279. }
  2280. else if(chk2byte(uintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Super)){
  2281. sta.append(QString::fromUtf8("监管撤销 "));
  2282. // pos = 8;
  2283. }
  2284. else if(chk2byte(uintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Open)){
  2285. sta.append(QString::fromUtf8("停止 "));
  2286. // pos = 9;
  2287. }
  2288. else if(chk2byte(uintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Feedback)){
  2289. sta.append(QString::fromUtf8("反馈撤销 "));
  2290. // pos = 10;
  2291. }
  2292. else if(chk2byte(uintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Delay)){
  2293. sta.append(QString::fromUtf8("延时状态撤销 "));
  2294. // pos = 11;
  2295. }
  2296. else if(chk2byte(uintStatus,UserInfoReport::BuildingFireCtrlUnitStatus_Power)){
  2297. sta.append(QString::fromUtf8("电源故障撤销 "));
  2298. // pos = 12;
  2299. }
  2300. sta.append(reportTime.toString("yyyy-MM-dd HH:mm:ss"));
  2301. QString sql = QString::fromUtf8("insert into `sp_userinfo_report` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `stat_type`, `stat_code`, `status`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', %2, %3, %4, %5, '4', %6, '%7', '%8', '%9', '%10')")
  2302. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(unitType).arg(unitAddr).arg(uintStatus).arg(sta).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  2303. dbThread->appendSql(sql);
  2304. #endif
  2305. }
  2306. void UserInfoProcessCore::getBuildingFireCtrlUintStatusRestoreReport2(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, quint8 unitType, quint32 unitAddr, quint32 uintStatus, QString unitNote, QDateTime sendTime, QDateTime reportTime)
  2307. {
  2308. UN_REFERENCED_PARAMETER(sn);
  2309. UN_REFERENCED_PARAMETER(destAddr);
  2310. UN_REFERENCED_PARAMETER(dataType);
  2311. UN_REFERENCED_PARAMETER(unitNote)
  2312. #ifdef ytDb
  2313. QDateTime curTime = QDateTime::currentDateTime();
  2314. QString sta = getSysStructType(sysType)+getUnitType(unitType);
  2315. // int pos =-1;
  2316. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Normal&0x0000ffff))){
  2317. sta.append(QString::fromUtf8("测试状态撤销,"));
  2318. // pos = 0;
  2319. }
  2320. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_FireSta&0x0000ffff))){
  2321. sta.append(QString::fromUtf8("火警撤销,"));
  2322. // pos = 1;
  2323. }
  2324. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Trouble&0x0000ffff))){
  2325. sta.append(QString::fromUtf8("故障撤销,"));
  2326. // pos = 2;
  2327. }
  2328. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Shield&0x0000ffff))){
  2329. sta.append(QString::fromUtf8("屏蔽撤销,"));
  2330. // pos = 3;
  2331. }
  2332. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Super&0x0000ffff))){
  2333. sta.append(QString::fromUtf8("监管撤销,"));
  2334. // pos = 8;
  2335. }
  2336. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Open&0x0000ffff))){
  2337. sta.append(QString::fromUtf8("停止,"));
  2338. // pos = 9;
  2339. }
  2340. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Feedback&0x0000ffff))){
  2341. sta.append(QString::fromUtf8("反馈撤销,"));
  2342. // pos = 10;
  2343. }
  2344. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Delay&0x0000ffff))){
  2345. sta.append(QString::fromUtf8("延时状态撤销,"));
  2346. // pos = 11;
  2347. }
  2348. if(chk4byte(uintStatus,static_cast<quint32>(UserInfoReport::BuildingFireCtrlUnitStatus_Power&0x0000ffff))){
  2349. sta.append(QString::fromUtf8("电源故障撤销,"));
  2350. // pos = 12;
  2351. }
  2352. sta.append(reportTime.toString("yyyy-MM-dd HH:mm:ss"));
  2353. QString sql = QString::fromUtf8("insert into `sp_userinfo_report` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `stat_type`, `stat_code`, `status`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', %2, %3, %4, %5, '4', %6, '%7', '%8', '%9', '%10')")
  2354. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(unitType).arg(unitAddr).arg(uintStatus).arg(sta).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  2355. dbThread->appendSql(sql);
  2356. #endif
  2357. }
  2358. void UserInfoProcessCore::getBuildingFireCtrlUintNoteReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, quint8 unitType, quint32 unitAddr, QString unitNote, QDateTime sendTime)
  2359. {
  2360. UN_REFERENCED_PARAMETER(sn);
  2361. UN_REFERENCED_PARAMETER(destAddr);
  2362. UN_REFERENCED_PARAMETER(dataType);
  2363. #ifdef ytDb
  2364. QDateTime curTime = QDateTime::currentDateTime();
  2365. QString sql = QString::fromUtf8("insert into `sp_userinfo_param` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `param_type`, `param_value`, `report_time`, `store_time`) values (NULL, '%1', %2, %3, %4, %5, '5', '%6', '%7', '%8')")
  2366. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(unitType).arg(unitAddr).arg(unitNote).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  2367. dbThread->appendSql(sql);
  2368. #endif
  2369. }
  2370. void UserInfoProcessCore::getBuildingFireCtrlUintFireTypeReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, quint8 unitType, quint32 unitAddr, quint16 fireType, QString unitNote, QDateTime sendTime, QDateTime reportTime)
  2371. {
  2372. UN_REFERENCED_PARAMETER(sn);
  2373. UN_REFERENCED_PARAMETER(destAddr);
  2374. UN_REFERENCED_PARAMETER(dataType);
  2375. #ifdef ytDb
  2376. QDateTime curTime = QDateTime::currentDateTime();
  2377. QString sta = getSysStructType(sysType)+getUnitType(unitType);
  2378. // int pos = -1;
  2379. if(chk2byte(fireType,UserInfoReport::BuildingFireUnitFireType_MisInfo)){
  2380. sta.append(QString::fromUtf8("误报,"));
  2381. // pos = 0;
  2382. }
  2383. if(chk2byte(fireType,UserInfoReport::BuildingFireUnitFireType_Confirm)){
  2384. sta.append(QString::fromUtf8("确认火警,"));
  2385. // pos = 1;
  2386. }
  2387. if(chk2byte(fireType,UserInfoReport::BuildingFireUnitFireType_Automatic)){
  2388. sta.append(QString::fromUtf8("自动火警(有人),"));
  2389. // pos = 2;
  2390. }
  2391. if(chk2byte(fireType,UserInfoReport::BuildingFireUnitFireType_Timeout)){
  2392. sta.append(QString::fromUtf8("火警超时(有人),"));
  2393. // pos = 3;
  2394. }
  2395. if(chk2byte(fireType,UserInfoReport::BuildingFireUnitFireType_Warning)){
  2396. sta.append(QString::fromUtf8("预警,"));
  2397. // pos = 4;
  2398. }
  2399. if(!chk2byte(fireType,UserInfoReport::BuildingFireUnitFireType_Keeping)){
  2400. sta.append(QString::fromUtf8("停止,"));
  2401. // pos = 5;
  2402. }
  2403. sta.append(reportTime.toString("yyyy-MM-dd HH:mm:ss"));
  2404. if(unitNote.trimmed().length()>0)
  2405. sta.append(",").append(unitNote.trimmed());
  2406. // dbThread->appendSta(UiPoint(srcAddr,0,unitAddr,fireType,sendTime.toTime_t()));
  2407. QString sql = QString::fromUtf8("insert into `sp_userinfo_report` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `stat_type`, `stat_code`, `status`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', %2, %3, %4, %5, '5', %6, '%7', '%8', '%9', '%10')")
  2408. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(unitType).arg(unitAddr).arg(fireType).arg(sta).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  2409. dbThread->appendSql(sql);
  2410. #endif
  2411. }
  2412. void UserInfoProcessCore::getBuildingFireCtrlUintDateReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 sysType, quint8 sysAddr, quint8 unitType, quint32 unitAddr, quint8 unitDataType, qint16 uintData, QDateTime sendTime, QDateTime reportTime)
  2413. {
  2414. UN_REFERENCED_PARAMETER(sn);
  2415. UN_REFERENCED_PARAMETER(destAddr);
  2416. UN_REFERENCED_PARAMETER(dataType);
  2417. #ifdef ytDb
  2418. QDateTime curTime = QDateTime::currentDateTime();
  2419. QString sta = getSysStructType(sysType)+getUnitType(unitType);
  2420. if(chk1byte(unitDataType,UserInfoReport::BuildingFireCtrlUnitDataType_Count))
  2421. sta = QString::fromUtf8("事件计数:%1 件").arg(static_cast<qint16>(uintData));
  2422. else if(chk1byte(unitDataType,UserInfoReport::BuildingFireCtrlUnitDataType_Height))
  2423. sta = QString::fromUtf8("高度:%1 米").arg(static_cast<qint16>(uintData)*0.01);
  2424. else if(chk1byte(unitDataType,UserInfoReport::BuildingFireCtrlUnitDataType_Temp))
  2425. sta = QString::fromUtf8("温度:%1 ℃").arg(static_cast<qint16>(uintData)*0.1);
  2426. else if(chk1byte(unitDataType,UserInfoReport::BuildingFireCtrlUnitDataType_MPa))
  2427. sta = QString::fromUtf8("压力:%1 MPa").arg(static_cast<qint16>(uintData)*0.1);
  2428. else if(chk1byte(unitDataType,UserInfoReport::BuildingFireCtrlUnitDataType_kPa))
  2429. sta = QString::fromUtf8("压力:%1 kPa").arg(static_cast<qint16>(uintData)*0.1);
  2430. else if(chk1byte(unitDataType,UserInfoReport::BuildingFireCtrlUnitDataType_LEL))
  2431. sta = QString::fromUtf8("气体浓度:%1%%LEL").arg(static_cast<qint16>(uintData)*0.1);
  2432. else if(chk1byte(unitDataType,UserInfoReport::BuildingFireCtrlUnitDataType_Sec))
  2433. sta = QString::fromUtf8("时间:%1秒").arg(static_cast<qint16>(uintData));
  2434. else if(chk1byte(unitDataType,UserInfoReport::BuildingFireCtrlUnitDataType_Volt))
  2435. sta = QString::fromUtf8("电压:%1V").arg(static_cast<qint16>(uintData)*0.1);
  2436. else if(chk1byte(unitDataType,UserInfoReport::BuildingFireCtrlUnitDataType_Amp))
  2437. sta = QString::fromUtf8("电流:%1A").arg(static_cast<qint16>(uintData)*0.1);
  2438. else if(chk1byte(unitDataType,UserInfoReport::BuildingFireCtrlUnitDataType_Flow))
  2439. sta = QString::fromUtf8("流量:%1L/s").arg(static_cast<qint16>(uintData)*0.1);
  2440. else if(chk1byte(unitDataType,UserInfoReport::BuildingFireCtrlUnitDataType_Blow))
  2441. sta = QString::fromUtf8("风量:%1m3/min").arg(static_cast<qint16>(uintData)*0.1);
  2442. else if(chk1byte(unitDataType,UserInfoReport::BuildingFireCtrlUnitDataType_Wind))
  2443. sta = QString::fromUtf8("风速:%1m/s").arg(static_cast<qint16>(uintData));
  2444. QString sql = QString::fromUtf8("insert into `sp_userinfo_report` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `stat_type`, `stat_code`, `status`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', %2, %3, %4, %5, '6', %6, '%7', '%8', '%9', '%10')")
  2445. .arg(srcAddr).arg(sysType).arg(sysAddr).arg(unitType).arg(unitAddr).arg(0).arg(sta).arg(sendTime.toString("yyyy-MM-dd HH:mm:ss")).arg(reportTime.toString("yyyy-MM-dd HH:mm:ss")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  2446. dbThread->appendSql(sql);
  2447. #endif
  2448. }
  2449. void UserInfoProcessCore::getOnLine(quint64 srcAddr, bool sta)
  2450. {
  2451. #ifdef JdxfDb
  2452. QDateTime curTime = QDateTime::currentDateTime();
  2453. QString stat = QString::fromUtf8("%1,%2").arg(sta?QString::fromUtf8("连线"):QString::fromUtf8("离线")).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  2454. QString sql = QString::fromUtf8("insert into `sp_userinfo_report` (`id`, `device_id`, `sys_type`, `sys_addr`, `unit_type`, `unit_addr`, `stat_type`, `status`, `send_time`, `report_time`, `store_time`) values (NULL, '%1', -1, -1, -1, 0, '0', '%2', '%3', '%3', '%3')")
  2455. .arg(srcAddr).arg(stat).arg(curTime.toString("yyyy-MM-dd HH:mm:ss"));
  2456. dbThread->appendSql(sql);
  2457. if(sta)
  2458. dbThread->appendSql(QString("update sp_devices_status set devicestatus=0 , true_status=0 , lastcommtime='%1', statustime='%1' where deviceid=%2")
  2459. .arg(curTime.toString("yyyy-MM-dd HH:mm:ss")).arg(srcAddr));
  2460. else
  2461. dbThread->appendSql(QString("update sp_devices_status set devicestatus=75, true_status=75, lastcommtime='%1', statustime='%1' where deviceid=%2")
  2462. .arg(curTime.toString("yyyy-MM-dd HH:mm:ss")).arg(srcAddr));
  2463. #endif
  2464. }