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

📄 rightalarm.cpp

📁 实时监控
💻 CPP
📖 第 1 页 / 共 2 页
字号:
					info_balloon(IDS_SELECT_OTHER_DAY);
					break;
				}
			}
			m_date00 = m_date01 = m_date10 = m_date11 = CTime::GetCurrentTime();
		}
	}
	UpdateData(w);

	return 0;
}

//##ModelId=3F90BAB60274
CString CRightAlarm::get_alias()
{
	CString alias;
	
	UpdateData();
	if( m_which == -1 )
		return CString();
	
	m_cbwhich.GetLBText(m_which, alias);
	return alias;
}

BOOL CRightAlarm::check_16_alarm_all(CString alias)
{
	ULONG ip;
	USHORT port;
	get_addr(alias, ip, port);

	if(check_16_version(ip, port))
	{
		int allchannels = get_chnls(alias);
		if(allchannels > 8)
		{
			if(m_input == 9) 
				return TRUE;
		}
		else
		{
			if(m_input == allchannels) 
				return TRUE;
		}
	}
	return FALSE;
}

//##ModelId=3F90BAB70385
void CRightAlarm::OnRefresh()
{
	GET_ALIAS;
	if(check_16_alarm_all(alias)) return;
	get_net_opt(alias, OPT_ALARM, m_input, m_hWnd);
}

// Dialog -> opt
//##ModelId=3F90BAB60275
void CRightAlarm::get_date()
{
	if(!UpdateData()) return;

	// 如果对某一天不允许Sched
	if( !m_rec_sched )
	{
		for( int i=0; i<8; i++ )
			UNSET_DAY(opt, i);
		return;
	}
	
	SEG1_BGN_HOUR(opt, m_rec_day) = m_date00.GetHour();
	SEG1_BGN_MIN(opt, m_rec_day) = m_date00.GetMinute();
	SEG1_END_HOUR(opt, m_rec_day) = m_date01.GetHour();
	SEG1_END_MIN(opt, m_rec_day) = m_date01.GetMinute();
	
	SEG2_BGN_HOUR(opt, m_rec_day) = m_date10.GetHour();
	SEG2_BGN_MIN(opt, m_rec_day) = m_date10.GetMinute();
	SEG2_END_HOUR(opt, m_rec_day) = m_date11.GetHour();
	SEG2_END_MIN(opt, m_rec_day) = m_date11.GetMinute();

	/*
	 *	EVERDAY和其他天数(1-7)不能同时设置
	 */
	if( m_rec_day == 0 )	// EVERYDAY
	{
		for( int i=1; i<8; i++ )
		{
			UNSET_DAY(opt, i);
		}
	}
	else					// OTHER days
	{
		UNSET_DAY(opt, 0);	// clear EVERYDAY flag
	}
}

// opt -> Dialog
//##ModelId=3F90BAB6027E
void CRightAlarm::put_date()
{
	m_date00 = SEG1_BGN(opt, m_rec_day);
	m_date01 = SEG1_END(opt, m_rec_day);
	m_date10 = SEG2_BGN(opt, m_rec_day);	
	m_date11 = SEG2_END(opt, m_rec_day);
}

//##ModelId=3F90BAB7038F
void CRightAlarm::OnSelchangeWhich() 
{
	ULONG ip;
	USHORT port;
	GET_ALIAS;
	if( alias.IsEmpty() )
		return;
	get_addr(alias, ip, port);

	fill_combo_inputs(alias, &m_cbinput);
//	fill_combo_chnls(alias, &m_cbchannel);
	m_cbinput.AddString("ALL");
	m_cbinput.EnableWindow(!alias.IsEmpty());
	m_input = 0;
//	m_channel = 0;
	UpdateData(FALSE);

	OnRefresh();
}

//##ModelId=3F90BAB703A2
void CRightAlarm::OnSelchangeInput() 
{
	UpdateData();
	OnRefresh();
}

//##ModelId=3F90BAB703AC
void CRightAlarm::OnDatetimechange00(NMHDR* pNMHDR, LRESULT* pResult) 
{
	get_date();
	
	*pResult = 0;
}

//##ModelId=3F90BAB703D4
void CRightAlarm::OnDatetimechange01(NMHDR* pNMHDR, LRESULT* pResult) 
{
	get_date();
	
	*pResult = 0;
}

