亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stationstatus.cpp

?? 實時監控
?? CPP
字號:
// StationStatus.cpp : implementation file
//

#include "stdafx.h"
#include "../Resource.h"
#include "../dvrmanager.h"
#include "../utils/common.h"
#include "StationStatus.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CStationStatus dialog


CStationStatus::CStationStatus(CWnd* pParent /*=NULL*/)
	: CDialog(CStationStatus::IDD, pParent)
{
	//{{AFX_DATA_INIT(CStationStatus)
	m_station = _T("");
	cyc_num = 0;
	all_chnls = 0;
	m_alarmout1 = FALSE;
	m_alarmout2 = FALSE;
	m_alarmout3 = FALSE;
	m_alarmout4 = FALSE;
	//}}AFX_DATA_INIT
	m_brush.CreateSolidBrush(RGB(117, 200, 146));
}


void CStationStatus::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CStationStatus)
	DDX_Control(pDX, IDC_STATION, m_stationctl);
	DDX_CBString(pDX, IDC_STATION, m_station);
	DDX_Control(pDX, IDC_MSFLEXGRID, m_grid);

	DDX_Check(pDX, IDC_OUPUT1, m_alarmout1);
	DDX_Check(pDX, IDC_OUPUT2, m_alarmout2);
	DDX_Check(pDX, IDC_OUPUT3, m_alarmout3);
	DDX_Check(pDX, IDC_OUPUT4, m_alarmout4);

	DDX_Control(pDX, IDC_OUPUT1, m_alarmout1ctl);
	DDX_Control(pDX, IDC_OUPUT2, m_alarmout2ctl);
	DDX_Control(pDX, IDC_OUPUT3, m_alarmout3ctl);
	DDX_Control(pDX, IDC_OUPUT4, m_alarmout4ctl);
	DDX_Control(pDX, IDC_TURNON, m_turnonctl);
	DDX_Control(pDX, IDC_STATIC_ST, m_lable);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CStationStatus, CDialog)
	//{{AFX_MSG_MAP(CStationStatus)
	ON_CBN_SETFOCUS(IDC_STATION, OnSetfocusStation)
	ON_CBN_SELCHANGE(IDC_STATION, OnSelchangeStation)
	ON_BN_CLICKED(IDC_TURNON, turnon)
	ON_WM_TIMER()
	ON_WM_CTLCOLOR()
	//}}AFX_MSG_MAP

	ON_MESSAGE(NTM_OPT_GET_OK, on_get_ok)

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CStationStatus message handlers

BOOL CStationStatus::OnInitDialog()
{
	CDialog::OnInitDialog();
	init_label(m_lable);
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

HBRUSH CStationStatus::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	if (nCtlColor==CTLCOLOR_DLG) 
	return (HBRUSH)m_brush .GetSafeHandle( ) ;
	return hbr;
}

void CStationStatus::OnSetfocusStation() 
{
	m_stationctl.ResetContent();
	fill_combo(&m_stationctl);
}

void CStationStatus::OnSelchangeStation() 
{
	UpdateData(true);
    int index = m_stationctl.GetCurSel();
	if (index!=CB_ERR)
	{
    	m_stationctl.GetLBText(index, m_station);
	}

	if(m_station.IsEmpty())
		return;
	
	CString m_str;
	ULONG ip; USHORT port;
	get_addr(m_station, ip, port);
	all_chnls = get_chnls(ip, port);
	m_grid.SetRows(all_chnls+1);

	onintigrid();
	for(int i=0; i< all_chnls; i++)
	{
	
		m_str.Format("%d", i+1);
		m_grid.SetCol(0);
		m_grid.SetRow(i+1);
		m_grid.SetText(m_str);
	}

	OnQueryRecord(0);
	SetTimer(10, 100, NULL);
}

