???? 藍牙程序,對于寫了幾個小程序的段伏櫪來說,其實并不是一個非常難以企及的目標。產品的藍牙是用模塊的方式,通過串口和CPU進行連接的,只需要發送相應的AT指令即可操作。因為通信的管道是串口,而串口基本上是每個CPU必備的,何況在Windows CE里面也有相應的串口驅動,所以這個藍牙也不需要特別的驅動。像這樣的藍牙模塊方式,在操作上是非常簡便的,但缺點也是很明顯,就是聲音的控制無法統一。因為聲音是直接從藍牙模塊發出來的,只要直接接上喇叭即可;看似簡單,就是很難和系統CPU的音源統一。也就是說,當系統的音量調到最小甚至靜音時,很可能藍牙聲音卻是很大的。
???
??? 模塊的另一種連接方式,則不是直接輸出模擬音頻,而是I2S,直接輸入到CPU里面。因為音頻是輸入到CPU,然后CPU又輸出,所以CPU不僅可以控制音量的大小,還能夠給聲音增加特效,比如什么音樂廳啊,Pop之類雜七雜八的。但這樣的問題在于,這聲音還需要相應的驅動,對程序員的要求比較高;不僅如此,也需要CPU有相應的I2S輸入。只不過AU1200沒有I2S接口,倒也省去不少麻煩,否則這驅動絕對是讓段伏櫪掉頭發的。
???
??? 藍牙還有一個指標,就是通話的質量,有無什么雜訊或回音之類,但這些卻不屬于段伏櫪的職責,這是硬件所要注意的。只不過,采用這種完全模塊的方式,其實連這點也不用考慮的:模塊能做到什么水準,就必須要接受。唯一能改善的,就是選擇不同的麥克風,以此對比質量而已。而對于軟件,從總體上來說,并沒有太多的技術難點,對于新手而言,可能就是多線程的配合。比如說,因為來電的時候,模塊就會通過串口來發送信息告訴現在的狀態,而這就必須要有一個線程一直在監控數據。看起來似乎和音頻播放器差不多,但實際上要處理的意外還比較多的。音頻播放器再怎么折騰,也是在同一個系統中;而藍牙,則是和外部的模塊交流。于是,有一些難點就來了:開始撥號,要有一個線程來監控數據,確定什么時候掛機;可如果在開始撥號,并且已經開始監控的時候,藍牙模塊突然接收到了來電,而這時發送的狀態肯定不是預計所想的。那么就必須要重新清空之前的狀態,更改相應的監控準則。類似的狀況,還不止一種,如果互相交雜,那么就疲于應付了,段伏櫪現在就處于這種狀態。因為一開始的架構設計并不是非常好,如果遇到一種異常情況,就加多一個BOOL變量的標志,然后代碼中再來一個esle if來延伸。隨著異常的逐漸發現,標志也越來越多,else if也越來越長,到后來段伏櫪已經覺得這代碼膨脹地已經失控了,根本無法再受自己控制。
???
??? 狀況無法掌控的情形,不僅出現在段伏櫪,沈俊也是如此。在段伏櫪開始寫藍牙程序幾天之后,沈俊就已經從學校回來了。知道來了新硬件工程師,倒不覺得有什么不妥,反而非常高興,因為覺得終于有人可以帶自己了。只不過這高興勁沒持續多久,就被工作任務折磨得疲憊不堪:這個第二版有一個非常嚴重的問題,GPS收星非常差。這個問題在當年浩程微的時候也是如此,并且一直都沒有很好地解決;而現在的狀況比那時候更糟,以前的還能夠偶爾接收到三顆衛星進行定位,現在的這個最多就只能接個兩顆,從來無法定位。
???
??? 黃華中的說法是沈俊沒經驗沒關系,他帶著她來調試這GPS。可吊兒郎當的黃華中,說起話來倒是好聽,但做起事來可真不敢恭維。雖然沒有制度約束,大家都是九點之前來到辦公室,可黃華中能在11點之前來到就是謝天謝地了;而每天等段伏櫪他們下班之后,還要強制拉著沈俊加班,要知道那時候已經差不多11點了啊。對此沈俊也叫苦不迭:為何其它同事都已經下班了,她還要單獨被留下和黃華中一起加班?到底打的是什么主意。所幸什么事情都沒有發生,應該說,黃華中什么正經事都沒有做——他就呆在辦公室純粹玩斗地主了。他唯一所做的事情,就是不停變化主意,讓沈俊弄弄這個,測測那樣。只可惜,這些簡直是瞎指揮,還能有什么好的結果?
???
??? 武總對于這GPS的收星也非常關心,畢竟一個導航儀無法正常接收衛星信號,那算是什么?因此,武總基本上每天晚上都詢問黃華中,而黃華中每次都會信誓旦旦地說:“經過今天的各種調試,現在GPS信號非常好,不到一分鐘就能夠定位。你要知道,為了這個,我搞得頭都疼了。”的確是搞得頭都疼了,不過并不是因為調試這GPS模塊,而是因為斗地主搞的。
???
??? 等到第二天,武總過來查看狀況,發現這收星沒有之前所說那么完美,質問黃華中的時候,黃華中就會非常義正言辭地說:“沈俊,這GSP怎么回事?昨天晚上我一直測試到晚上3點鐘,一直都是好好的。你是不是今天弄了什么?”
???
??? 沈俊上班到現在,都沒碰過黃華中辦公室的那片板子,自然反駁到:“我什么都沒弄啊!”
???
??? 黃華中暴跳如雷,氣憤地說:“怎么可能?你肯定是在上面弄了什么!之前這板子都是好好的!我不管,你負責將這板子給弄好!”
???
??? 弄好?怎么弄啊?這板子之前是好的,鬼才信!調試到3點?估計是玩游戲到3點吧?可人家是老大,能說些什么呢?在武總面前總不能拂老大的面子吧?于是,每逢這時候,沈俊總是強忍委屈,默默含著淚開始毫無頭緒折騰這該死的GPS模塊。
???
??? 這種類似的推卸責任,其實也發生在曹燕身上。只不過曹燕沒有像沈俊那般忍氣吞聲,而是當場反駁,頗有種誓不低頭的氣勢,黃華中見狀,知道無法將責任強加于她身上,便也什么話都沒說了。這么頂撞黃華中,曹燕本以為自己免不了要吃一頓炒魷魚,可沒想到什么事情也沒發生,反而后續黃華中對自己還客客氣氣的。欺軟怕硬,看來是黃華中的本性。雖然曹燕后來告訴沈俊,有一些事情如果并不是自己的責任,必須要硬起來。可沈俊雖然聽進去了,卻不敢付諸于行動,理由很簡單:自己剛畢業,什么都不懂,好不容易有這么個機會,可以長進技術水平,不想因為和老大沖突而導致離開。
???
??? 聽起來,沈俊的想法是有一點道理,但如果再細想,卻并非如此。現在公司是一個什么狀況?人員只有三四個人,一間小小的辦公室也破破落落,沒有社保,沒有任何福利,有幾個有經驗的人士會過來?如果薪水開得很高,也許還能招到一些水平不錯的,可估計武總根本就不會舍得出錢。所能招的,也就是一些毫無經驗,什么都不懂的應屆生。從這個角度來說,也不難理解為何沈俊雖然來得比曹燕早,但卻經常受到黃華中呵斥,而對曹燕卻客客氣氣——因為曹燕是有經驗的,難得騙來一個;沈俊屬于應屆生,滿街一抓一大把。
???
??? 段伏櫪也知道自己在公司的位置舉足輕重:張文香是管采購的,也就會買賣元器件,順便兼任一下日常事務;黃華中、沈俊和曹燕都是做硬件的,對軟件可謂一竅不通;另外一個做軟件的柳,可惜也不思進取,只能憑著以前單片機的經驗做做底層驅動的調試,對于應用程序絕對沒有半點涉獵;因此只剩下段伏櫪一人,頂起了公司應用程序的一邊天。這邊天可不能倒啊,沒有應用程序的公司要怎么繼續生存下去?雖然黃華中做人不靠譜,但這點厲害關系還是看得清清楚楚的,所以對于段伏櫪也是非常客客氣氣。不僅如此,還口口聲聲稱段伏櫪為兄弟,讓人感覺關系非常鐵。
???
??? 所幸段伏櫪不是那種恃寵而驕的人,雖然對此也心知肚明,但還是和以前一樣,恭恭敬敬稱呼黃華中為老大,對于老柳也頗為尊敬。很多初出茅廬的應屆生,當上頭對他有所青睞的時候,往往容易得意忘形,開始看很多同事都不順眼。于是慢慢地,很多同事都看不慣他,慢慢他也就被孤立,甚至還有可能被同事在背后捅刀子,最后導致一發不可收拾的悲慘結果。
???
??? 應屆生的技術水平普遍不咋地,提高自己的技術水平是首要任務,畢竟關系到自己的前途。可在提高技術水平的同時,也不能忘記人際關系的磨練,可偏偏很多應屆生就栽在這里。同事間的關系不像同學,同學關系其實非常單純,沒有任何利益關系;而同事呢,更多的是一種利益,如果這利益互相沒有沖突,那么還好,但如果有沖突的話,因為一個蘿卜也就一個坑,如果那個坑被占滿了,那么其它的蘿卜也種不進去。所以這時候,不是同事踩著自己,就是自己踩著同事,總之爬上去的只有一個人。因此,如何正確處理同事間的關系,便顯得尤為重要。
???
??? 所幸的是,現在利劍公司就只有這么幾個人,所以這些勾心斗角的關系還不存在。因此段伏櫪還能不管這些人際關系,可以心無旁騖地專研技術,這應該也算是不幸中的大幸了。
- 前言
- 《那些年啊,那些事——一個程序員的奮斗史》——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 (終章)