|
~: Code for traffic light control in VC++ :~
void CTimersDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default //CTime curTime = CTime::GetCurrentTime(); //m_stime.Format("%d:%d:%d",curTime.GetHour(),curTime.GetMinute(),curTime.GetSecond()); int t1,t2,t3; CTime t = CTime::GetCurrentTime(); switch(nIDEvent) { case ID_CLOCK_TIME: m_sclock.Format("%d:%d:%d", t.GetHour(), t.GetMinute(), t.GetSecond()); if((t.GetHour() == 14) && (t.GetMinute() ==0) && (t.GetSecond() == 0)) { _outp(0x0378,0xAA); MessageBox("Yellow lights are ON"); KillTimer(ID_CLK_TIMR); m_ic = 0; m_stime.Format("%d",m_ic); } else if((t.GetHour() == 16) && (t.GetMinute() ==0) && (t.GetSecond() == 0)) { _outp(0x0378,0x00); MessageBox("Yellow lights are OFF"); SetTimer(ID_CLK_TIMR,1000,NULL); } else if((t.GetHour() == 22) && (t.GetMinute() ==0) && (t.GetSecond() == 0)) { _outp(0x0378,0xAA); MessageBox("Yellow lights are ON"); KillTimer(ID_CLK_TIMR); m_ic = 0; m_stime.Format("%d",m_ic); } else if((t.GetHour() == 8) && (t.GetMinute() ==0) && (t.GetSecond() == 0)) { _outp(0x0378,0x00); MessageBox("Yellow lights are OFF"); SetTimer(ID_CLK_TIMR,1000,NULL); } break; case ID_CLK_TIMR: { if(m_ic != 120) m_ic++; else m_ic = 0; m_stime.Format("%d",m_ic); switch(m_ic) { case 30: _outp(0x0378,0x01); MessageBox("LAN 1 is open"); break; case 60: _outp(0x0378,0x04); MessageBox("LAN 2 is open"); break; case 90: _outp(0x0378,0x10); MessageBox("LAN 3 is open"); break; case 120: _outp(0x0378,0x40); MessageBox("LAN 4 is open"); break; } } } UpdateData(FALSE); CDialog::OnTimer(nIDEvent); }
void CTimersDlg::OnStrt() { // TODO: Add your control notification handler code here SetTimer(ID_CLK_TIMR,1000,NULL); }
void CTimersDlg::OnStop() { // TODO: Add your control notification handler code here KillTimer(ID_CLK_TIMR); m_ic = 0; m_stime.Format("%d",m_ic);
}
//void CTimersDlg::OnRed1() //{ // TODO: Add your control notification handler code here //_outp(0x0378,0x01); //}
void CTimersDlg::OnGreen1() { // TODO: Add your control notification handler code here _outp(0x0378,0x01); MessageBox("LAN 1 is open"); }
void CTimersDlg::OnGreen2() { // TODO: Add your control notification handler code here _outp(0x0378,0x04); MessageBox("LAN 2 is open"); }
void CTimersDlg::OnGreen3() { // TODO: Add your control notification handler code here _outp(0x0378,0x10); MessageBox("LAN 3 is open"); }
void CTimersDlg::OnGreen4() { // TODO: Add your control notification handler code here _outp(0x0378,0x40); MessageBox("LAN 4 is open"); }
void CTimersDlg::OnEnbl1() { // TODO: Add your control notification handler code here UpdateData(TRUE); m_enb2 = FALSE; GetDlgItem(IDC_GREEN1)->EnableWindow(FALSE); GetDlgItem(IDC_GREEN2)->EnableWindow(FALSE); GetDlgItem(IDC_GREEN3)->EnableWindow(FALSE); GetDlgItem(IDC_GREEN4)->EnableWindow(FALSE); GetDlgItem(IDC_YELLOW1)->EnableWindow(FALSE); GetDlgItem(IDC_YELLOW2)->EnableWindow(FALSE); GetDlgItem(IDC_YELLOW3)->EnableWindow(FALSE); GetDlgItem(IDC_YELLOW4)->EnableWindow(FALSE); GetDlgItem(IDC_Manual)->EnableWindow(FALSE); GetDlgItem(IDC_LAN1)->EnableWindow(FALSE); GetDlgItem(IDC_LAN2)->EnableWindow(FALSE); GetDlgItem(IDC_LAN3)->EnableWindow(FALSE); GetDlgItem(IDC_LAN4)->EnableWindow(FALSE); GetDlgItem(IDC_Automatic)->EnableWindow(TRUE); GetDlgItem(IDC_COUNT)->EnableWindow(TRUE); GetDlgItem(IDC_Time)->EnableWindow(TRUE); GetDlgItem(IDC_STRT)->EnableWindow(TRUE); GetDlgItem(IDC_STOP)->EnableWindow(TRUE); SetTimer(ID_CLOCK_TIME, 1000, NULL); SetTimer(ID_CLK_TIMR,1000,NULL); UpdateData(FALSE); }
void CTimersDlg::OnEnbl2() { // TODO: Add your control notification handler code here UpdateData(TRUE); m_enb1 = FALSE; GetDlgItem(IDC_GREEN1)->EnableWindow(TRUE); GetDlgItem(IDC_GREEN2)->EnableWindow(TRUE); GetDlgItem(IDC_GREEN3)->EnableWindow(TRUE); GetDlgItem(IDC_GREEN4)->EnableWindow(TRUE); GetDlgItem(IDC_YELLOW1)->EnableWindow(TRUE); GetDlgItem(IDC_YELLOW2)->EnableWindow(TRUE); GetDlgItem(IDC_YELLOW3)->EnableWindow(TRUE); GetDlgItem(IDC_YELLOW4)->EnableWindow(TRUE); GetDlgItem(IDC_Manual)->EnableWindow(TRUE); GetDlgItem(IDC_LAN1)->EnableWindow(TRUE); GetDlgItem(IDC_LAN2)->EnableWindow(TRUE); GetDlgItem(IDC_LAN3)->EnableWindow(TRUE); GetDlgItem(IDC_LAN4)->EnableWindow(TRUE); GetDlgItem(IDC_Automatic)->EnableWindow(FALSE); GetDlgItem(IDC_COUNT)->EnableWindow(FALSE); GetDlgItem(IDC_Time)->EnableWindow(FALSE); GetDlgItem(IDC_STRT)->EnableWindow(FALSE); GetDlgItem(IDC_STOP)->EnableWindow(FALSE); UpdateData(FALSE); KillTimer(ID_CLK_TIMR); m_ic = 0; m_stime.Format("%d",m_ic); }
void CTimersDlg::OnXit() { // TODO: Add your control notification handler code here OnOK(); }
void CTimersDlg::OnStopclk() { // TODO: Add your control notification handler code here KillTimer(ID_CLOCK_TIME); }
void CTimersDlg::OnStrtclk() { // TODO: Add your control notification handler code here SetTimer(ID_CLOCK_TIME, 1000, NULL); }
void CTimersDlg::OnYellow1() { // TODO: Add your control notification handler code here _outp(0x0378,0xAA); MessageBox("Yellow lights are ON"); }
void CTimersDlg::OnYellow2() { // TODO: Add your control notification handler code here _outp(0x0378,0xAA); MessageBox("Yellow lights are ON"); }
void CTimersDlg::OnYellow3() { // TODO: Add your control notification handler code here _outp(0x0378,0xAA); MessageBox("Yellow lights are ON"); }
void CTimersDlg::OnYellow4() { // TODO: Add your control notification handler code here _outp(0x0378,0xAA); MessageBox("Yellow lights are ON"); }
|