/************************************************************************ * Copyright 2009-2011 Hikvision Digital Technology Co., Ltd. * FileName : devicestate.cpp * Description : devicestate show * Modification History : none * Version : V1.0 * Time : 2009-11,12 * Author : wanggongpu * Descrp : *************************************************************************/ #include "devicestate.h" #include #include /************************************************************************ * Function : DeviceState * Description : instructor * Input : none * Output : none * Return : none *************************************************************************/ DeviceState::DeviceState(QList *devicetree, int* userid, QDialog *parent) : QDialog(parent) { ui.setupUi(this); m_dsuserid = userid; m_dsdevicetree =devicetree; QList::iterator it; for ( it = (*m_dsdevicetree).begin(); it != (*m_dsdevicetree).end(); ++it) { if ((*it).getUsrID()==(*m_dsuserid)) { ui.lineEdit_nodename->setText((*it).getDeviceName()); ui.lineEdit_deviceIP->setText((*it).getIP()); if (!NET_DVR_GetDVRWorkState(*m_dsuserid, &m_dsworkstate)) { QMessageBox::information(this,tr("NET_DVR_GetDVRWorkState failed"), \ tr("SDK_Last_Error =%1").arg(NET_DVR_GetLastError())); return ; } printDVRState(&m_dsworkstate); } } } /************************************************************************ * Function : ~DeviceState * Description : destructor * Input : none * Output : none * Return : none *************************************************************************/ DeviceState::~DeviceState() { } /************************************************************************ * Function : printDVRState * Description : print the dvr state info * Input : none * Output : none * Return : none *************************************************************************/ void DeviceState::printDVRState(LPNET_DVR_WORKSTATE pworkstate) { QString state; /*0£­Õý³££»1£­CPUÕ¼ÓÃÂÊÌ«¸ß£¬³¬¹ý85%£»2£­Ó²¼þ´íÎó£¬ÀýÈç´®¿ÚÒì³£*/ switch (pworkstate->dwDeviceStatic) { case 0: state.append("Normal"); break; case 1: state.append("CPU Plus 85%"); break; case 2: state.append("Hardware Error"); break; default: break; } ui.lineEdit_devicestate->setText(state); insertChannelState( pworkstate); insertDiskState( pworkstate); return; } /************************************************************************ * Function : insertChannelState * Description : insert item to table * Input : none * Output : none * Return : none *************************************************************************/ void DeviceState::insertChannelState( LPNET_DVR_WORKSTATE pworkstate) { int i=0; int j=0; int row=0; for (i=0; isetFlags(Qt::ItemIsEnabled); QTableWidgetItem *RecordStatic ; if (int(pworkstate->struChanStatic[i].byRecordStatic)==0) { RecordStatic = new QTableWidgetItem(tr("%1").arg("Not record")); } else { RecordStatic = new QTableWidgetItem(tr("%1").arg("Record")); } RecordStatic->setFlags(Qt::ItemIsEnabled); QTableWidgetItem *SignalStatic ; if (pworkstate->struChanStatic[i].bySignalStatic==0) { SignalStatic= new QTableWidgetItem(tr("%1").arg("Record")); } else { SignalStatic= new QTableWidgetItem(tr("%1").arg("ÐźŶªÊ§")); } SignalStatic->setFlags(Qt::ItemIsEnabled); QTableWidgetItem *HardwareStatic; if (pworkstate->struChanStatic[i].byHardwareStatic==0) { HardwareStatic= new QTableWidgetItem(tr("%1").arg("Õý³£")); } else { HardwareStatic= new QTableWidgetItem(tr("%1").arg("Òì³£")); } HardwareStatic->setFlags(Qt::ItemIsEnabled); QTableWidgetItem *BitRate = new QTableWidgetItem(tr("%1 "\ ).arg(int(pworkstate->struChanStatic[i].dwBitRate))); BitRate->setFlags(Qt::ItemIsEnabled); QTableWidgetItem *LinkNum = new QTableWidgetItem(tr("%1 "\ ).arg(int(pworkstate->struChanStatic[i].dwLinkNum))); LinkNum->setFlags(Qt::ItemIsEnabled); row = ui.channeltableWidget->rowCount(); ui.channeltableWidget->insertRow(row); ui.channeltableWidget->setItem(row, 0, DiskNum); ui.channeltableWidget->setItem(row, 1, RecordStatic); ui.channeltableWidget->setItem(row, 2, SignalStatic); ui.channeltableWidget->setItem(row, 3, HardwareStatic); ui.channeltableWidget->setItem(row, 4, LinkNum); ui.channeltableWidget->setItem(row, 5, BitRate); j+=pworkstate->struChanStatic[i].dwLinkNum; } QString string = QString::number(j); ui.lineEdit_totalconnum->setText(string); return ; } /************************************************************************ * Function : insertDiskState * Description : add item to table * Input : none * Output : none * Return : none *************************************************************************/ void DeviceState::insertDiskState( LPNET_DVR_WORKSTATE pworkstate) { int row ; int i; for (i=0; isetFlags(Qt::ItemIsEnabled); QTableWidgetItem *disksize = new QTableWidgetItem(tr("%1").arg(int(pworkstate->struHardDiskStatic[i].dwVolume))); disksize->setFlags(Qt::ItemIsEnabled); QTableWidgetItem *freesize = new QTableWidgetItem(tr("%1").arg(int(pworkstate->struHardDiskStatic[i].dwFreeSpace))); freesize->setFlags(Qt::ItemIsEnabled); QString diskstate; if ((pworkstate->struHardDiskStatic[i].dwVolume!=0) &&(pworkstate->struHardDiskStatic[i].dwHardDiskStatic == 0)) { diskstate.append("»î¶¯"); } else { diskstate =QString::number(int(pworkstate->struHardDiskStatic[i].dwFreeSpace)); } QTableWidgetItem *diskstatic = new QTableWidgetItem(diskstate); diskstatic->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); diskstatic->setFlags(Qt::ItemIsEnabled); row = ui.disktableWidget->rowCount(); ui.disktableWidget->insertRow(row); ui.disktableWidget->setItem(row, 0, hisknum); ui.disktableWidget->setItem(row, 1, disksize); ui.disktableWidget->setItem(row, 2, freesize); ui.disktableWidget->setItem(row, 3, diskstatic); } return ; } /************************************************************************ * Function : on_pushButton_refresh_clicked * Description : refresh the dialogue * Input : none * Output : none * Return : none *************************************************************************/ void DeviceState::on_pushButton_refresh_clicked() { //´ýÍêÉÆ for (int i=0; irowCount(); i++) { for (int j=0;jcolumnCount();j++ ) { delete ui.disktableWidget->takeItem(i, j); } ui.disktableWidget->removeRow(i); } ui.disktableWidget->setRowCount(0); for (int i=0; irowCount(); i++) { for (int j=0;jcolumnCount();j++ ) { delete ui.channeltableWidget->takeItem(i, j); } ui.channeltableWidget->removeRow(i); } ui.channeltableWidget->setRowCount(0); if (!NET_DVR_GetDVRWorkState(*m_dsuserid, &m_dsworkstate)) { QMessageBox::information(this,tr("NET_DVR_GetDVRWorkState failed"), \ tr("SDK_Last_Error =%1").arg(NET_DVR_GetLastError())); return ; } printDVRState(&m_dsworkstate); return; } /************************************************************************ * Function : on_pushButton_exit_clicked * Description : exit the dialogue * Input : none * Output : none * Return : none *************************************************************************/ void DeviceState::on_pushButton_exit_clicked() { close(); return; }