??? 隨著段伏櫪這邊視頻轉換芯片的調好,權盛這邊也開始配合系統的整合了。這個對于段伏櫪而言,并不是什么難事。界面方面,段伏櫪所寫的MiniUtilityFramework已經足以應付;通信方面,則只是通過串口和MCU進行溝通而已。
??? 因為導航板主要是做一些界面的操作,而真正的功能實現也是處于MCU一端。比如要改變音量的大小,那么程序必須要給MCU發送一條指令,然后MCU接收指令后就會去變更功放的音量。這看似結構簡單的方式,卻有一個致命的缺點:在WinCE中,串口只能由單一的進程打開。也就是說,如果在程序A中打開通過CreateFile打開了串口,那么在程序B中以同樣的方式是無法打開的。
??? 這給段伏櫪的程序帶來了不少麻煩。大部分應用程序都有音量調節這項,音量調節必須要通過打開串口發命令,可這些程序在大部分時間都是共存的,無法同時使用串口。這種情形在做車機的時候都會遇到,比較通用的做法是使用一個中控程序,只有它才能打開串口;當中控程序接收到數據之后,再通過事件或消息之類的機制來通知其它的應用程序。
??? 這是最簡單的方式,但缺陷也是挺明顯的。只要數據協議有變動,那么在變動相應的應用程序的時候也要更改中控程序。段伏櫪左想右思,覺得這個方式對于后續的維護來說確實不妥。那怎么辦呢?段伏櫪靈光一現:微軟的串口不是同一時間只能一個進程打開嗎?那我可以做一個虛擬的串口驅動啊!然后通過內部數據的讀取機制來完成多進程讀取啊!
??? 這的確是一個很好的想法。段伏櫪在虛擬串口中建立一個線程,自己不停地讀取數據,然后再將數據保存到緩存中;如果有進程需要數據,那么直接返回緩存中的數據即可。這道理說起來簡單,但在實際開發中還是遇到了不少難題。好在段伏櫪有這個耐心,只要是自己認定的事情,就一定會盡全力去做,除非真的是做不出來。
??? 所幸的是,這一次還算順利,雖然有些波折,段伏櫪終于還是將這虛擬串口給做出來了。放在實際的板子上一跑,感覺還不錯,能夠滿足這款機型的要求。
??? 段伏櫪是一個急于分享技術的人。看到這虛擬串口能夠正常工作以后,趕緊將這過程和思路寫出來,整理完后馬上發表到CSDN博客。因為這虛擬串口是很多做車機都會遇到的,并且也確實有一定的技術含量,段伏櫪不由地幻想著:說不定明天CSDN就會把這文章放到首頁,然后有很多同行紛紛表示稱贊。
??? 理想很豐滿,現實很骨感。不要說什么放在首頁了,就連點擊率也寥寥無幾;本以為是第一天的緣故,可連續過了幾天,那點擊率還是依然那么慘淡。段伏櫪不禁覺得有點垂頭喪氣,覺得大家怎么就那么不識貨呢?
??? 其實段伏櫪完全是自取煩惱。寫技術博客,注定了讀者肯定不會像小說那么眾多。發表的文章,肯定是有一定的技術深度,否則的話就沒必要發出來了,而這便會將相當一部分的初學者排除在外;技術文章一般大多晦澀難懂,如果不是剛好要做這方面,估計很少有人會抱著休閑的心態去閱讀,這又大大少了一部分讀者。幾道減法做下來,真正看完文章的讀者少之又少,而留言的更是稀罕,所以文章反應寥寥便是情理之中了。
??? 酒香不怕巷子深,技術無國界。文章發表了相當長一段時間,段伏櫪收到了一封E-mail。郵件來自于美國的一家比較知名的軟件公司,在信中工程師非常對虛擬串口的文章贊賞有加,因為這文章解決了困擾他許久的技術難點,來信主要是表示感激之情。
??? 美國的工程師也會上CSDN?他們也會看中文?段伏櫪覺得非常驚訝。當段伏櫪在回信中提出了自己的疑問之后,對方回復說自己是華裔,自然能看懂中文。原來如此!段伏櫪不禁感慨網絡的力量。如果在沒有網絡的年代,這文章可能會漂洋過海嗎?估計連家里的大門都出不了吧!
??? 這年頭,最不缺的是不同的聲音。既然有稱贊的,那么也有不屑的。有一個網友論壇求助如何在多個進程中打開同一個串口,自然也有人好心地回復說讓他看看段伏櫪的這篇虛擬串口的文章。可這名網友看完文章之后,連復制代碼去測試一下都不情愿,直接丟下“跟玩具一樣”的結論。
??? 見此言論,段伏櫪自然心有不爽,但靜下心來一想,便也釋懷了。自己曾經還是大菜鳥的時候,不也是這樣嗎?找資料,看到一些內容和自己的理解不同,不也是直接丟下不禮貌的言論嗎?大智若愚,很多難題的解法可能只需要很簡單的方式。但很多人卻覺得,這種難題不可能有這么簡單的做法,連動手嘗試都不愿,直接出言否定。否定是可以,但也不能簡簡單單留下諸如“垃圾”之類的言語啊,好歹也要給出讓人信服的理由吧?可實際上,留下這樣言語的大多是菜鳥居多,他們也僅僅是因為從感覺上覺得這樣的做法不妥;但為什么不妥,他們也說不上個所以然來。
??? 菜鳥和老鳥的差別,不僅在技術上,也在于心態。菜鳥容易激動,習慣從主觀上考慮問題,最喜歡現成的答案;而老鳥呢,則比較淡定,喜歡樂觀地從不同角度分析問題,即使答案擺在眼前也要動手驗證。正是由于這截然不同的品質,有了完全不同的行為模式。如果在回復中,僅僅是一些辱人的言論,那么這人基本是菜鳥無疑;如果在否定之后,還有一大堆理由用以支持論點,這人十有八九是老鳥。
??? 因為菜鳥和老鳥都是同時存在的,所以技術文章想獲得一片叫好聲是不可能的,其中必然有很多相反的聲音。因此寫技術博客,心態非常重要。很多技術不錯的人,寫了不少很好的文章,可評論沒有達到他預期,便心灰意冷,從此不再分享自己的心得,這只能說是個莫大的遺憾。
??? 用博客來分享技術,這是網絡滲透到生活的最好一個實例。但網絡一開始并非有如此大的影響力。如果時間倒退十年前,在那個還在使用56K貓的時代,上網能干嘛呢?無非就是瀏覽一下新聞,在論壇上發發帖子,最多還聊一下QQ。那時候估計不少人會想,上網也干不了什么嘛,沒有網絡似乎也沒差。
??? 可現在呢?如果一臺電腦沒有聯接到網絡,那完全像是身處于孤島之中,無法成事。編碼的時候有疑問,需要上網查詢吧?想要知道銀行賬目清單,更喜歡在網上銀行吧?就算買東西,想淘點便宜貨,在網上也更容易吧?技術文章,除了有依托于網絡這平臺以外還有其它可能嗎?
??? 也正是依托于這個網絡,段伏櫪認識了很多志同道合的朋友。比如之前一直有聯系的Mercury,最近才接上頭的gooogleman,還有telechips原廠工程師曾哥等等。正是有這些未曾謀面的朋友,段伏櫪在技術這條路上走得才沒那么孤單。
??? 不過相對于技術道路的孤單而言,在生活中段伏櫪如果再沒明確行動,估計就真的要孤單了。
??? 劉思敏在QQ上直接問道:“你要不要追徐雅思?”
??? 在劉思敏這人精面前,矯情是沒用的。段伏櫪干脆大方承認:“想啊!”
??? 劉思敏也直接:“既然想,那你干嘛還沒有行動?你打算什么時候才表白啊?”
??? 直覺敏銳的段伏櫪覺得似乎事情有所不對勁,疑惑地問道:“怎么了?”
??? 劉思敏毫不隱瞞:“我告訴你吧,過年回去的時候,雅思家里安排了相親,他們兩人現在在網上聊得歡呢!你要還是這么遲鈍,你就沒得玩啦!”
??? 徐雅思過年的時候相親了?這話對于段伏櫪來說無疑是晴天霹靂。段伏櫪也不作掩飾,急忙問道:“他們現在發展到什么地步了?我還有機會嗎?”
??? “應該是剛剛發展吧,我也不清楚……反正如果你再不出手,你就絕對沒機會了!對了,今晚我要和同事一起出去玩,可能會很晚回來。至于你要怎么做,不用我教了吧?”
??? 教啥?讓美女來教泡妞啊?太丟臉了吧?看了劉思敏的文字以后,段伏櫪一整天坐立不安,心神不寧。如果真如劉思敏所說,那真的是火燒眉毛了。段伏櫪對徐雅思還是挺有好感的,也不是沒想過表白。但一想到萬一表白被拒,可能連現在的朋友關系都不能維持,卻又不由自主地打了退堂鼓。可這次不同了,再不有所行動的話,意中人就要成為別人的新娘啦!不拼沒機會,拼了還有一絲生機;既然如此,為何不賭一把?
??? 一下班,段伏櫪趕緊收拾包包,直奔公交站。表白?要怎么表白呢?段伏櫪這個愛情白癡,只善于寫寫代碼,追女孩這還是人生第一遭。要不,買支玫瑰花?可人倒霉喝水也塞牙縫,偏偏今天的花店生意好,玫瑰花沒了!要不買點菜花?好歹也帶個“花”字啊!但估計真要這么干,這輩子就做好打光棍的準備吧!算了,空手套白狼吧!
??? 晚上和徐雅思一起在大廳看電視,段伏櫪好幾次都鼓足勇氣要表白,可一迎上對方的目光,一下子就泄了氣。來往幾次,徐雅思也覺得有點不太對勁了:“你今晚怎么了?”
??? 靠!編程這高科技玩意自己都能征服,難道還真怕了這表白?豁出去了!段伏櫪漲紅了臉,說到:“雅思,做我女朋友吧!”
??? “啊?”徐雅思愣了一下,也不知道有沒有聽清段伏櫪的話。
??? 段伏櫪也豁出去了,不管徐雅思答不答應,腦袋一伸:強吻!
??? 徐雅思開始條件反射般往后躲了下,但很快就不再逃避。就這么一個細微的反應,段伏櫪知道:這事成了!
??? 一陣熱吻,許久才分開。徐雅思此時已是滿臉通紅,害羞地問道:“今晚你怎么突然變得那么大膽了?”
??? 死豬從來不怕開水燙,段伏櫪得意地說道:“如果我再不勇敢點,你不就要跟相親對象跑了?”
??? 徐雅思一臉疑惑:“相親對象?什么相親對象?”
??? 段伏櫪也愣了,說道:“劉思敏說的呀!她說你過年回去相親了!”
??? 徐雅思哭笑不得:“沒有啊,她又瞎說了……”
??? “瞎說?啊……”段伏櫪此時覺得有點頭暈……
??? 劉思敏玩到半夜才回,剛一開門,段伏櫪就堵上去:“你不是說雅思過年回去相親了嗎?她說沒這回事啊!”
??? 劉思敏一愣,隨即咯咯大笑:“哈哈……你還真信啊?哦?是不是表白了?嗯,看這樣子是成功了哦~”
??? 劉思敏繞過段伏櫪,在徐雅思旁邊坐下:“怎么樣?我都說他是個算盤珠子吧,不撥不會動的。我看你們這樣,你們不急我都急了!怎么樣,是不是要感謝我這個媒人啊?要不然這層窗戶紙還不知道什么時候被捅破呢!”
??? 徐雅思沒說話,漲紅了臉,施于劉思敏一頓粉拳。呆在一旁的段伏櫪無語了,感情這是劉思敏設下的一個套讓自己鉆吶!但這套鉆得值啊!這么一鉆,結束單身了吶!
??? 嘻鬧中,劉思敏繼續戲謔徐雅思:“既然你已經同意了,那么我想問一下,你今晚睡哪邊?”
??? “啊?”徐雅思一愣,隨即明白過來,急忙說道:“肯定還是睡我自己的床啦!”
??? 劉思敏聽了之后,很嚴肅地看了看段伏櫪,一本正經地說道:“嗯,我覺得也是。小段肯定沒有準備好工作服,這個還是要安全點好……”
??? 工作服?呃,工作服!徐雅思也回味過來劉思敏的意思,繼續施于粉拳:“我不是這個意思啦!……”
??? 這一晚,段伏櫪睡覺都在笑。單身的狀態終于結束了!徐雅思成了自己的女朋友!這感覺,怎么像是在做夢吶?
?
??? PS:因為明天要出游,所以今晚就趕著將手機沒寫完的部分給弄出來,可能有不少錯字,還請大家多包涵咯~呵呵
- 前言
- 《那些年啊,那些事——一個程序員的奮斗史》——01
- 《那些年啊,那些事——一個程序員的奮斗史》——02
- 《那些年啊,那些事——一個程序員的奮斗史》——03
- 《那些年啊,那些事——一個程序員的奮斗史》——04
- 《那些年啊,那些事——一個程序員的奮斗史》——05
- 《那些年啊,那些事——一個程序員的奮斗史》——06
- 《那些年啊,那些事——一個程序員的奮斗史》——07
- 《那些年啊,那些事——一個程序員的奮斗史》——08
- 《那些年啊,那些事——一個程序員的奮斗史》——09
- 《那些年啊,那些事——一個程序員的奮斗史》——10
- 《那些年啊,那些事——一個程序員的奮斗史》——11
- 《那些年啊,那些事——一個程序員的奮斗史》——12
- 《那些年啊,那些事——一個程序員的奮斗史》——13
- 《那些年啊,那些事——一個程序員的奮斗史》——14
- 《那些年啊,那些事——一個程序員的奮斗史》——15
- 《那些年啊,那些事——一個程序員的奮斗史》——16
- 《那些年啊,那些事——一個程序員的奮斗史》——17
- 《那些年啊,那些事——一個程序員的奮斗史》——18
- 《那些年啊,那些事——一個程序員的奮斗史》——19
- 《那些年啊,那些事——一個程序員的奮斗史》——20
- 《那些年啊,那些事——一個程序員的奮斗史》——21
- 《那些年啊,那些事——一個程序員的奮斗史》——22
- 《那些年啊,那些事——一個程序員的奮斗史》——23
- 《那些年啊,那些事——一個程序員的奮斗史》——24
- 《那些年啊,那些事——一個程序員的奮斗史》——25
- 《那些年啊,那些事——一個程序員的奮斗史》——26
- 《那些年啊,那些事——一個程序員的奮斗史》——27
- 《那些年啊,那些事——一個程序員的奮斗史》——28
- 《那些年啊,那些事——一個程序員的奮斗史》——29
- 《那些年啊,那些事——一個程序員的奮斗史》——30
- 《那些年啊,那些事——一個程序員的奮斗史》——31
- 《那些年啊,那些事——一個程序員的奮斗史》——32
- 《那些年啊,那些事——一個程序員的奮斗史》——33
- 《那些年啊,那些事——一個程序員的奮斗史》——34
- 《那些年啊,那些事——一個程序員的奮斗史》——35
- 《那些年啊,那些事——一個程序員的奮斗史》——36
- 《那些年啊,那些事——一個程序員的奮斗史》——37
- 《那些年啊,那些事——一個程序員的奮斗史》——38
- 《那些年啊,那些事——一個程序員的奮斗史》——39
- 《那些年啊,那些事——一個程序員的奮斗史》——40
- 《那些年啊,那些事——一個程序員的奮斗史》——41
- 《那些年啊,那些事——一個程序員的奮斗史》——42
- 《那些年啊,那些事——一個程序員的奮斗史》——43
- 《那些年啊,那些事——一個程序員的奮斗史》——44
- 《那些年啊,那些事——一個程序員的奮斗史》——45
- 《那些年啊,那些事——一個程序員的奮斗史》——46
- 《那些年啊,那些事——一個程序員的奮斗史》——47
- 《那些年啊,那些事——一個程序員的奮斗史》——48
- 《那些年啊,那些事——一個程序員的奮斗史》——49
- 《那些年啊,那些事——一個程序員的奮斗史》——50
- 《那些年啊,那些事——一個程序員的奮斗史》——51
- 《那些年啊,那些事——一個程序員的奮斗史》——52
- 《那些年啊,那些事——一個程序員的奮斗史》——53
- 《那些年啊,那些事——一個程序員的奮斗史》——54
- 《那些年啊,那些事——一個程序員的奮斗史》——55
- 《那些年啊,那些事——一個程序員的奮斗史》——56
- 《那些年啊,那些事——一個程序員的奮斗史》——57
- 《那些年啊,那些事——一個程序員的奮斗史》——58
- 《那些年啊,那些事——一個程序員的奮斗史》——59
- 《那些年啊,那些事——一個程序員的奮斗史》——60
- 《那些年啊,那些事——一個程序員的奮斗史》——61
- 《那些年啊,那些事——一個程序員的奮斗史》——62
- 《那些年啊,那些事——一個程序員的奮斗史》——63
- 《那些年啊,那些事——一個程序員的奮斗史》——64
- 《那些年啊,那些事——一個程序員的奮斗史》——65
- 《那些年啊,那些事——一個程序員的奮斗史》——66
- 《那些年啊,那些事——一個程序員的奮斗史》——67
- 《那些年啊,那些事——一個程序員的奮斗史》——68
- 《那些年啊,那些事——一個程序員的奮斗史》——69
- 《那些年啊,那些事——一個程序員的奮斗史》——70
- 《那些年啊,那些事——一個程序員的奮斗史》——71
- 《那些年啊,那些事——一個程序員的奮斗史》——72
- 《那些年啊,那些事——一個程序員的奮斗史》——73
- 《那些年啊,那些事——一個程序員的奮斗史》——74
- 《那些年啊,那些事——一個程序員的奮斗史》——75
- 《那些年啊,那些事——一個程序員的奮斗史》——76
- 《那些年啊,那些事——一個程序員的奮斗史》——77
- 《那些年啊,那些事——一個程序員的奮斗史》——78
- 《那些年啊,那些事——一個程序員的奮斗史》——79
- 《那些年啊,那些事——一個程序員的奮斗史》——80
- 《那些年啊,那些事——一個程序員的奮斗史》——81
- 《那些年啊,那些事——一個程序員的奮斗史》——82
- 《那些年啊,那些事——一個程序員的奮斗史》——83
- 《那些年啊,那些事——一個程序員的奮斗史》——84
- 《那些年啊,那些事——一個程序員的奮斗史》——85
- 《那些年啊,那些事——一個程序員的奮斗史》——86
- 《那些年啊,那些事——一個程序員的奮斗史》——87
- 《那些年啊,那些事——一個程序員的奮斗史》——88
- 《那些年啊,那些事——一個程序員的奮斗史》——89
- 《那些年啊,那些事——一個程序員的奮斗史》——90
- 《那些年啊,那些事——一個程序員的奮斗史》——91
- 《那些年啊,那些事——一個程序員的奮斗史》——92
- 《那些年啊,那些事——一個程序員的奮斗史》——93
- 《那些年啊,那些事——一個程序員的奮斗史》——94
- 《那些年啊,那些事——一個程序員的奮斗史》——95
- 《那些年啊,那些事——一個程序員的奮斗史》——96
- 《那些年啊,那些事——一個程序員的奮斗史》——97
- 《那些年啊,那些事——一個程序員的奮斗史》——98
- 《那些年啊,那些事——一個程序員的奮斗史》——99
- 《那些年啊,那些事——一個程序員的奮斗史》——100
- 《那些年啊,那些事——一個程序員的奮斗史》——101
- 《那些年啊,那些事——一個程序員的奮斗史》——102
- 《那些年啊,那些事——一個程序員的奮斗史》——103
- 《那些年啊,那些事——一個程序員的奮斗史》——104
- 《那些年啊,那些事——一個程序員的奮斗史》——105
- 《那些年啊,那些事——一個程序員的奮斗史》——106
- 《那些年啊,那些事——一個程序員的奮斗史》——107
- 《那些年啊,那些事——一個程序員的奮斗史》——108
- 《那些年啊,那些事——一個程序員的奮斗史》——109
- 《那些年啊,那些事——一個程序員的奮斗史》——110
- 《那些年啊,那些事——一個程序員的奮斗史》——111
- 《那些年啊,那些事——一個程序員的奮斗史》——112
- 《那些年啊,那些事——一個程序員的奮斗史》——113
- 《那些年啊,那些事——一個程序員的奮斗史》——114
- 《那些年啊,那些事——一個程序員的奮斗史》——115
- 《那些年啊,那些事——一個程序員的奮斗史》——116
- 《那些年啊,那些事——一個程序員的奮斗史》——117
- 《那些年啊,那些事——一個程序員的奮斗史》——118
- 《那些年啊,那些事——一個程序員的奮斗史》——119
- 《那些年啊,那些事——一個程序員的奮斗史》——120
- 《那些年啊,那些事——一個程序員的奮斗史》——121
- 《那些年啊,那些事——一個程序員的奮斗史》——122
- 《那些年啊,那些事——一個程序員的奮斗史》——123
- 《那些年啊,那些事——一個程序員的奮斗史》——124
- 《那些年啊,那些事——一個程序員的奮斗史》——125
- 《那些年啊,那些事——一個程序員的奮斗史》——126
- 《那些年啊,那些事——一個程序員的奮斗史》——127
- 《那些年啊,那些事——一個程序員的奮斗史》——128 (終章)