智能家居安防系统设计毕业论文-智能小区安防系统设计论文 下载本文

内容发布更新时间 : 2024/5/18 11:13:10星期一 下面是文章的全部内容请认真阅读。

基于无线传感器网络的智能家居安防系统初步构建

int gogo=0; int speed=9600; int tab=0;

CString FilePath;

// CAboutDlg dialog used for App About class CAboutDlg : public CDialog {

public: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() };

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT }

void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP }

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg) // No message handlers //}}AFX_MSG_MAP END_MESSAGE_MAP() // CSerialPortTestDlg dialog

CSerialPortTestDlg::CSerialPortTestDlg(CWnd* pParent /*=NULL*/) : CDialog(CSerialPortTestDlg::IDD, pParent) { //{{AFX_DATA_INIT(CSerialPortTestDlg) m_strEditReceiveMsg = _T(\ m_strEditSendMsg = _T(\ //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_bSerialPortOpened=FALSE; //stop=FALSE; i=1; m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

- 38 -

浙江理工大学信息电子学院本科毕业论文

}

void CSerialPortTestDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CSerialPortTestDlg) DDX_Control(pDX, IDC_COMBO_COMPORT, m_ctrlComboComPort); DDX_Text(pDX, IDC_EDIT_RECEIVEMSG, m_strEditReceiveMsg); DDV_MaxChars(pDX, m_strEditReceiveMsg, 1024); DDX_Text(pDX, IDC_EDIT_SENDMSG, m_strEditSendMsg); DDV_MaxChars(pDX, m_strEditSendMsg, 1024); DDX_Control(pDX, IDC_MULTICOLORPLOT, m_ctrlMultiColorPlot); //}}AFX_DATA_MAP }

BEGIN_MESSAGE_MAP(CSerialPortTestDlg, CDialog) //{{AFX_MSG_MAP(CSerialPortTestDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON_OPEN, OnButtonOpen) ON_BN_CLICKED(IDC_BUTTON_CLOSE, OnButtonClose) ON_BN_CLICKED(IDC_BUTTON_SEND, OnButtonSend) ON_MESSAGE(WM_COMM_RXCHAR,OnComm) ON_BN_CLICKED(IDC_BUTTON1, OnButtonClear) ON_BN_CLICKED(IDC_RADIO_K, OnRadioK) ON_BN_CLICKED(IDC_RADIO_W, OnRadioW) ON_BN_CLICKED(IDC_RADIO_S, OnRadioS) ON_BN_CLICKED(IDC_RADIO_zz, OnRADIOzz) ON_BN_CLICKED(IDC_RADIO_xz, OnRADIOxz) ON_BN_CLICKED(IDC_BUTTON_Stop, OnBUTTONStop) ON_BN_CLICKED(IDC_BUTTON_OPENFAN, OnButtonOpenfan) ON_BN_CLICKED(IDC_BUTTON_CLOSEFAN, OnButtonClosefan) //}}AFX_MSG_MAP END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////////////// // CSerialPortTestDlg message handlers BOOL CSerialPortTestDlg::OnInitDialog() { CDialog::OnInitDialog(); // Add \ // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } }

- 39 -

基于无线传感器网络的智能家居安防系统初步构建

// Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here Isfanopen=TRUE; m_ctrlMultiColorPlot.zdx_bool=FALSE; zdx_ztr_choice+=\ FilePath=\ m_ctrlComboComPort.SetCurSel(0); zdx_danwei=\ ((CButton *)GetDlgItem(IDC_RADIO_K))->SetCheck(TRUE);//初始复选框为可燃气体 ((CButton *)GetDlgItem(IDC_RADIO_zz))->SetCheck(TRUE);//初始复选框为柱状显示 m_ctrlMultiColorPlot.SetTitle(\当前室内燃气浓度:\ m_ctrlMultiColorPlot.SetUnit(\ m_ctrlMultiColorPlot.LockRang(0.00f,270.00f); m_ctrlMultiColorPlot.SetPlotGranulatrity(4); m_ctrlMultiColorPlot.SetGridResolutionX(15); m_ctrlMultiColorPlot.ShowTitle(4); m_ctrlMultiColorPlot.SetPlotType(BAR); SetTimer(1,200,NULL);

return TRUE; // return TRUE unless you set the focus to a control }

void CSerialPortTestDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } }

void CSerialPortTestDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } }

- 40 -

浙江理工大学信息电子学院本科毕业论文

HCURSOR CSerialPortTestDlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon;}

LONG CSerialPortTestDlg::OnComm(WPARAM ch,LPARAM port) {

int a,compare; CString str,STR_FAN_CTRL=\ CFile file; //显示当前时间 年-月-日 时:分:秒 tTime=CTime::GetCurrentTime(); //根据得到的当前时间格式化为字符串形式

strTime=tTime.Format(\年-%m月-%d日 当前时间:%H:%M:%S\ GetDlgItem(IDC_STATIC)->SetWindowText(strTime); ch=ch-110;//可根据实际环境调节 a=(int)(ch); if(m_ctrlMultiColorPlot.zdx_bool==FALSE) { if(zdx_ztr_choice==\可燃气预警处理 { if(a>300) if(Isfanopen==TRUE) { Isfanopen=FALSE; m_SerialPort.WriteToPort((LPCTSTR)\ } } if(zdx_ztr_choice==\温度预警处理 { if(a>28) if(Isfanopen==TRUE) { Isfanopen=FALSE; m_SerialPort.WriteToPort((LPCTSTR)\ } } if(zdx_ztr_choice==\湿度预警处理 { if(a>60) if(Isfanopen==TRUE) { Isfanopen=FALSE; m_SerialPort.WriteToPort((LPCTSTR)\ } } zdx_str.Format(\ m_strEditReceiveMsg+=zdx_str; Stor_str+=ch; m_strEditReceiveMsg+=zdx_danwei; m_strEditReceiveMsg+=\ i++; if(i==0) { Stor_str+=\

- 41 -

基于无线传感器网络的智能家居安防系统初步构建

} if(i==300)i=0; m_ctrlMultiColorPlot.SetData((float)a);

str.Format(\将数组转换为Cstring型变量 if (Stor_str.GetLength()>=300) { CStdioFile zdx_readfile; CString zdx_readstr1,zdx_readstr2; if(zdx_readfile.Open(FilePath,CFile::modeRead)) { while(zdx_readfile.ReadString(zdx_readstr1))//逐行查询,至到文件尾 { zdx_readstr2+=zdx_readstr1; } zdx_readfile.Close(); } if (file.Open(FilePath,CFile::modeCreate|CFile::modeReadWrite)) { file.Write(zdx_readstr2,zdx_readstr2.GetLength());//原来的数据 file.Write(Stor_str,300);//写入新的数据 file.Close(); Stor_str.Empty();//清除编辑框内容 } } if(m_strEditReceiveMsg.GetLength()>300)m_strEditReceiveMsg.Empty(); UpdateData(false); } return 0; }

void CSerialPortTestDlg::OnButtonOpen() { // TODO: Add your control notification handler code here int nPort=m_ctrlComboComPort.GetCurSel()+1; if(m_SerialPort.InitPort(this,nPort,9600,'n',8,1,EV_RXFLAG|EV_RXCHAR,512)) { m_SerialPort.StartMonitoring(); m_bSerialPortOpened=TRUE; ::MessageBox(NULL,\打开串口成功!\\n波特率:9600\\n奇偶校验:无\\n数据位:8\\n停止位:1\\n\提示!提示!\ } else { ::MessageBox(NULL,\没有发现此串口或被占用!\提示!提示!\ m_bSerialPortOpened=FALSE; } GetDlgItem(IDC_BUTTON_OPEN)->EnableWindow(!m_bSerialPortOpened); GetDlgItem(IDC_BUTTON_CLOSE)->EnableWindow(m_bSerialPortOpened); }

void CSerialPortTestDlg::OnButtonClose() { // TODO: Add your control notification handler code here m_SerialPort.ClosePort();

- 42 -