freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

環(huán)境潔凈度實時監(jiān)測系統(tǒng)畢業(yè)設計論文說明書畢業(yè)論文(編輯修改稿)

2025-07-16 13:18 本頁面
 

【文章內(nèi)容簡介】 250 毫秒執(zhí)行 OnTimer()函數(shù)然后,再用 MFC ClassWizard 在視圖類 CSKView 里重載對應于消息WM_TIMER 的函數(shù) OnTimer(UINT nIDEvent),在該函數(shù)里添加定時發(fā)送給計數(shù)器更新監(jiān)測數(shù)據(jù)指令的代碼,代碼如下:CString m_ShiShiShuaXing。//定義一個字符串類型的變量m_ShiShiShuaXing=G。if(m_sc==1)//布爾型 m_sc 變量用以控制是否實時發(fā)出刷新指令{(COleVariant(m_ShiShiShuaXing))。 //實時發(fā)出更新指令 UpdateData(FALSE)。m_strEditRXData=。//接收變量實時清零}最后就是后臺對接收過來的數(shù)據(jù)的處理,這部分比較繁瑣,下面就來詳細介紹一下:計算機通過串口接收到的原始數(shù)據(jù)是一串二進制數(shù),先把這些二進制數(shù)轉(zhuǎn)換成十進制的字符串并將其格式化為每個十進制數(shù)占三位,通過對接收到的字符串的頭三位標致位的判斷,截獲實時數(shù)據(jù)更新的數(shù)據(jù)包。然后新建一個一維的字符數(shù)組,將這個字符串放入這個字符數(shù)組中,通過字符數(shù)組截取相應的數(shù)據(jù)位,再將這些數(shù)據(jù)位組合成的十進制字符串類型轉(zhuǎn)換成一個整型數(shù),再將這個整型數(shù)按照數(shù)據(jù)還原協(xié)議進行加和乘的運算還原出與計數(shù)器上一致的整型數(shù)據(jù),再把這些整型數(shù)據(jù)轉(zhuǎn)型成字符串類型,將這些還原出來的字符串賦值給各個動態(tài)文本框?qū)淖兞?,最后在主界面上顯示出來供用戶查看。具體的過程如圖 數(shù)據(jù)的還原過程。二進制十進制字符串字符數(shù)組整型十進制數(shù)字符串在界面上顯示格式轉(zhuǎn)化 放入字符數(shù)組截取相應數(shù)據(jù)位根據(jù)相應協(xié)議還原數(shù)據(jù)并轉(zhuǎn)換格式賦值給與動態(tài)文本框相應的變量 數(shù)據(jù)的還原過程 周期數(shù)據(jù)顯示設計所謂周期數(shù)據(jù)指的是計數(shù)器在連續(xù)監(jiān)測了一個周期后,將這個周期內(nèi)監(jiān)測到的所有塵埃粒子各個級別的總數(shù)上傳至計算機并在客戶端顯示。大體上思想和實時顯示的設計差不多,也是通過檢測標致位捕獲周期數(shù)據(jù)的數(shù)據(jù)包,然后再經(jīng)過數(shù)據(jù)還原處理,將還原的數(shù)據(jù)在程序的主界面上相應的位置顯示出來。與實時顯示不同的是周期數(shù)據(jù)的數(shù)據(jù)包是跟在實時顯示數(shù)據(jù)包的后面的,所以要截獲第 90~92 位標致位來判斷是否是周期數(shù)據(jù)。一旦判斷是周期數(shù)據(jù),剛將其進行后臺處理并在主界面上顯示,供用戶查看。 功能鍵設計功能鍵按照其功能主要分為三類,分別是負責與計數(shù)器通信的功能鍵,負責操作數(shù)據(jù)庫的功能鍵和負責系統(tǒng)其他功能的功能鍵。這種功能鍵主要有:開泵、關(guān)泵、周期設定、清零和數(shù)據(jù)上傳等。其中開泵、關(guān)泵、清零這三個按鈕的功能實現(xiàn)方法較為簡單,可以直接用“(COleVariant())”語句發(fā)送相應的字符串命令給計數(shù)器就可以了。而周期設定和數(shù)據(jù)上傳的實現(xiàn)方法較前面幾個功能鍵稍顯復雜,下面分別介紹:(1) 周期設定首先新建一個對話框資源,對這個對話框新建一個 ZhouQi 類,然后有這個對話框上添加一個靜態(tài)的和一個動態(tài)的文本編輯框,并對動態(tài)編輯框添加一個字符串變量,然后再在視圖類里添加一個 ZhouQi 類的對像 m_zhouqisheding,最后添加一個周期設定按鈕并為這個按鈕在 CSKView 類里創(chuàng)建一個對應的函數(shù)OnButtonZhouqisheding(),在這個函數(shù)里添加代碼如下: int len。//用于確定輸入的周期字符串長度 CString strm。//用于傳遞周期值CString str=。//用于傳遞周期指令strm=。int result=()。//彈出設定周期的對話框 if(result==IDOK){strm=。len=strlen()。if(1==len){str=C00+strm。//長度等于 1,說明周期秒數(shù)小于 10,組合指令(COleVariant(str))。//發(fā)送設定周期的指令}if(2==len){str=C0+strm。//長度等于 2,說明周期秒數(shù)小于 100,組合指令(COleVariant(str))。//發(fā)送設定周期的指令}if(3==len){str=C+strm。//長度等于 3,說明周期秒數(shù)小于 1000,組合指令(COleVariant(str))。//發(fā)送設定周期的指令}m_shujukuzhouqi=。UpdateData(FALSE)。}(2) 數(shù)據(jù)上傳在數(shù)據(jù)上傳中,先用了一個動畫控件在數(shù)據(jù)上傳對話框里播放一個文件復制的動畫,當用戶點擊“上傳結(jié)束”按鈕時,計算機會接收從計數(shù)器上傳的脫機檢測數(shù)據(jù),這時利用一個 BOOL 型的變量,將定時器停下來,這段時間串口專門用來接收上傳的脫機檢測數(shù)據(jù)。計算機接收到這些數(shù)據(jù)后,先提取數(shù)據(jù)包中表示一共有上傳了多少組數(shù)據(jù)的數(shù)據(jù)長度位,將其轉(zhuǎn)換成整型,并根據(jù)它設定循環(huán)次數(shù)。在這個循環(huán)里,對每一個主記錄進行數(shù)據(jù)還原,并將這些還原出來的數(shù)據(jù)存入數(shù)據(jù)庫內(nèi),再從數(shù)據(jù)庫里讀出這些數(shù)據(jù)顯示在主界面下的列表框控件里,供用戶查看或打印。 負責操作數(shù)據(jù)庫的功能鍵:這些功能鍵主要有保存周期數(shù)據(jù)、刪除當前記錄、連續(xù)保存周期、停止連續(xù)保存、精確查詢、模糊查找等。(1) 保存周期數(shù)據(jù)是將一周期檢測出來的塵埃粒子總數(shù)保存在數(shù)據(jù)庫內(nèi)。其實現(xiàn)方法如下:為了給數(shù)據(jù)庫添加一條新記錄,必須計算出下一個 ID 號是多少。因此,應移動記錄到記錄集的最后一條記錄,以取得該記錄的 ID 值,并將此值增1。然后,調(diào)用 AddNew 函數(shù)來添加新的記錄,將 ID 字段的值設置為剛剛計算出的新 ID 值,再調(diào)用 Update 函數(shù)來保存這條新記錄。最后,調(diào)用 Requery 函數(shù)來更新記錄集,并移動到最后一條記錄處,以便讓用戶保存新的周期數(shù)據(jù)。 為了實現(xiàn)給應用程序添加這一功能,首先為記錄集類 CSKSet 添加一個計算下一個 ID 號的成員函數(shù) GetMaxID,函數(shù)類型為長整型,訪問權(quán)限為公共。編輯該函數(shù),并加入如下的代碼: long CSKSet::GetMaxID(){MoveLast()。//移動到數(shù)據(jù)庫底部 return m_ammount。//返回主鍵號} 然后,還需要添加一個按鈕控件,這樣用戶就可以發(fā)出一個為數(shù)據(jù)庫添加一條新記錄的消息。 使用 Class Wizard,為視圖類 CSKView 添加一個關(guān)于該菜單的COMMAND 事件消息的事件處理函數(shù)。編輯該函數(shù),主要代碼如下: void CSKView::OnButtonBaocenzqsj() {m_pSetm_ammount=m_pSetGetMaxID()+1。 //獲得一個最大的,新的 ID號 m_pSetAddNew()。//新增一條記錄 m_pSetm_50um=m_50mm。//保存大于 的塵埃粒子的數(shù)量 m_pSetm_30um=m_30mm。//保存大于 的塵埃粒子的數(shù)量 m_pSetm_20um=m_20mm。//保存大于 的塵埃粒子的數(shù)量 m_pSetm_10um=m_10mm。//保存大于 的塵埃粒子的數(shù)量 m_pSetm_05um=m_05mm。//保存大于 的塵埃粒子的數(shù)量 m_pSetm_03um=m_03mm。//保存大于 的塵埃粒子的數(shù)量 m_pSetm_zhouqi=m_shujukuzhouqi+秒。//保存該條記錄的周期長度 //獲 得 當 前 的 系 統(tǒng) 時 間 并 和 記 錄 一 起 保 存 在 數(shù) 據(jù) 庫 內(nèi) SYSTEMTIME sysTime。 //定義一個時間類 GetLocalTime(amp。sysTime)。 //獲得當前時間 CString strMsgtime。 ( %4d 年%2d 月%2d 日%2d 時%2d 分, , ,)。 //把當前 time賦給字符串m_pSetm_time=strMsgtime。//將時間存入數(shù)據(jù)庫m_pSetUpdate()。//刷新記錄集 m_pSetRequery()。 m_pSetMoveLast()。//移動到新記錄上 UpdateData(FALSE)。//刷新窗體}//重 新 開 啟 數(shù) 據(jù) 庫 , 將 數(shù) 據(jù) 庫 內(nèi) 記 錄 重 新 讀 出 并 在 主 界 面 下 方 的 列 表 框 控件 內(nèi) 顯 示 出 來 m_pSetClose()。//關(guān)閉數(shù)據(jù)庫 m_pSetOpen()。//重新開啟數(shù)據(jù)庫 m_pSetMoveFirst()。//移動到第一條記錄 ()。//將列表框控件初始化,刪除列表框控件里所有內(nèi)容 while (!m_pSetIsEOF())//遍歷數(shù)據(jù)庫,將記錄寫入列表框控件{ (0,m_pSet m_time,0)。 (0,1,m_pSet m_zhouqi)。 (0,2,m_pSet m_03um)。 (0,3,m_pSet m_05um)。 (0,4,m_pSet m_10um)。 (0,5,m_pSet m_20um)。 (0,6,m_pSet m_30um)。 (0,7,m_pSet m_50um)。 m_pSetMoveNext()。}m_pSetMoveLast()。//移動到數(shù)據(jù)庫內(nèi)最后一條記錄(2) 刪除當前記錄新建一個刪除按鈕,當用戶在單條記錄顯示區(qū)域移動到要刪除的記錄時,點擊刪除按鈕,就可以將這條記錄刪除,主要代碼如下:void CSKView::OnButtonDelete() {// TODO: Add your control notification handler code hereif(MessageBox(真的要刪除該記錄嗎?,刪除記錄,MB_YESNO|MB_ICONQUESTION)==IDYES)//彈出一個確認刪除消息{m_pSetDelete()。//刪除一條記錄m_pSetClose()。//關(guān)閉數(shù)據(jù)庫m_pSetOpen()。//重新開啟數(shù)據(jù)庫m_pSetMoveFirst()。//移動到第一條記錄UpdateData(FALSE)。()。//將列表框控件初始化,刪除列表框控件里所有內(nèi)容show()。//調(diào)用 show()函數(shù),在列表框控件里顯示數(shù)據(jù)庫記錄m_pSetMoveFirst()。//移動到數(shù)據(jù)庫第一條記錄}}(3) 連續(xù)保存周期和停止連續(xù)保存這兩個功能其實是一個功能,主要是考慮到如果用戶臨時有事,系統(tǒng)可以在無人操作的狀態(tài)下將檢測到的數(shù)據(jù)自動存入數(shù)據(jù)庫,以供用戶在方便時查詢。主要是通過定義一個布爾型的變量 m_zqlx,對其操作,來確定何時系統(tǒng)自動調(diào)用“保存周期數(shù)據(jù)”這個功能函數(shù) OnButtonBaocenzqsj() 。當用戶點擊“連續(xù)保存周期”按鈕時,系統(tǒng)將 m_zqlx 置“1”,并將“連續(xù)保存周期”按鈕禁用。此后,只要系統(tǒng)一接收到周期數(shù)據(jù)就自動調(diào)用OnButtonBaocenzqsj()函數(shù),將周期數(shù)據(jù)存入數(shù)據(jù)庫。當用戶點擊“停止連續(xù)保存”按鈕時,系統(tǒng)將 m_zqlx 置“0”,并將“停止連續(xù)保存”按鈕禁用。此后,系統(tǒng)即使接收到周期數(shù)據(jù)也只是在主界面上顯示一下,而不將數(shù)據(jù)存入數(shù)據(jù)庫。數(shù)據(jù)流程如圖 圖 數(shù)據(jù)流程(4) 精確查詢精確查詢是為用戶提供精確到某年某月某日某時某分的記錄查詢服務。這個功能要求用戶明確給出所要查詢記錄的日期和時間。如果用戶沒有給出,剛按缺省值 2022 年 1 月 1 日 0 時 0 分查詢。實現(xiàn)方法如下:首先,新建一個對話框并為其添加一個對話框類 JingQueChaXun。在這個對話框內(nèi)分別添加五個靜態(tài)對話框和五個組合框,用于讓用戶輸入所要查詢的日期和時間。當用戶按下確定按鈕后,系統(tǒng)根據(jù)用戶輸入的時間,在數(shù)據(jù)庫內(nèi)對所有記錄的“time”字段進行查詢。在 CSKSet 類的基類 CRecordset 類中有一個數(shù)據(jù)成員m_strFilter,其封裝了 select 的功能,可以通過設置該成員實現(xiàn)查找。其主要代碼如下:void CSKView::OnButtonJqcx() {// TODO: Add your control notification handler code hereint result=()。//彈出精確查詢對話框//組 合 要 查 詢 的 時 間 字 符 串CString str1=time。if(result==IDOK)//當單擊下“確定”按鈕后{str1=str1+=39。++39。//根據(jù)用戶輸入的時間條件,組合查詢 條 件()。//刪除主界面下方列表框控件內(nèi)所有內(nèi)容m_pSetClose()。//關(guān)閉數(shù)據(jù)庫m_pSetm_strFilter=str1。//向 CSKSet 類的基類 CRecordset 類中的一個數(shù)據(jù)成員 m_strFilter 輸入,其封裝了 select 的功能m_pSetOpen()。//打開數(shù)據(jù)庫int recCount=m_pSetGetReco
點擊復制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1