LRESULT CStationStatus::on_get_ok(WPARAM w, LPARAM l)
{
	CString m_yes, m_no;
	m_yes.Format(IDS_YES);
	m_no.Format(IDS_NO);

	NET_OPTIONS no = (NET_OPTIONS)w;
	if( no == OPT_TITLE )
	{
		char m_title[30] ;
		TREC_CHANNELTITLE* p = (TREC_CHANNELTITLE*)l;
		if(!p)
			return 0;

		memcpy(m_title, p->channel_name, p->channel_name_length);
		m_title[p->channel_name_length] = '\0';
		onsetgrid(p->channel+1, 1, m_title);
		return 1;
	}

	if( no == OPT_REC_ENABLE )
	{
		SHORT rec_opt = *(SHORT*)l;
		for(int i=0; i<all_chnls; i++)
		{
			if((rec_opt>>i) & 0x01)
				onsetgrid(i+1, 2, m_yes);
			else
				onsetgrid(i+1, 2, m_no);
		}
		return 1;
	}

	if(no == OPT_MD)
	{
		TREC_MOTIONRECPARA* p = (TREC_MOTIONRECPARA*)l;
		if(!p)
			return 0;

		if(!onsetonoffgrid(p->channel+1, 3, p->onoff))
			return 0;
			
		TREC_MOTIONRECPARA opt;
		memcpy(&opt, p, sizeof(TREC_MOTIONRECPARA));

		SYSTEMTIME systime	;
		CTime curtime = CTime::GetCurrentTime();
		curtime.GetAsSystemTime(systime);

		BOOL m_rec_sched = IS_DAY_SET(opt, 0) || IS_DAY_SET(opt, systime.wDayOfWeek+1);
		if(m_rec_sched)
		{
			CTime t1 = SEG1_BGN(opt, 0);	CTime t2 = SEG1_END(opt, 0);
			CTime t3 = SEG2_BGN(opt, 0);	CTime t4 = SEG2_END(opt, 0);

			if(checktime(t1, t2, t3, t4))
			{
				onsetgrid(p->channel+1, 3, m_yes);
				return 0;
			}
		}

		onsetgrid(p->channel+1, 3, m_no);
		return 1;
	}
	
	if(no == OPT_ALARM)
	{
		TREC_ALARMRECPARA* p = (TREC_ALARMRECPARA*)l;
		if(!p)
			return 0;

		if(!onsetonoffgrid(p->alarmin+1, 4, p->onoff))
			return 0;

		TREC_ALARMRECPARA opt;
		memcpy(&opt, p, sizeof(TREC_ALARMRECPARA));

		SYSTEMTIME systime	;
		CTime curtime = CTime::GetCurrentTime();
		curtime.GetAsSystemTime(systime);

		BOOL m_rec_sched = IS_DAY_SET(opt, 0) || IS_DAY_SET(opt, systime.wDayOfWeek+1);
		if(m_rec_sched)
		{
			CTime t1 = SEG1_BGN(opt, 0);	CTime t2 = SEG1_END(opt, 0);
			CTime t3 = SEG2_BGN(opt, 0);	CTime t4 = SEG2_END(opt, 0);

			if(checktime(t1, t2, t3, t4))
			{
				onsetgrid(p->alarmin+1, 4, m_yes);
				return 0;
			}
		}

		onsetgrid(p->alarmin+1, 4, no);
		return 1;
	}

	if (no == OPT_SCHED)  
	{
		TREC_SCHEDULEPARA* p = (TREC_SCHEDULEPARA*)l;
		if(!p)
			return 0;

		if(!onsetonoffgrid(p->channel+1, 5, p->onoff))
			return 0;

		TREC_SCHEDULEPARA opt;
		memcpy(&opt, p, sizeof(TREC_SCHEDULEPARA));

		SYSTEMTIME systime	;
		CTime curtime = CTime::GetCurrentTime();
		curtime.GetAsSystemTime(systime);

		BOOL m_rec_sched = IS_DAY_SET(opt, 0) || IS_DAY_SET(opt, systime.wDayOfWeek+1);
		if(m_rec_sched)
		{
			CTime t1 = SEG1_BGN(opt, 0);	CTime t2 = SEG1_END(opt, 0);
			CTime t3 = SEG2_BGN(opt, 0);	CTime t4 = SEG2_END(opt, 0);

			if(checktime(t1, t2, t3, t4))
			{
				onsetgrid(p->channel+1, 5, m_yes);
				return 0;
			}
		}

		onsetgrid(p->channel+1, 5, m_no);
		return 1;
	}

	return 1;
}