//##ModelId=3F90BAB8001E
void CRightAlarm::OnDatetimechange10(NMHDR* pNMHDR, LRESULT* pResult) 
{
	get_date();
	
	*pResult = 0;
}

//##ModelId=3F90BAB80051
void CRightAlarm::OnDatetimechange11(NMHDR* pNMHDR, LRESULT* pResult) 
{
	get_date();
	
	*pResult = 0;
}

//##ModelId=3F90BAB80083
void CRightAlarm::OnEnable() 
{
	UpdateData();

}

//##ModelId=3F90BAB8008E
void CRightAlarm::OnRecSchedule() 
{
	UpdateData();
	get_date();
}

//##ModelId=3F90BAB80098
void CRightAlarm::OnSelchangeRecDay() 
{
	UpdateData();
	UpdateData(FALSE);
}

//##ModelId=3F90BAB800A2
void CRightAlarm::OnSet() 
{
	UpdateData(true);
	ULONG ip;
	USHORT port;
	CString m_alias = get_alias();
	get_addr(m_alias, ip, port);
    if(!check_popedom(ip, port, m_input+1, 4)) return;
   
	CString m_logfile;
    m_logfile.Format(IDS_ALARM_RECORD,get_alias(),m_input+1);
    write_log_file(m_logfile);

	get_date();
     
	m_rec_duration = max(REC_MIN, min(REC_MAX, m_rec_duration));
	UpdateData(FALSE);

	opt.onoff = (m_enable && m_rec_sched);

	if(check_16_version(ip, port))
	{
		if(check_16_alarm_all(m_alias)) 
			opt.alarmin = 0xff;
		else 
			opt.alarmin = m_input;
	}
	else
	{
		if(check_sel_channel(ip, port, m_input))
			opt.alarmin = 0xff;
		else 
			opt.alarmin = m_input;
	}


	opt.recchannel = 0;
	/*
	for( int i=0; i<chnl_cnt; i++ )
	{
		//if( m_channel[i] )
		if( *ck[i] )
			opt.recchannel |= 1<<i;
	}
	*/

	WRITE_BIT(1); WRITE_BIT(2); WRITE_BIT(3); WRITE_BIT(4); 
	WRITE_BIT(5); WRITE_BIT(6); WRITE_BIT(7); WRITE_BIT(8); 
	WRITE_BIT(9); WRITE_BIT(10); WRITE_BIT(11); WRITE_BIT(12); 
	WRITE_BIT(13); WRITE_BIT(14); WRITE_BIT(15); WRITE_BIT(16); 

	opt.alarmout = 0;
	if( m_out1 )
		opt.alarmout |= 1;
	if( m_out2 )
		opt.alarmout |= 2;
	if( m_out3 )
		opt.alarmout |= 4;
	if( m_out4 )
		opt.alarmout |= 8;
	opt.rectime = m_rec_duration;

	GET_ALIAS;
	set_net_opt(alias, OPT_ALARM, &opt, m_hWnd);
}

void fill_combo_week(CComboBox* cbb)
{
	if( !cbb )
		return;

	cbb->ResetContent();

	UINT ids[] = 
	{
		IDS_EVERYDAY, IDS_MONDAY, IDS_TUESDAY, IDS_WEDNESDAY,
		IDS_THURSDAY, IDS_FRIDAY, IDS_SATURDAY, IDS_SUNDAY
	};

	for( int i=0; i<8; i++ )
		cbb->AddString(IDString(ids[i]));

	cbb->SetCurSel(0);
}

ON_LOGGED_OUT1(CRightAlarm, m_cbinput.ResetContent());

//##ModelId=3F90BAB800AC
void CRightAlarm::OnDeltaposSpin(NMHDR* pNMHDR, LRESULT* pResult) 
{
	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);
	
	opt.rectime = m_rec_duration;

	*pResult = 0;
}

//##ModelId=3F90BAB800DD
void CRightAlarm::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.
	
	// TODO: Add your control notification handler code here
	UpdateData();
	opt.rectime = m_rec_duration;
}

//##ModelId=3F90BAB800E8
void CRightAlarm::OnOut1() 
{
	UpdateData();
	if( m_out1)
		opt.alarmout |= 1;
	else
		opt.alarmout &= ~1;
}

//##ModelId=3F90BAB800F1
void CRightAlarm::OnOut2() 
{
	UpdateData();
	if( m_out2)
		opt.alarmout |= 2;
	else
		opt.alarmout &= ~2;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -