/*
|
* Copyright(C) 2010,Hikvision Digital Technology Co., Ltd
|
*
|
* ÎļþÃû³Æ£ºcalarminhandletype.cpp
|
* Ãè Êö£º
|
* µ±Ç°°æ±¾£º1.0
|
* ×÷ ÕߣºÅËÑǶ«
|
* ´´½¨ÈÕÆÚ£º2010Äê1ÔÂ15ÈÕ
|
* Ð޸ļǼ£º
|
*/
|
|
|
#include "calarminhandletype.h"
|
#include "publicfuc.h"
|
|
CAlarmInHandleType::CAlarmInHandleType(QWidget *parent)
|
: QDialog(parent)
|
{
|
ui.setupUi(this);
|
ui.tableChannel->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
|
ui.tableAlarmOut->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
|
|
m_lUserID = -1;
|
m_pAlarmInInfo = NULL; //Íⲿ´«È룬ÍⲿÊÍ·Å
|
|
int i;
|
//¼ÓÈëʱ¼ä±à¼¿ò
|
for(i = 0; i < MAX_TIMESEGMENT_V30; i++)
|
{
|
ui.vLayStartHour->addWidget(&(m_editStartHour[i]));
|
ui.vLayStartMin->addWidget(&(m_editStartMin[i]));
|
ui.vLayEndHour->addWidget(&(m_editEndHour[i]));
|
ui.vLayEndMin->addWidget(&(m_editEndMin[i]));
|
}
|
QStringList list;
|
list<<"Monday"<<"Tuesday"<<"Wednesday"<<"Thursday"<<"Friday"<<"Saturday"<<"Sunday";
|
ui.comboWeekDay->addItems(list);
|
|
connect(ui.comboWeekDay, SIGNAL(activated(int)), this, SLOT(comboWeekDayChanged(int)));
|
}
|
|
CAlarmInHandleType::~CAlarmInHandleType()
|
{
|
|
}
|
|
int CAlarmInHandleType::setUserID(long lUserID)
|
{
|
if(lUserID >= 0)
|
{
|
m_lUserID = lUserID;
|
return HPR_OK;
|
}
|
else
|
{
|
return HPR_ERROR;
|
}
|
}
|
|
int CAlarmInHandleType::setAlarmInInfo(LPNET_DVR_ALARMINCFG_V30 pAlarmInInfo)
|
{
|
if(pAlarmInInfo == NULL)
|
{
|
return HPR_ERROR;
|
}
|
|
//½«É豸²ÎÊýдÈë½çÃæ
|
m_pAlarmInInfo = pAlarmInInfo;
|
return HPR_OK;
|
}
|
|
//ÉèÖÃÊý¾Ýµ½½çÃæ
|
int CAlarmInHandleType::getAlarmInHandleInfo()
|
{
|
if(m_pAlarmInInfo == NULL || m_lUserID < 0)
|
{
|
return HPR_ERROR;
|
}
|
|
//»ñÈ¡¿ÉÓüÏñͨµÀ
|
int iTotalChanNum;
|
if(KIT_CreateCheckboxChanArr(m_lUserID, m_pCheckChannel, &iTotalChanNum)==HPR_ERROR)
|
{
|
return HPR_ERROR;
|
}
|
//½«ÕâЩ²úÉúµÄcheckbox¼ÓÈ뵽ͨµÀtableÖÐÈ¥
|
//´¥·¢Í¨µÀÊä³ö
|
//1.Çå¿Õ±í¸ñ
|
int iRow;
|
ui.tableChannel->clear();
|
for(iRow = 0; iRow < ui.tableChannel->rowCount(); iRow++)
|
{
|
ui.tableChannel->removeRow(iRow);
|
}
|
//2.Íù±í¸ñÖмÓÈëÊý¾Ý
|
ui.tableChannel->setRowCount(iTotalChanNum);
|
ui.tableChannel->setColumnCount(1);
|
int i;
|
iRow = 0;
|
for(i = 0; i < MAX_CHANNUM_V30; i++)
|
{
|
if(m_pCheckChannel[i] != NULL)
|
{
|
ui.tableChannel->setCellWidget(iRow, 0, m_pCheckChannel[i]);
|
if(m_pAlarmInInfo->byRelRecordChan[i] == 1)
|
{
|
m_pCheckChannel[i]->setChecked(TRUE);
|
}
|
else
|
{
|
m_pCheckChannel[i]->setChecked(FALSE);
|
}
|
iRow++;
|
}
|
}
|
|
//**±¨¾¯Êä³ö**//
|
int iTotalAlarmOutNum;
|
if(KIT_CreateCheckboxAlarmOut(m_lUserID, m_pcheckAlarmOut, &iTotalAlarmOutNum) == HPR_ERROR)
|
{
|
return HPR_ERROR;
|
}
|
//1.Çå¿Õ±¨¾¯Êä³ö±í¸ñ
|
ui.tableAlarmOut->clear();
|
for(iRow = 0; iRow < ui.tableAlarmOut->rowCount(); iRow++)
|
{
|
ui.tableAlarmOut->removeRow(iRow);
|
}
|
//2.Íù±í¸ñÖмÓÈëÊý¾Ý
|
ui.tableAlarmOut->setRowCount(iTotalAlarmOutNum);
|
ui.tableAlarmOut->setColumnCount(1);
|
iRow = 0;
|
for(i = 0; i < MAX_ALARMOUT_V30; i++)
|
{
|
if(m_pcheckAlarmOut[i] != NULL)
|
{
|
ui.tableAlarmOut->setCellWidget(iRow, 0, m_pcheckAlarmOut[i]);
|
if(m_pAlarmInInfo->struAlarmHandleType.byRelAlarmOut[i] == 1)
|
{
|
m_pcheckAlarmOut[i]->setChecked(TRUE);
|
}
|
else
|
{
|
m_pcheckAlarmOut[i]->setChecked(FALSE);
|
}
|
iRow++;
|
}
|
}
|
|
//²¼·Àʱ¼ä
|
comboWeekDayChanged(0);
|
//±¨¾¯´¦Àí·½Ê½
|
setAlarmTypeWidget();
|
|
return HPR_OK;
|
}
|
|
//´Ó½çÃæ»ñÈ¡µ½Êý¾ÝдÈëÉ豸
|
int CAlarmInHandleType::setAlarmInHandleInfo()
|
{
|
if(m_pAlarmInInfo == NULL)
|
{
|
return HPR_ERROR;
|
}
|
|
//ÉèÖüÏñͨµÀ
|
int i;
|
for(i = 0; i < MAX_CHANNUM_V30; i++)
|
{
|
if(m_pCheckChannel[i] != NULL)
|
{
|
if(m_pCheckChannel[i]->isChecked())
|
{
|
m_pAlarmInInfo->byRelRecordChan[i] = 1;
|
}
|
else
|
{
|
m_pAlarmInInfo->byRelRecordChan[i] =0;
|
}
|
}
|
}
|
|
//ÉèÖñ¨¾¯Êä³ö
|
for(i = 0; i < MAX_ALARMOUT_V30; i++)
|
{
|
if(m_pcheckAlarmOut[i] != NULL)
|
{
|
if(m_pcheckAlarmOut[i]->isChecked())
|
{
|
m_pAlarmInInfo->struAlarmHandleType.byRelAlarmOut[i] = 1;
|
}
|
else
|
{
|
m_pAlarmInInfo->struAlarmHandleType.byRelAlarmOut[i] = 0;
|
}
|
}
|
}
|
|
//ʱ¼ä
|
//»ñÈ¡²¼·Àʱ¼ä
|
int iTime;
|
int iWeekDay;
|
iWeekDay = ui.comboWeekDay->currentIndex();
|
for(i = 0; i < MAX_TIMESEGMENT_V30; i++)
|
{
|
//¿ªÊ¼Ð¡Ê±
|
KIT_editToInt(&(m_editStartHour[i]), &iTime);
|
m_pAlarmInInfo->struAlarmTime[iWeekDay][i].byStartHour = iTime;
|
//¿ªÊ¼·ÖÖÓ
|
KIT_editToInt(&(m_editStartMin[i]), &iTime);
|
m_pAlarmInInfo->struAlarmTime[iWeekDay][i].byStartMin = iTime;
|
//½áÊøÐ¡Ê±
|
KIT_editToInt(&(m_editEndHour[i]), &iTime);
|
m_pAlarmInInfo->struAlarmTime[iWeekDay][i].byStopHour = iTime;
|
//½áÊø·ÖÖÓ
|
KIT_editToInt(&(m_editEndMin[i]), &iTime);
|
m_pAlarmInInfo->struAlarmTime[iWeekDay][i].byStopMin = iTime;
|
}
|
|
//±¨¾¯·½Ê½
|
getAlarmTypeWidget();
|
return HPR_OK;
|
}
|
|
//»ñÈ¡±¨¾¯´¦Àí·½Ê½
|
int CAlarmInHandleType::getAlarmTypeWidget()
|
{
|
if(NULL == m_pAlarmInInfo)
|
{
|
return HPR_ERROR;
|
}
|
|
//´¦Àí·½Ê½²ÎÊý
|
int dwHandleType;
|
int i;
|
dwHandleType = 0;
|
if(ui.checkbo01->isChecked())
|
{
|
dwHandleType += 1;
|
}
|
if(ui.checkbo02->isChecked())
|
{
|
dwHandleType += 2;
|
}
|
if(ui.checkbo04->isChecked())
|
{
|
dwHandleType += 4;
|
}
|
if(ui.checkbo08->isChecked())
|
{
|
dwHandleType += 8;
|
for(i = 0; i < MAX_ALARMOUT_V30; i++)
|
{
|
if(m_pcheckAlarmOut[i] != NULL)
|
{
|
if(m_pcheckAlarmOut[i]->isChecked())
|
{
|
m_pAlarmInInfo->struAlarmHandleType.byRelAlarmOut[i] = 1;
|
}
|
else
|
{
|
m_pAlarmInInfo->struAlarmHandleType.byRelAlarmOut[i] = 0;
|
}
|
}
|
}
|
}
|
if(ui.checkbo10->isChecked())
|
{
|
dwHandleType += 16;
|
}
|
m_pAlarmInInfo->struAlarmHandleType.dwHandleType = dwHandleType;
|
|
return HPR_OK;
|
}
|
|
//ÉèÖñ¨¾¯´¦Àí·½Ê½
|
int CAlarmInHandleType::setAlarmTypeWidget()
|
{
|
if(m_pAlarmInInfo == NULL)
|
{
|
return HPR_ERROR;
|
}
|
|
//¼àÊÓÆ÷Éϱ¨¾¯
|
if((m_pAlarmInInfo->struAlarmHandleType.dwHandleType & 0x01) == 0x01)
|
{
|
ui.checkbo01->setChecked(TRUE);
|
}
|
else
|
{
|
ui.checkbo01->setChecked(FALSE);
|
}
|
//ÉùÒô±¨¾¯
|
if((m_pAlarmInInfo->struAlarmHandleType.dwHandleType & 0x02) == 0x02)
|
{
|
ui.checkbo02->setChecked(TRUE);
|
}
|
else
|
{
|
ui.checkbo02->setChecked(FALSE);
|
}
|
//ÉÏ´«ÖÐÐÄ
|
if((m_pAlarmInInfo->struAlarmHandleType.dwHandleType & 0x04) == 0x04)
|
{
|
ui.checkbo04->setChecked(TRUE);
|
}
|
else
|
{
|
ui.checkbo04->setChecked(FALSE);
|
}
|
//´¥·¢±¨¾¯Êä³ö
|
if((m_pAlarmInInfo->struAlarmHandleType.dwHandleType & 0x08) == 0x08)
|
{
|
ui.checkbo08->setChecked(TRUE);
|
ui.tableAlarmOut->setEnabled(TRUE);
|
int i;
|
for(i = 0; i < MAX_ALARMOUT_V30; i++)//±¨¾¯Êä³ö
|
{
|
if(m_pcheckAlarmOut[i] != NULL)//±¨¾¯Êä³öcheckbox²»Îª¿Õ
|
{
|
if(m_pAlarmInInfo->struAlarmHandleType.byRelAlarmOut[i] == 0)
|
{
|
m_pcheckAlarmOut[i]->setChecked(FALSE);
|
}
|
else
|
{
|
m_pcheckAlarmOut[i]->setChecked(TRUE);
|
}
|
}
|
}
|
}
|
else
|
{
|
ui.checkbo08->setChecked(FALSE);
|
ui.tableAlarmOut->setEnabled(FALSE);
|
}
|
//JPEGץͼ£¬²¢ÉÏ´«ÖÐÐÄ
|
if((m_pAlarmInInfo->struAlarmHandleType.dwHandleType & 0x10) == 0x10)
|
{
|
ui.checkbo10->setChecked(TRUE);
|
}
|
else
|
{
|
ui.checkbo10->setChecked(FALSE);
|
}
|
|
return HPR_OK;
|
|
}
|
|
void CAlarmInHandleType::comboWeekDayChanged(int iWeekDay)
|
{
|
if(m_pAlarmInInfo == NULL)
|
{
|
return;
|
}
|
int i;
|
int iTemp;
|
for(i = 0; i < MAX_TIMESEGMENT_V30; i++)
|
{
|
//ʱ¼ä
|
iTemp = m_pAlarmInInfo->struAlarmTime[iWeekDay][i].byStartHour;
|
KIT_intToEdit(&(m_editStartHour[i]), iTemp);
|
iTemp = m_pAlarmInInfo->struAlarmTime[iWeekDay][i].byStartMin;
|
KIT_intToEdit(&(m_editStartMin[i]), iTemp);
|
iTemp = m_pAlarmInInfo->struAlarmTime[iWeekDay][i].byStopHour;
|
KIT_intToEdit(&(m_editEndHour[i]), iTemp);
|
iTemp = m_pAlarmInInfo->struAlarmTime[iWeekDay][i].byStopMin;
|
KIT_intToEdit(&(m_editEndMin[i]), iTemp);
|
}
|
}
|
|
void CAlarmInHandleType::on_btnSave_clicked()
|
{
|
setAlarmInHandleInfo();
|
//quit();
|
close();
|
}
|
|
|
void CAlarmInHandleType::on_checkbo08_clicked()
|
{
|
if(ui.checkbo08->isChecked())
|
{
|
ui.tableAlarmOut->setEnabled(TRUE);
|
}
|
else
|
{
|
ui.tableAlarmOut->setEnabled(FALSE);
|
}
|
}
|
|
void CAlarmInHandleType::showEvent(QShowEvent * event)
|
{
|
if(NULL == event)
|
{
|
}
|
getAlarmInHandleInfo();
|
}
|
|
|
|
|
|
|
|