標題:
總結(jié)
[打印本頁]
作者:
hutians
時間:
2015-2-10 14:33
標題:
總結(jié)
用了一個星期的時間,現(xiàn)學了另外一種GUI設(shè)計工具,把軟件重寫了一番,使它能夠在Windows上面工作。
繪圖時調(diào)用的是matplotlib,這是一個基于Python的開源項目,旨在為Python提供一個數(shù)據(jù)繪圖包,差不多可以當成MATLAB用。手頭暫時還沒有傳感器,先用Arduino UNO模擬了一下。
寫完進行測試的時候,軟件不僅卡頓,還時不時拋出異常。畢竟幾乎軟件的每個過程都依賴著經(jīng)由串口回傳的數(shù)據(jù),數(shù)據(jù)一出問題,牽扯太多。經(jīng)過一番優(yōu)化,異;疽呀(jīng)處理掉了,卡頓也有了些許改善。盡管可以用于測量,但繪圖的時候還是讓人看得揪心。
大概是當初的設(shè)計思路就有問題。目前的工作過程是這樣:上位機(電腦)下達一個命令,下位機(單片機)就驅(qū)動相應(yīng)的傳感器測量數(shù)據(jù),然后回傳;上位機再下達另一命令,下位機繼續(xù)測量、回傳。十二個都接上的話,一個循環(huán)電腦就要下達12次命令,要等待接收12次數(shù)據(jù)。這樣的話,再加上實時更新圖象、訪問數(shù)據(jù)庫,軟件就比較忙。而且只要下位機回傳一個錯誤數(shù)據(jù),上位機軟件測量進程就會停止。
改進的話大概可以這樣設(shè)計:上位機軟件只下達一次命令,然后下位機逐個驅(qū)動接在上面的傳感器進行測量,一個周期后,一次性回傳數(shù)據(jù)。上位機軟件只需要在線程里面檢測數(shù)據(jù)緩存區(qū)就可以了,負擔大大減輕。這樣設(shè)計的話,容錯的能力也會好很多。甚至還想過下位機直接用Arduino,但是,幾乎就是推倒重來……況且,將數(shù)據(jù)庫中的數(shù)據(jù)保存到excel中的腳本才剛寫好,還沒整合進軟件,加之windows這邊的軟件打包也需要時間去學習,估計我是不會再去弄一遍了。
最開始只有一個傳感器,目的也比較簡單,能讀出數(shù)據(jù)就可以了。也是邊用邊學,所以,目的簡單,過程不簡單。后來有了三個,按照原來的思路,軟件不用負擔太多,繪圖也只是簡簡單單一股腦把所有傳感器的數(shù)據(jù)在一張圖上畫出來,沒有坐標的變化,所以只能從圖上看到一段時間內(nèi)的變化趨勢。再加上設(shè)計硬件,幾乎也就沒考慮過軟件的問題了,F(xiàn)在要接入12個,繪圖也開始單獨處理數(shù)據(jù)了,切換的時候,卡頓現(xiàn)象嚴重。
自主學習新知識的習慣是需要用到才學、邊用邊學。這樣的話會走好多彎路,目的達成后,一反思盡是郁悶。畢竟,更多的時候想做的是一個系統(tǒng),盡管比較小,但也不是僅僅習得一方面的知識能夠完成的。所以,盡管覺得這種習慣或者方法不好,但是囿于時間、精力,甚至是積極性,估計以后還是會保持下去。
貼張圖。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1