⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rightmd.cpp

📁 实时监控
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		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 + -