|
開始動(dòng)手寫關(guān)于串口的程序,而且是基于對動(dòng)態(tài)鏈接庫調(diào)用并不那么完美的JAVA語言并且沒有可供調(diào)試的硬件的情況下,似乎無從下手。
好在也曾寫過服務(wù)器程序,感覺整套程序的編寫過程和自己研究的過程不該將過多的精力放在串口通信上,那不是上位機(jī)程序的職責(zé)。我所應(yīng)該做的事情應(yīng)該有以下這些:
1.如何最大效率地獲取串口接收到的數(shù)據(jù)。
2.如何不出錯(cuò)地按照約定的通信協(xié)議回復(fù)數(shù)據(jù)。
3.如何在讀取數(shù)據(jù)之后選擇或編寫適當(dāng)?shù)乃惴▽?shù)據(jù)進(jìn)行處理并在得到結(jié)果之后以適當(dāng)?shù)姆绞奖憩F(xiàn)出來。
4.程序的可維護(hù)性、可擴(kuò)展性以及是否健壯。
期中第一點(diǎn)最為次要,對于這種技術(shù)網(wǎng)絡(luò)上有太多的例程,并且java已有相對成熟的api供調(diào)用。只需要?jiǎng)邮謱懸粋(gè)測試程序驗(yàn)證即可。然而在沒有硬件供測試的情況下應(yīng)該如何實(shí)現(xiàn)此問題是我在這點(diǎn)上最該考慮的問題。目前的方案是使用VSPM虛擬串口程序,將以太網(wǎng)映射成虛擬串口,并使用JAVA編寫虛擬串口程序,該程序的內(nèi)容為向本機(jī)IP的某一個(gè)空閑端口a發(fā)送數(shù)據(jù)。之后使用VSPM以啟動(dòng)Server工作狀態(tài),將某個(gè)可使用的串口b與本機(jī)IP的a端口關(guān)聯(lián)。使用串口調(diào)試助手監(jiān)控b端口的數(shù)據(jù)傳輸是否正常,鑒定無誤后該java程序與vspm組成調(diào)試模塊供程序完成之后測試。
第二點(diǎn)和第三點(diǎn)是整個(gè)程序的核心,絕大部分精力應(yīng)用于此處。這部分將取決于手頭上的項(xiàng)目文檔和需求分析的結(jié)果。
第四點(diǎn)是貫穿整個(gè)程序的核心思想,將在二十三個(gè)設(shè)計(jì)模式中根據(jù)實(shí)際需求選擇使用,目標(biāo)為更高的內(nèi)聚,更低的耦合。
|
|