2011.7.20-總結一下近來學習過程中的波折

 

從7月8號發下的培訓規範到現在已經有11天的時間了,目前任務的進度有1/3已經實現了,這期間主要是解決了這麼幾個關鍵的地方:

1.串口數據的讀取存儲

2.數據的解析

3.繪製星空圖

這是任務進行到此的三個關鍵實現的過程。在實現串口數據的讀取時,開始我並不瞭解什麼是串口,串口對應於電腦上的哪些端口,串口發送數據的格式是怎麼樣的,

串口會把數據發送到哪,又該如何進行讀取。現在看來我的理解是這樣的,串口是衆多端口的一種,也是通常GPS與PC連接進行數據交互的方式。

在.NET裏SerialPort類提供了對串口的各種操作的類,如搜索可用的串口,創建串口對象,設置串口的屬性,多種從串口讀取數據的方式。瞭解到了這裏,再結合一個

參考實例,大致就瞭解了一個串口讀取數據的過程是如何實現的了,還有一個重要的地方是,串口數據在傳輸時是二進制的形式(?)在數據緩衝區裏也是二進制的格

式,而用不同的讀方法(readchar、readbyte、readline、readexisiting)而得到的不一樣形式的數據對象(字節、字符、字符串、字符數組(?)),然後在將這個讀

取到的對象存儲到相同類型的數據對象,以供下一步所用。

在讀取到數據之後,就是對數據的分析,瞭解其格式、內容,考慮我們是將之顯示出來,或是直接從中提取出需要用到的數據屬性。這裏涉及到的主要是對字符串的處

處理,將字符串裏的數據內容通過一定的方式提取出來,然後在轉換成所需要的數據類型(string、int、double、datetime、經緯度、角度),字符串處理相信會是一

有意思的部分,對一個字符串,到底會有多少種方法將之變成你所想要的數據呢?大致都是將之分割,匹配提取,轉換格式嗎?再將這些數據按條目的形式存儲到數組

裏,或者是一個自己定義的類對象裏,這裏有一個疑問,爲什麼對象數據,在使用的時候需要確定其大小,並將每個對象進行初始化? 最後得到了想要的數據。

在獲得了想要的數據之後,就是將這些數據使用的時候了,簡單的通過界面控件顯示,一些衛星經緯度數據還可以通過繪製星空圖的方式更形象的顯示,在這個過程中

所遇到的問題是,怎麼樣在我需要的地方繪製我所期望的圖形,我的解決辦法是,通過一個PictureBox控件,在其之上繪製,之後又遇到了一個困擾了我兩天的問題,

picturebox 是通過paint事件進行繪製的,在窗體初始化之後,不知道該怎麼再重新觸發paint事件按我給的方法進行再繪製,我去看了事件與委託的介紹,感覺仍不明白

之後,我寫了一個委託的方法,處理數據的過程中加入判斷,滿足條件時則調用這個繪製方法,這裏遇到了一個大困惑,繪製是通過 Graphics 對象(或許不是對象,

Graphics沒有構造函數)執行繪製方法完成的,但是在我的委託方法裏,沒有picturebox1的Graphics對象,我只看到在paint事件執行的方法裏有個PaintEventArgs類

型的 e ,e 就是那個事件裏繪製動作的執行者,我想e是對應於picturebox1的,而我寫的委託裏雖然也有e,但是卻不是那個e,paint事件裏的e是個參數,我該如何把

它賦給委託方法裏的e呢?始終想不到如何用方法傳遞,最後我在全局範圍聲明瞭一個 Graphics對象g,在paint事件運行時的e.Graphics賦予給g,然後再在之後的

委託方法裏調用g,這在邏輯上應該可以了吧,但是運行的時候卻是不行,提示參數出錯,我想一定是我這樣傳遞對象的方式錯誤,而具體的原因我想是深一層的,期望

得到解答,後來我通過CreatGraphics()方法實現了繪製, Graphics gg = picturebox1.CreatGraphics() ,這樣的gg就是屬於picturebox1的Graphics對象了,這樣我用

gg執行的方法就是在picturebox1上繪製圖形了。

 

其實編程的過程就是將處理事情進行邏輯表達的過程,步驟與方法大致相似,但是不同的語言在表現和實現上各有不同,.NET類的封裝實現了非常非常多的方法,使得

不需要去自己創造一個方法(類與方法封裝了實現的細節),不需要每個人都去造輪子,需要做的是去了解這方法有什麼用怎麼用。(這裏不得不說看MSDN上的類理

解起來真的吃力),還需要將這些方式試着用,才能更瞭解其作用,用多了之後也就對這些方法熟悉了。

再回到開始之初,在遇到問題時,我已經想到了處理的邏輯過程,但是該如何去編程實現呢?該用哪些方法,處理什麼數據,定義什麼對象,實現什麼過程,這些沒有

人告訴你,但是還好知道該從哪裏找,那就去找去試吧,在這過程中一定會有疑惑和犯錯,不知道方法的用處或用錯方法,這都是一個經驗積累的過程,積累的錯誤經

驗和正確經驗越來越多時,就能越快的找到正確的方法去解決問題,同時也對其中的某些方法更熟練而得心應手。

程序員使用不同的語言幫助人們更智能的使用Cumputer,爲成爲一個合格的程序員而努力吧!

 

 

 

 

 

 

發佈了29 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章