BOOL CStationStatus::onsetonoffgrid(int row, int col, BOOL m_bool) 
{
	CString m_no;
	m_no.Format(IDS_NO);
	if(!m_bool)
	{
		onsetgrid(row, col, m_no);
		return FALSE;
	}
	return TRUE;
}

BOOL CStationStatus::checktime(CTime &t1, CTime &t2, CTime &t3, CTime &t4) 
{
	CTime curtime = CTime::GetCurrentTime();
	CTime t11 = CTime(curtime.GetYear(), curtime.GetMonth(), curtime.GetDay(), t1.GetHour(), t1.GetMinute(), t1.GetSecond());
	CTime t22 = CTime(curtime.GetYear(), curtime.GetMonth(), curtime.GetDay(), t2.GetHour(), t2.GetMinute(), t2.GetSecond());
	CTime t33 = CTime(curtime.GetYear(), curtime.GetMonth(), curtime.GetDay(), t3.GetHour(), t3.GetMinute(), t3.GetSecond());
	CTime t44 = CTime(curtime.GetYear(), curtime.GetMonth(), curtime.GetDay(), t4.GetHour(), t4.GetMinute(), t4.GetSecond());

	if((curtime>=t11) && (curtime<=t22))
		return TRUE;

	if((curtime>=t33) && (curtime<=t44))
		return TRUE;

	return FALSE;
}


void CStationStatus::OnQueryTitle(int channel) 
{
	get_net_opt(m_station, OPT_TITLE, channel, m_hWnd);
}

void CStationStatus::OnQueryRecord(int channel)
{
	
	get_net_opt(m_station, OPT_REC_ENABLE, channel, m_hWnd) ;

}

void CStationStatus::OnQueryMotionRecord(int channel) 
{
	get_net_opt(m_station, OPT_MD, channel, m_hWnd);
}

void CStationStatus::OnQueryAlarmRecord(int channel) 
{
	get_net_opt(m_station, OPT_ALARM, channel, m_hWnd);
}

void CStationStatus::OnQuerySchedRecord(int channel) 
{
	get_net_opt(m_station, OPT_SCHED, channel, m_hWnd);	
}

void CStationStatus::onsetgrid(int row, int col, CString str) 
{
	m_grid.SetRow(row);
	m_grid.SetCol(col);
    m_grid.SetText(str);
}

void CStationStatus::onintigrid() 
{
	CString m_temstr;
	m_grid.Clear();
    m_grid.SetRow(0);
	m_grid.SetCol(0);
	m_temstr.Format(IDS_CHANNEL);
	m_grid.SetText(m_temstr);

	m_grid.SetCol(1);
	m_grid.SetColAlignment(1 , 4);
	m_grid.SetColWidth(1,1500);
	m_temstr.Format(IDS_CHANNELTITLE);
	m_grid.SetText(m_temstr);

	m_grid.SetCol(2);
	m_grid.SetColAlignment(2 , 4);
	m_temstr.Format(IDS_ISRECORDING);
	m_grid.SetText(m_temstr);

	m_grid.SetCol(3);
	m_grid.SetColAlignment(3 , 4);
	m_temstr.Format(IDS_ISMOTIONRECORDING);
	m_grid.SetText(m_temstr);

    m_grid.SetCol(4);
	m_grid.SetColAlignment(4 , 4);
	m_temstr.Format(IDS_ISALARMRECORDING);
	m_grid.SetText(m_temstr);

	m_grid.SetCol(5);
	m_grid.SetColAlignment(5 , 4);
	m_temstr.Format(IDS_ISSCHEDRECORDING);
	m_grid.SetText(m_temstr);
}

