📄 rightalarm.cpp
字号:
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 + -