<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用于卷煙機(jī)組的CAN總線實(shí)時(shí)監(jiān)聽器的設(shè)計(jì)與實(shí)現(xiàn)

          用于卷煙機(jī)組的CAN總線實(shí)時(shí)監(jiān)聽器的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2012-02-22 來源:網(wǎng)絡(luò) 收藏

          數(shù)據(jù)庫系統(tǒng)的DELPHI實(shí)現(xiàn) (1)建立數(shù)據(jù)庫,在本項(xiàng)目中,我們是利用Microsoft Access 建立了一個(gè)關(guān)系數(shù)據(jù)庫(由若干表組成的數(shù)據(jù)庫)。其中包含了一張表,該表的字段分為id表示用以判斷的字符串,以及l(fā)ocation表示參數(shù)值應(yīng)填的文本框代號(hào)。(2)在應(yīng)用程序中要實(shí)現(xiàn)對(duì)所建立的數(shù)據(jù)庫的訪問需要用到數(shù)據(jù)庫引擎和數(shù)據(jù)庫訪問組件以及數(shù)據(jù)庫控制組件,DELPHI7中提供了BDE,ADO數(shù)據(jù)引擎,考慮到項(xiàng)目中的數(shù)據(jù)庫應(yīng)用相對(duì)簡單,我們選擇了常用的BDE(Borland Database Engine)控制讀取所建立的數(shù)據(jù)庫,具體操作為1)利用DEPHI7文件夾中的BDE Administer為所建立的數(shù)據(jù)庫創(chuàng)建別名。2)在窗體中添加數(shù)據(jù)庫訪問組件和數(shù)據(jù)庫控制組件(包括Data Access頁和BDE頁中的組件)來實(shí)現(xiàn)應(yīng)用程序與數(shù)據(jù)庫之間的聯(lián)系。項(xiàng)目中,我們用Table組件來封裝數(shù)據(jù)表,通過BDE數(shù)據(jù)引擎從數(shù)據(jù)庫表格中取得數(shù)據(jù)(參數(shù)值應(yīng)填的文本框代號(hào))并通過DataSource組件將數(shù)據(jù)傳遞給數(shù)據(jù)控制組件TDBEdit,3)在程序中,我們通過TTable提供的Gotokey的方法實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的查找,以及通過對(duì)TDBEdit中的數(shù)據(jù)的使用。實(shí)現(xiàn)了將不同參數(shù)值填到其唯一對(duì)應(yīng)的文本框中。

          2 域請(qǐng)求和域數(shù)據(jù)的處理
            
          因?yàn)橛驍?shù)據(jù)的多類,多變性,以及不確定性,我們不能用處理參數(shù)一樣的數(shù)據(jù)庫或者其他統(tǒng)一處理的方法,所以在程序中我們使用的是用多層復(fù)合選擇語句進(jìn)行判斷然后根據(jù)不同的域數(shù)據(jù)做出不同的處理,域數(shù)據(jù)是根據(jù)標(biāo)識(shí)符上傳的,只有數(shù)據(jù)沒有別的判斷信息,對(duì)域數(shù)據(jù)的判斷決定于域請(qǐng)求的數(shù)據(jù)內(nèi)容,因此在程序中首先判斷楨是否為域請(qǐng)求,如果是,則將楨數(shù)據(jù)賦值對(duì)應(yīng)的變量,這些變量保存的便是域數(shù)據(jù)的判斷信息,而如果根據(jù)標(biāo)識(shí)符判斷出為域數(shù)據(jù),則根據(jù)變量保存的信息進(jìn)行對(duì)應(yīng)的處理。
            
          在域數(shù)據(jù)的處理中,很多情況是要繪出曲線。對(duì)此,我們選擇了DELPHI的Tchart控件。利用其Series屬性里面的Fast-line,將收到的數(shù)據(jù)正確的繪成曲線。

          3 指令和消息的處理
            
          指令和消息的處理類似于域數(shù)據(jù)的處理,也是采用多層復(fù)合選擇語句進(jìn)行判斷,然后做出相應(yīng)的處理,在此,相應(yīng)的處理即將指令,消息的相關(guān)信息填入文本框。
            
          〈5〉軟件流程圖

            
          數(shù)據(jù)處理函數(shù)dataprocess()流程圖

          結(jié) 論
            
          在本項(xiàng)目中,CAN卡PCI-9810的控制器是SJA1000,在收發(fā)數(shù)據(jù)方面它支持正常和只聽兩種模式,在監(jiān)聽器的實(shí)際運(yùn)行中我們選用只聽模式進(jìn)行線路監(jiān)聽,取的了不錯(cuò)的效果,而且在界面的設(shè)計(jì)過程中上我們添加了發(fā)送部分,這是便于進(jìn)行CAN卡的檢測(cè)以及數(shù)據(jù)接收的調(diào)試,此時(shí)需要選擇正常模式。
            
          本文作者的創(chuàng)新點(diǎn):結(jié)合實(shí)際情況的具體需要,合理的選用了Delphi作為軟件開發(fā)平臺(tái),在實(shí)時(shí)性方面,我們選擇了Delphi自身提供的線程類,而不是按照常規(guī)選擇windows提供的API函數(shù),從而使程序的設(shè)計(jì)變的簡潔,另外在數(shù)據(jù)的處理方面,我們不僅采用了通常的數(shù)據(jù)庫方法,而且還根據(jù)實(shí)際需要采用了其他簡易可行的方法。很好地完成了需求。
            
          總之,借鑒前者地經(jīng)驗(yàn)加上實(shí)際地創(chuàng)新我們成功設(shè)計(jì)了實(shí)時(shí)監(jiān)聽器并通過了實(shí)際檢驗(yàn),本項(xiàng)目所設(shè)計(jì)的實(shí)時(shí)監(jiān)聽器在實(shí)用性,實(shí)時(shí)性,準(zhǔn)確性,以及友好性上都是很不錯(cuò)的。


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();