void CStationStatus::OnTimer(UINT nIDEvent) 
{
	if(nIDEvent == 10)
	{
		OnQueryTitle(cyc_num);
		cyc_num++;
		
		if(cyc_num >= all_chnls)
		{
			cyc_num = 0;
			KillTimer(nIDEvent);
			SetTimer(11, 100, NULL);
		}
	}

	if(nIDEvent == 11)
	{
		OnQueryMotionRecord(cyc_num);
		cyc_num++;
		
		if(cyc_num >= all_chnls)
		{
			cyc_num = 0;
			KillTimer(nIDEvent);
			SetTimer(12, 100, NULL);
		}
	}

	if(nIDEvent == 12)
	{
		OnQueryAlarmRecord(cyc_num);
		cyc_num++;
		
		if(cyc_num >= all_chnls)
		{
			cyc_num = 0;
			KillTimer(nIDEvent);
			SetTimer(13, 100, NULL);
		}
	}

	if(nIDEvent == 13)
	{
		OnQuerySchedRecord(cyc_num);
		cyc_num++;
		
		if(cyc_num >= all_chnls)
		{
			cyc_num = 0;
			KillTimer(nIDEvent);
		}
	}
		
	CDialog::OnTimer(nIDEvent);
}

void CStationStatus::turnon()
{
	UpdateData(TRUE);
	if(m_station.IsEmpty())
		return;

	int output = 0;

	if(m_alarmout1)
		output |= 0x01;

	if(m_alarmout2)
		output |= 0x02;

	if(m_alarmout3)
		output |= 0x04;

	if(m_alarmout4)
		output |= 0x08;

	ULONG ip;
	USHORT port;
	get_addr(m_station, ip, port);

	send_alarm_output(ip, port, output);
}
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
777xxx欧美| 欧美亚洲国产bt| 国产成人在线电影| 精品入口麻豆88视频| 亚洲小说欧美激情另类| 色国产精品一区在线观看| 国产日韩影视精品| 国产成人欧美日韩在线电影| 26uuu国产电影一区二区| 免费成人在线观看视频| 26uuu成人网一区二区三区| jizzjizzjizz欧美| 石原莉奈在线亚洲二区| 欧美男男青年gay1069videost| 日本欧美在线观看| 精品国产一区二区三区久久久蜜月| 毛片一区二区三区| 国产精品白丝在线| 一本大道久久a久久综合| 夜色激情一区二区| 欧美高清在线一区二区| 国产一区二区视频在线播放| 中文字幕在线一区二区三区| 欧洲精品一区二区| 久久99精品国产麻豆不卡| 国产精品视频线看| 欧美日韩国产片| 91免费小视频| 国产suv精品一区二区三区 | 国产成人在线视频免费播放| 亚洲精品一二三四区| 久久久久久久精| 7878成人国产在线观看| 色综合天天综合狠狠| 亚洲免费资源在线播放| 久久精品免费在线观看| 精品久久久久久久久久久久包黑料 | 日本免费在线视频不卡一不卡二| 久久久影视传媒| 在线观看亚洲一区| 91影院在线观看| 在线欧美一区二区| 91丨porny丨户外露出| 99国产精品国产精品毛片| 日韩成人精品在线观看| 亚洲电影一级黄| 夜夜嗨av一区二区三区网页| 亚洲美女屁股眼交3| 国产精品久久久一区麻豆最新章节| 日韩一区二区麻豆国产| 日韩欧美电影一二三| 精品国产一区二区三区忘忧草 | 精品免费国产二区三区 | 日韩精品一区二区三区四区| 久久99热99| 一区二区三区中文字幕电影 | 日韩专区在线视频| 久久爱www久久做| 国产最新精品精品你懂的| 国产经典欧美精品| 日韩午夜在线播放| 亚洲欧洲成人精品av97| 国产又黄又大久久| 337p亚洲精品色噜噜噜| 国产精品成人在线观看| 精品一区二区免费在线观看| 91浏览器在线视频| 欧美国产禁国产网站cc| 麻豆成人av在线| 日韩免费高清视频| 麻豆成人久久精品二区三区红| 91传媒视频在线播放| 亚洲视频在线一区| 丁香婷婷深情五月亚洲| 国产亚洲一区二区在线观看| 国产一区二区三区视频在线播放| 日韩精品中文字幕在线一区| 久草中文综合在线| 国产日产欧产精品推荐色| 国产成人亚洲精品青草天美| 国产欧美日韩久久| 91在线丨porny丨国产| 亚洲免费观看高清完整版在线| 99re热视频精品| 亚洲最新在线观看| 欧美大片日本大片免费观看| 国产一二三精品| 18成人在线观看| 欧美精品v国产精品v日韩精品| 日精品一区二区三区| 2014亚洲片线观看视频免费| av电影在线观看完整版一区二区| 亚洲品质自拍视频| 日韩欧美亚洲国产另类| www.欧美色图| 国产综合一区二区| 亚洲一区二区三区美女| 欧美大片在线观看一区| 欧美色图第一页| 国产99一区视频免费| 蜜桃av一区二区三区电影| 综合精品久久久| 久久久青草青青国产亚洲免观| 欧美自拍丝袜亚洲| 99精品一区二区三区| 精品在线观看免费| 亚洲一级二级三级在线免费观看| 国产亚洲精品bt天堂精选| 欧美色视频在线观看| 91原创在线视频| 成人avav影音| 成人午夜私人影院| 蜜臀av国产精品久久久久| 亚洲风情在线资源站| 亚洲最快最全在线视频| 亚洲欧美日韩国产综合在线| 亚洲国产高清不卡| 国产精品久久久久毛片软件| 久久色视频免费观看| 久久久久国色av免费看影院| 日本一区二区三区dvd视频在线| 久久久亚洲国产美女国产盗摄 | 国产精品色一区二区三区| 久久久久高清精品| 国产片一区二区| 亚洲欧美日韩国产综合在线| 一二三区精品福利视频| 日韩电影免费在线| 精品亚洲aⅴ乱码一区二区三区| 国内精品免费**视频| 国产成人精品亚洲日本在线桃色| 国产成人av一区| 不卡大黄网站免费看| 欧美日韩另类一区| 久久免费视频色| 亚洲影视资源网| 国产黄人亚洲片| 欧美日韩亚洲国产综合| 久久综合色婷婷| 亚洲成人免费视| 久久国产精品无码网站| 成人18精品视频| 日韩精品一区二区在线| 一区二区三区日韩在线观看| 国产一区二区在线观看免费 | www..com久久爱| 欧美不卡一区二区三区| 一区二区三区在线视频免费观看| 国产做a爰片久久毛片| 91精品一区二区三区久久久久久 | 91精品国产全国免费观看| 国产精品第13页| 99久久婷婷国产精品综合| 精品动漫一区二区三区在线观看| 五月婷婷久久丁香| 色菇凉天天综合网| 1000精品久久久久久久久| 国产一区在线观看视频| 久久在线免费观看| 久久国产精品72免费观看| 在线成人高清不卡| 韩国三级在线一区| 欧美激情一区不卡| 99亚偷拍自图区亚洲| 不卡的电影网站| 国产婷婷一区二区| 91丨九色丨蝌蚪富婆spa| 中文字幕在线播放不卡一区| 色欲综合视频天天天| 舔着乳尖日韩一区| 久久精品视频网| 色婷婷狠狠综合| 韩国中文字幕2020精品| 国产精品人成在线观看免费 | 欧美一级国产精品| 色综合激情五月| 午夜视频久久久久久| 国产亚洲欧美一级| 欧美精品色综合| av色综合久久天堂av综合| 亚洲国产精品一区二区尤物区| www国产成人| 欧美日韩国产精品成人| 99re这里都是精品| 国产精品一区三区| 青青草97国产精品免费观看无弹窗版| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 色先锋资源久久综合| 久久不见久久见免费视频7| 亚洲一线二线三线视频| 日本一区二区免费在线| 日韩欧美色电影| 欧美日韩国产一二三| 91福利国产成人精品照片| 99久久精品免费看| 97久久精品人人爽人人爽蜜臀| 精品综合久久久久久8888| 激情图片小说一区| 国产精品18久久久久久vr| 国产一区二区三区四区五区入口|