【正文】
t r ( )+ p a r s e D a t e F o r m a t ( )+ p a r s V e h i c l e N u m F o r m a t ( )+ j u d g e I n p u t 4 b t C o n f i r m ( )+ b t C l e a r C l i c k e d ( )+ b t C o n f i r m C l i c k e d ( ) b t H e i g h t b t W i d t h r o w S p a c e c o l S p a c ek e y+ p a r s e R o w ( )+ r o w 2 S t r ( )+ r e a d L i n e 4 U p l o a d ( )+ r e a d B y D a t e ( )+ r e a d A l l ( )+ r e a d B y C H ( )+ a p p e n d R o w ( )+ c l e a r F i l e ( )+ m o d i f y R o w ( )+ p a r s e P w d ( )+ r e a d P a s s w d ( )d a t a i fq e x t s e r i a l p o r t圖 measure 類圖設(shè)計空/重和車型的下拉菜單,檢測人員可以對信息進行選擇,因為要分別在車廂空載和載重情況下的數(shù)據(jù)采集,以及車型的選擇,菜單是實現(xiàn)選擇的最好形式。cmbEmptyOrLoad = new QComboBox(K/Z, this, 0)。cmbEmptyOrLoadsetGeometry(QRect(()+colSpace50, () + 3, btWidth , btHeight))。QString str。str = K。cmbEmptyOrLoadinsertItem(str, 0)。str = Z。 cmbEmptyOrLoadinsertItem(str, 1)。東北大學(xué)本科畢業(yè)設(shè)計(論文) 第 4 章 系統(tǒng)設(shè)計 18 對于車型的選擇,是通過讀取文件來進行的QFile file(/opt/Qtopia/bin/)。為車軸設(shè)計數(shù)據(jù)傳送窗口,串口送入的數(shù)據(jù)直接寫入正在檢測的車軸窗口QLabel * lbZ1_1 = new QLabel(codectoUnicode(軸 11, strlen(軸 11)) , this, 0)。lbZ1_1setGeometry(QRect((), () + rowSpan + rowSpace, btWidth, btHeight))。leZ1_1 = new LineEdit(this)。leZ1_1setGeometry(QRect(() + colSpace 50 , () + rowSpan + rowSpace , btWidth, btHeight))。QObject::connect(leZ1_1, SIGNAL(clicked()), this, SLOT(leZ1_1Clicked()))。leZ1_1show()。調(diào)用串口函數(shù) QextSerialPort(),對于要采集車廂四個軸的數(shù)據(jù),是通過帶串口的卡尺直接送到系統(tǒng)中,port = new QextSerialPort()。portsetBaudRate(BAUD4800)。 portsetFlowControl(FLOW_OFF)。portsetParity(PAR_NONE)。 portsetDataBits(DATA_8)。 portsetStopBits(STOP_1)。 portopen(IO_ReadWrite)。設(shè)計車號的窗口,點擊窗口,切換到數(shù)字 09 的窗口,要車號寫入(要求車號必須為 7 位數(shù)字)設(shè)計日期的窗口,日期是系統(tǒng)是通過自己的函數(shù) getdata()得到(要求日期為 6 位顯示,即年年月月日日) 。設(shè)計保存的按鈕,點擊保存,可以對已寫入和選擇的數(shù)據(jù)信息保存到 文件中。設(shè)計返回的按鈕,點擊返回,可以返回到上一層窗口。函數(shù) receiveMsg()是將從串口卡尺得到的數(shù)據(jù)接收到系統(tǒng)中,axis 是軸標(biāo)志,若為 0,則串口未打開,數(shù)據(jù)不能輸入,若不為 0(axis 可以是 14) ,則可以將數(shù)據(jù)送入到指定的車軸存儲區(qū)。函數(shù) leZ1_1Clicked()與函數(shù)東北大學(xué)本科畢業(yè)設(shè)計(論文) 第 4 章 系統(tǒng)設(shè)計 19 receiveMsg()有聯(lián)系,leZ1_1Clicked()中指定 axis 的數(shù)值將直接影響receiveMsg()中的 switch 語句的選擇,關(guān)系到串口寫入的數(shù)據(jù)送往哪一車軸存儲區(qū)。函數(shù) leVehicleNumClicked()是實現(xiàn)對車號的輸入,在 Measure()主函數(shù)中已經(jīng)對要輸入的車號設(shè)計了窗口,要輸入車號時,窗口轉(zhuǎn)換到數(shù)字鍵窗口,進行 7 位的車號輸入。函數(shù) getdate()是實現(xiàn)系統(tǒng)對日期的獲取,因為 ARM 機系統(tǒng)本身帶有時間裝置,所以檢測系統(tǒng)只需要獲取 ARM 機本身的時間即可。函數(shù) btSaveClicked()是實現(xiàn)對已獲得的數(shù)據(jù)進行保存,將信息寫入到 文件中,并對寫入的格式進行設(shè)定。保存成功后,會彈出窗口,提示保存成功。同時可以對獲得的數(shù)據(jù)進行打印。A x i s 是否為 0開始判斷四個車軸有無空數(shù)據(jù)是否無輸入數(shù)據(jù)有車號沖突返回寫入 d a t a . t x t 文件否數(shù)據(jù)重寫是打印是 否東北大學(xué)本科畢業(yè)設(shè)計(論文) 第 4 章 系統(tǒng)設(shè)計 20 圖 save 流程圖函數(shù) btMeasureReturnClicked()可以回到主窗口下,退出本窗口,或進入到其他窗口進行操作。函數(shù) reset()可以將已寫入的數(shù)據(jù)重置,全部清空,以便進行下次檢測。 Myquery 設(shè)計可以對已存儲的數(shù)據(jù)進行查詢,查到后可以對數(shù)據(jù)進行修改,保證數(shù)據(jù)的可靠性和結(jié)果的準(zhǔn)確性。類圖設(shè)計如下:+ b t L o g o u t C l i c k e d ( )+ s h o w S u b W i n ( )+ b t S e a c h N R e v i s e C l i c k e d ( )+ b t C a l c P r i n t C l i c k e d ( )+ b t S t a r t M e a s u r e C l i c k e d ( )+ s u b d l g R e t u r n H a n d l e ( )+ b t Q u i t C l i c k e d ( )+ r e s i z e E v e n t ( )+ c l o s e E v e n t ( )+ m o u s e R e l e a s e E v e n t ( )+ s h o w A f t e r L o g i n ( ) b t H e i g h t b t W i d t h r o w S p a n r o w S p a c e 元類 M a i n D l g+ l e V e h i c l e N u m C l i c k e d ( )+ c l o s e E v e n t ( )+ l e I n p u t D a t e C l i c k e d ( )+ k e y R e t u r n C l i c k e d ( )+ b t S e a r c h C l i c k ( )+ b t R e t u r n C l i c k e d ( ) b t H e i g h t b t W i d t h r o w S p a n r o w S p a c e c o l S p a c eM y Q u e r y+ q u e r y B y C H ( )+ q u e r y B y D a t e ( )+ q u e r y ( )+ l e C l i c k e d ( )+ k e y R e t u r n C l i c k e d ( )+ b t R e t u r n C l i c k e d ( )+ b t N e x t C l i c k ( )+ b t P r e v C l i c k e d ( )+ s a v e ( )+ m o u s e R e l e a s e E v e n t ( ) b t H e i g h t b t W i d t h r o w S p a n r o w S p a c e c o l S p a c eD i s p Q u e r y+ b t 2 C h a r C l i c k e d ( )+ b t 2 N u m C l i c k e d ( )+ j u d g e I n p u t ( )+ p a r s e I n u t W e i g h t ( )+ p a r s e D a t e N u m ( )+ p a r s e V e h i c l e N u m ( )+ s e t T i t l e ( )+ p a r s e V e h i c l e S t y l e ( )+ s e t I n p u t T y p e ( )+ s e t I n p u t S t r ( )+ p a r s e D a t e F o r m a t ( )+ p a r s V e h i c l e N u m F o r m a t ( )+ j u d g e I n p u t 4 b t C o n f i r m ( )+ b t C l e a r C l i c k e d ( )+ b t C o n f i r m C l i c k e d ( ) b t H e i g h t b t W i d t h r o w S p a c e c o l S p a c ek e y+ p a r s e R o w ( )+ r o w 2 S t r ( )+ r e a d L i n e 4 U p l o a d ( )+ r e a d B y D a t e ( )+ r e a d A l l ( )+ r e a d B y C H ( )+ a p p e n d R o w ( )+ c l e a r F i l e ( )+ m o d i f y R o w ( )+ p a r s e P w d ( )+ r e a d P a s s w d ( )d a t a i f圖 Myquery 類圖查詢的方式有按車號查詢和按日期查詢兩種。首先設(shè)計“按車號查詢” “按日期查詢”的窗口,點擊窗口,切換到數(shù)字 09 的窗口,將所要查詢的車號寫入(要求車號必須為 7 位數(shù)字) ,或者將所要查詢的日期寫入(日期為 6 位顯示,東北大學(xué)本科畢業(yè)設(shè)計(論文) 第 4 章 系統(tǒng)設(shè)計 21 即年年月月日日) 。設(shè)計查詢按鈕,點擊查詢,可以對已存在在 文件中的數(shù)據(jù)進行查詢。按車號查詢只能查找到唯一記錄,或者顯示“無記錄” ;“按日期查詢”可以查詢到當(dāng)日的多個記錄,可以通過“《”或“》 ”進行近一步的選擇。設(shè)計返回按鈕,點擊返回,可以返回上一層窗口。函數(shù) leVehicleNumClicked()實現(xiàn)要進行按車號查詢時,對車號的錄入,在 Measure()主函數(shù)中已經(jīng)對要輸入的車號設(shè)計了窗口,要輸入車號時,窗口轉(zhuǎn)換到數(shù)字鍵窗口,進行 7 位的車號輸入。函數(shù) leInputDateClicked()實現(xiàn)要進行按日期查詢時,對日期的錄入。函數(shù) btSearchClick()實現(xiàn)對數(shù)據(jù)的查詢工作,分別在按車號和日期下進行查詢。先判斷車號或日期是否是空,將輸入的和記錄的車號或日期比較,若相等,則調(diào)出記錄。 Browse4print 設(shè)計打印查詢可以對已有的記錄進行查詢,查詢方式有按車號和按日期進行查詢,與查詢修改中的功能和方式一樣,充分利用了函數(shù)的可復(fù)用性。按車號查詢時,若存在記錄,則可對其進行重新打印,若不存在,則彈出“無記錄” ;按日期查詢,可以查詢到指定日期下的多條記錄,通過“《” “》 ”進行記錄選擇,同樣可以對其進行重新打印。Browse4print 類圖設(shè)計如下:+ b t L o g o u t C l i c k e d ( )+ s h o w S u b W i n ( )+ b t S e a c h N R e v i s e C l i c k e d ( )+ b t C a l c P r i n t C l i c k e d ( )+ b t S t a r t M e a s u r e C l i c k e d ( )+ s u b d