📄 rightmd.cpp
字号:
return;
GET_ALIAS;
opt.onoff = (m_enable_md && m_rec_sched);
bool m_is_16 = is_16_version();
bool m_is_14 = is_4_version();
bool m_is_4008 = is_4008_version();
video_channel* vc = who_opened_it(alias, m_channel);
if( vc)
{
if( mask != (video_mask*)vc )
mask->clear_grid();
mask = vc;
}
else
{
if( mask != (video_mask*)&m_grid )
{
mask->clear_grid();
mask = &m_grid;
}
}
if( m_enable_md )
{
if(m_is_16 || m_is_4008)
{
if(mask != &m_grid)
{
mask->set_grid(20, 28);
mask->set_data(opt16.alarm_region);
mask->update();
}
else
{
m_grid.clear_grid();
m_grid.EnableWindow(FALSE);
}
}
else if(m_is_14)
{
if(mask != &m_grid)
{
mask->set_grid(10, 14);
mask->set_data(opt4.alarm_region);
mask->update();
}
else
{
m_grid.clear_grid();
m_grid.EnableWindow(FALSE);
}
}
else
{
mask->set_grid(8,8);
mask->set_data(opt.alarm_region);
mask->update();
}
}
else
{
mask->clear_grid();
}
}
/*
* 异步UpdateData, 或者从内部更新MD信息
*/
//##ModelId=3F90BAB00059
LRESULT CRightMD::on_update_data(WPARAM w, LPARAM)
{
if( w == FALSE )
{
TREC_MOTIONRECPARA* m = &opt;
m_channel = m->channel; // 通道号
m_enable_md = m->onoff; // 允许MD
m_md_sens = m->recsmart-1; // 灵敏度
m_rec_duration = m->rectime; // 录像时间长度
m_rec_sched = IS_DAY_SET(opt, m_rec_day); // 是否定时
m_audioalarm = opt.audio_alarm ;
if((opt.alarmout)&0x01)
m_alarmout1 = TRUE;
else
m_alarmout1 = FALSE;
if((opt.alarmout)&0x02)
m_alarmout2 = TRUE;
else
m_alarmout2 = FALSE;
if((opt.alarmout)&0x04)
m_alarmout3 = TRUE;
else
m_alarmout3 = FALSE;
if((opt.alarmout)&0x08)
m_alarmout4 = TRUE;
else
m_alarmout4 = FALSE;
// 更新定时时间段
if( m_rec_sched )
put_date();
else
{
for(int i=0; i<7; i++)
{
if(IS_DAY_SET(opt, i))
{
info_balloon(IDS_SELECT_OTHER_DAY);
break;
}
}
m_date00 = m_date01 = m_date10 = m_date11 = CTime::GetCurrentTime();
}
}
UpdateData(w);
OnEnable();
return 0;
}
/*
* 过滤系统快捷键
*/
//##ModelId=3F90BAAF02B0
BOOL CRightMD::PreTranslateMessage(MSG* pMsg)
{
CHECK_ACCEL;
return baseclass::PreTranslateMessage(pMsg);
}
/*
* 当切换到我时
*/
//##ModelId=3F90BAB000BD
void CRightMD::on_join()
{
m_cbwhich.ResetContent();
fill_combo(&m_cbwhich);
m_cbchannel.EnableWindow(FALSE);
OnEnable();
}
/*
* 当切换到别的子对话框时
*/
//##ModelId=3F90BAB000C8
void CRightMD::on_leave()
{
//m_cbwhich.ResetContent();
//m_cbchannel.ResetContent();
mask->set_grid(0,0);
// mask = &m_grid;
}
/*
* 网络回复: 读取主机MD信息成功
*/
//void CRightMD::on_get_ok(DWORD ip, USHORT port, NET_OPTIONS no, void* stuff)
MSG3(on_get_ok, CRightMD)
{
NET_OPTIONS no = (NET_OPTIONS)w;
void* stuff = (void*)l;
if( no != OPT_MD )
return 0 ;
TREC_MOTIONRECPARA* m = (TREC_MOTIONRECPARA*)stuff;
if( m->channel != last_channel )
return 0 ;
memcpy(&opt, m, sizeof(TREC_MOTIONRECPARA));
SendMessage(WM_UPDATE_DATA, FALSE);
info_balloon(IDS_MD_GET);
return 0;
}
MSG3(on_get_16_ok, CRightMD)
{
TREC_MOTIONRECPARA_16* p = (TREC_MOTIONRECPARA_16*)w;
if( p->channel != last_channel )
return 0 ;
memcpy(&opt16, p, sizeof(TREC_MOTIONRECPARA_16));
change_data_28_to_32(opt16.alarm_region, FALSE);
OnEnable();
info_balloon(IDS_MD_GET);
return 0;
}
MSG3(on_get_4_ok, CRightMD)
{
TREC_MOTIONRECPARA_4* p = (TREC_MOTIONRECPARA_4*)w;
if( p->channel != last_channel )
return 0 ;
memcpy(&opt4, p, sizeof(TREC_MOTIONRECPARA_4));
change_data_16_to_14(opt4.alarm_region);
OnEnable();
info_balloon(IDS_MD_GET);
return 0;
}
//void CRightMD::on_set_ok(DWORD ip, USHORT port, NET_OPTIONS no)
MSG3(on_set_ok, CRightMD)
{
info_balloon(IDS_MD_SET);
return 0;
}
/*
* 变更控制主机地址 (which)
*/
//##ModelId=3F90BAAF02F8
void CRightMD::OnSelchangeWhich()
{
UpdateData();
GET_ALIAS;
fill_combo_chnls(alias, &m_cbchannel);
m_cbchannel.AddString("ALL");
m_channel = 0;
UpdateData(FALSE);
m_cbchannel.EnableWindow(!alias.IsEmpty());
OnRefreshNet();
}
/*
* 改变通道 (channel)
*/
//##ModelId=3F90BAAF030C
void CRightMD::OnSelchangeChannel()
{
UpdateData(true);
//if(m_channel+1 >= m_cbchannel.GetCount()) return;
GET_ALIAS;
OnRefreshNet();
OnEnable();
// PostMessage(WM_UPDATE_DATA, FALSE);
}
/*
* 更新按钮处理 (refresh)
*/
//##ModelId=3F90BAAF0302
void CRightMD::OnRefreshNet()
{
GET_ALIAS;
// fill_combo_chnls(alias, &m_cbchannel);
// m_channel = 0;
// UpdateData(FALSE);
last_channel = m_channel;
get_net_opt(alias, OPT_MD, m_channel, m_hWnd);
}
const UINT MIN = 0;
const UINT MAX = 90;
//##ModelId=3F90BAAF0316
void CRightMD::OnDeltaposSpin(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
NM_UPDOWN* p = (NM_UPDOWN*)pNMHDR;
UpdateData();
if( p->iDelta < 0 )
{
if( m_rec_duration != REC_MAX )
m_rec_duration++;
}
else
if( m_rec_duration != REC_MIN )
m_rec_duration--;
UpdateData(FALSE);
*pResult = 0;
}
//##ModelId=3F90BAAF033D
void CRightMD::OnChangeRecDuration()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the baseclass::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
UpdateData();
}
//##ModelId=3F90BAAF0347
void CRightMD::OnSelchangeRecDay()
{
UpdateData();
//PostMessage(WM_UPDATE_DATA, FALSE);
UpdateData(FALSE);
}
//##ModelId=3F90BAAF0351
HBRUSH CRightMD::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hb = baseclass::OnCtlColor(pDC, pWnd, nCtlColor);
return hb;
}
/*
* 允许MD时间设置
*/
//##ModelId=3F90BAAF038D
void CRightMD::OnRecSchedule()
{
UpdateData();
get_date();
}
//##ModelId=3F90BAAF0397
void CRightMD::OnSetNet()
{
UpdateData();
get_data();
GET_ALIAS;
ULONG ip;
USHORT port;
get_addr(alias, ip, port);
if(!check_popedom(ip, port, m_channel+1, 3)) return;
if(check_sel_channel(ip, port, m_channel))
{
opt.channel =0xff;
opt16.channel =0xff;
opt4.channel =0xff;
}
else
{
opt.channel = m_channel;
opt16.channel = m_channel;
opt4.channel = m_channel;
}
set_net_opt(alias, OPT_MD, &opt, m_hWnd);
video_channel* vc = who_opened_it(alias, m_channel);
if((is_16_version() || is_4008_version()) && vc)
{
change_data_28_to_32(opt16.alarm_region, TRUE);
set_net_opt(alias, OPT_ALARM_16_AREA, &opt16, m_hWnd);
}
if(is_4_version() && vc)
{
change_data_14_to_16(opt4.alarm_region);
set_net_opt(alias, OPT_ALARM_4_AREA, &opt4, m_hWnd);
}
CString m_logfile;
m_logfile.Format(IDS_REMOTE_RECORD,alias,m_channel+1);
write_log_file(m_logfile);
}
//##ModelId=3F90BAAF03A1
void CRightMD::OnDatetimechange00(NMHDR* pNMHDR, LRESULT* pResult)
{
get_date();
*pResult = 0;
}
//##ModelId=3F90BAAF03C9
void CRightMD::OnDatetimechange01(NMHDR* pNMHDR, LRESULT* pResult)
{
get_date();
*pResult = 0;
}
//##ModelId=3F90BAB00009
void CRightMD::OnDatetimechange10(NMHDR* pNMHDR, LRESULT* pResult)
{
get_date();
*pResult = 0;
}
//##ModelId=3F90BAB00031
void CRightMD::OnDatetimechange11(NMHDR* pNMHDR, LRESULT* pResult)
{
get_date();
*pResult = 0;
}
//##ModelId=3F90BAB00081
LRESULT CRightMD::on_channel_open(WPARAM, LPARAM)
{
OnEnable();
return 0;
}
//##ModelId=3F90BAB0009F
LRESULT CRightMD::on_channel_close(WPARAM, LPARAM)
{
OnEnable();
return 0;
}
ON_LOGGED_OUT(CRightMD);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -