加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

51的江湖 | 箭在弦上,該發(fā)就發(fā)

2015/05/21
4
閱讀需 13 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

?

這樣的項(xiàng)目,從零開(kāi)始,需要極大的勇氣,是壯士斷腕般的勇氣。


華容冷靜地思考了一下整個(gè)“事件”進(jìn)展和所經(jīng)歷的“談話”,她認(rèn)定這個(gè)項(xiàng)目的背后,一定有不為自己所知的內(nèi)幕,尤其是與華萍的一番交涉,加上自己對(duì)她的了解,更加確認(rèn)了這一點(diǎn):這個(gè)項(xiàng)目不簡(jiǎn)單。


但是,箭在弦上,不得不發(fā),現(xiàn)在已經(jīng)顧不上這些了。


“也許項(xiàng)目完工之后,幕后的謎題自然就水落石出了”,華容這樣安慰自己。而接下來(lái)事情的發(fā)展,再次證明了自己的推斷。


左手捧起日歷,右手拿起筆,在工作日記上,迅速地寫(xiě)下項(xiàng)目的時(shí)間表:
可確定的日程:
1、確定用戶需求+重新規(guī)劃主菜單及主流程(半天,8.2);
2、調(diào)整程序架構(gòu)(1天,8.3);
3、交工前整機(jī)測(cè)試(4天,8.17-8.21,周末兩天占用1天);
不確定日程
1、重新設(shè)計(jì)功能模塊和子函數(shù)(待定:8.4-8.16,含兩個(gè)周末4天,各占1天);
2、初級(jí)測(cè)試???


列出了明確的日程后,再無(wú)奈地看看手頭的資料,手心已經(jīng)出汗了,但是沒(méi)辦法,只能硬著頭皮執(zhí)行自己的計(jì)劃。


首先是明確客戶的需求,對(duì)于一個(gè)項(xiàng)目來(lái)說(shuō),所需要的文字材料,正如此時(shí)她手里的A4紙一樣單薄。華容按照記錄的信息撥出了煙草局的號(hào)碼,同時(shí)右手把日記本翻開(kāi)了新的一頁(yè)。

?


電話撥通了,接電話的正是聯(lián)系人—煙草局信息中心的洪主任,簡(jiǎn)單寒暄之后,華容直奔主題:確認(rèn)明確的需求,對(duì)方的態(tài)度一下子到了冰點(diǎn):
“已經(jīng)談過(guò)兩次了,需求不是已經(jīng)明確了嗎?這時(shí)候兒了,還在問(wèn)這個(gè)問(wèn)題,華工,你們?cè)诟闶裁矗俊薄?/p>


“兩次?”華容遲疑了一下,調(diào)整了一下思路,以平和的語(yǔ)氣回答:
“洪主任,我是剛剛加入這個(gè)項(xiàng)目組的,與華工同姓,我是華容,負(fù)責(zé)顯示界面和流程設(shè)計(jì)的,今天華萍工程師不在公司,她說(shuō)您是煙草局信息中心的主任,對(duì)業(yè)務(wù)需求非常熟悉,有助于對(duì)我們的項(xiàng)目的完善和優(yōu)化工作,所以推薦我與您聯(lián)系的,我打算請(qǐng)請(qǐng)教幾個(gè)問(wèn)題,大概耽誤您10分鐘,可以嗎?”華容停了一下,伸手不打笑臉人,這是試探,也是談項(xiàng)目的技巧。無(wú)論如何,不能夠讓對(duì)方感覺(jué)到自己對(duì)項(xiàng)目一無(wú)所知,否則這個(gè)事情將無(wú)法進(jìn)行了。


果然,順耳的話都愛(ài)聽(tīng),華容可以感覺(jué)到對(duì)方的語(yǔ)氣已經(jīng)是冰雪消融:“這樣啊,好吧,現(xiàn)在我剛好有時(shí)間,一個(gè)小時(shí)后有個(gè)會(huì)議,你最好抓緊時(shí)間問(wèn)?!?/p>


有了突破口,接下來(lái)的事情就容易多了,華容一邊整理自己的設(shè)計(jì)思路,一邊確認(rèn)PDA使用流程,并以最快的速度記錄下來(lái):開(kāi)機(jī)界面的主菜單顯示,二級(jí)菜單的進(jìn)入和顯示的內(nèi)容,三級(jí)菜單與一二級(jí)菜單之間的切換,包括待采集信息的字段、條目和存儲(chǔ)的期限等。


也許是消除了隔閡,又或許是問(wèn)題比較專業(yè),總之,在和諧的氣氛中完成了本次交流,看一下時(shí)間,近40分鐘,以“期待下次當(dāng)面請(qǐng)教”作為結(jié)束語(yǔ),華容適當(dāng)?shù)亟Y(jié)束了談話。


明確了方案,理清了思路,華容開(kāi)始對(duì)程序下手了。


當(dāng)她打開(kāi)程序文件,開(kāi)始閱讀代碼的時(shí)候,暗自慶幸自己所作出的決定是正確的,而且是及時(shí)的。


主函數(shù)程序是由鍵盤(pán)掃描和串口接收的查詢組成的循環(huán)。鍵盤(pán)掃描是外部中斷方式,與自己的想法一致;串口數(shù)據(jù)的處理,雖然自己打算用串行中斷,但查詢方式也是很可行的,因此可以暫時(shí)不變。


但關(guān)于菜單的顯示部分,則可以完全放棄。

?


菜單部分的處理,采用的竟然是字符串的形式:每條菜單條目的定義,都是一個(gè)一維數(shù)組,即使是不同級(jí)的菜單中,相同的條目,也被定義為不同的一維數(shù)組。然后在通過(guò)函數(shù)調(diào)用各個(gè)數(shù)組,組成不同界面的菜單。這種做法,如果用于及少量文字顯示,是無(wú)可厚非的,但用于多級(jí)菜單處理,既浪費(fèi)代碼空間,而且調(diào)用的時(shí)候,也非常不便,因?yàn)榭雌饋?lái)很相似的字符串名稱,會(huì)擾亂視聽(tīng),給編程者平添了很多麻煩和隱患。


華容決定用自己最擅長(zhǎng)的struct-結(jié)構(gòu)體,這樣做的優(yōu)點(diǎn)是:菜單條目清晰,編程容易,占用CODE空間小,函數(shù)調(diào)用接口簡(jiǎn)單,入口函數(shù)只需要菜單的結(jié)構(gòu)體名稱或者菜單定義的虛擬編號(hào),因此,每個(gè)界面的顯示,只不過(guò)是一個(gè)函數(shù)的調(diào)用,編程時(shí)既簡(jiǎn)單又靈活。


RFID識(shí)讀部分,底層函數(shù)編寫(xiě)得相當(dāng)不錯(cuò),但是數(shù)據(jù)的讀寫(xiě)操作方面,函數(shù)體邏輯過(guò)于復(fù)雜,因此也是需要放棄的。改用某塊化的方式,編寫(xiě)兩個(gè)子函數(shù),分別實(shí)現(xiàn)read和write一個(gè)數(shù)據(jù)塊,然后再通過(guò)調(diào)用子函數(shù)的方式編寫(xiě),代碼看起來(lái)簡(jiǎn)潔,而且便于調(diào)試和分析。


時(shí)鐘部分和FLASH的函數(shù)處理,是標(biāo)準(zhǔn)的demo代碼,底層函數(shù)無(wú)需修改,增加幾個(gè)子函數(shù)即可。


瀏覽完畢所有的源代碼,華容舒了一口氣,底層函數(shù)的代碼是沒(méi)有問(wèn)題,那么這個(gè)項(xiàng)目已經(jīng)成功一半了。需要增加的處理主要是三個(gè)方面:


1、各級(jí)菜單的設(shè)計(jì)
三級(jí)菜單就可以滿足要求,菜單的內(nèi)容、功能及調(diào)用,通過(guò)溝通已經(jīng)確認(rèn);
2、射頻卡中巡檢數(shù)據(jù)的生成
根據(jù)對(duì)方的需求,每次巡檢數(shù)據(jù)需要來(lái)訪者的工號(hào)、到訪的時(shí)間和離開(kāi)的時(shí)間,時(shí)間計(jì)時(shí)到分鐘,而且存在過(guò)零點(diǎn)計(jì)時(shí)的問(wèn)題,因此該記錄可以用HEX格式,壓縮到16個(gè)字節(jié),這樣每條記錄只占用一個(gè)數(shù)據(jù)塊。
本項(xiàng)目用的是MIFARE ONE S50,第一個(gè)扇區(qū)的兩個(gè)數(shù)據(jù)塊可以用于存儲(chǔ)客戶的信息,其他15個(gè)扇區(qū),可以用來(lái)存儲(chǔ)45條巡檢記錄,而每個(gè)用戶,通常一個(gè)月可以被巡檢5-10次左右,這樣可以存儲(chǔ)至少3個(gè)月的數(shù)據(jù),然后以滾動(dòng)存儲(chǔ)的方式,保存最新的45條數(shù)據(jù),完全可以滿足煙草局的需求。
3、數(shù)據(jù)的查詢和匯總
將每次的寫(xiě)入射頻卡巡檢數(shù)據(jù)和走訪的客戶信息備份到PDA中,這個(gè)實(shí)現(xiàn)起來(lái)更容易,F(xiàn)LASH的空間是足夠的,只要順序?qū)懭刖涂梢裕?br /> 顯示分類匯總信息時(shí),用遍歷的方法就可以,逐條顯示相關(guān)的信息。

上述三個(gè)問(wèn)題,雖然有難度,但對(duì)于自己來(lái)說(shuō),在硬件沒(méi)有問(wèn)題的情況下,是過(guò)程和結(jié)果是完全可控的,估算了一下大體的日程,雖然有些緊張,但項(xiàng)目是可以完成的,不過(guò)周末加班是避免不了的。大局已定,華容打算放松一下,泡一壺新茶,當(dāng)她起身的時(shí)候,才發(fā)現(xiàn)辦公室里空蕩蕩的,只剩下兩個(gè)人:燕飛和自己,原來(lái)早已經(jīng)過(guò)了下班的時(shí)間。

?


“悠著點(diǎn),下班了”,燕飛說(shuō),“看樣子,你是胸有成竹了?”


“哪里有成竹啊,只不過(guò)想清楚了方案設(shè)計(jì)”,華容一邊整理手中的方案,一邊回答,今天她也不想加班,因?yàn)橛行坝媚X過(guò)度”了。


“可以看一下嗎?”燕飛伸出細(xì)長(zhǎng)的手指,指向華容手里的方案。


“當(dāng)然可以”,把整理好的文字,雙手遞了過(guò)去。


燕飛迅速地瀏覽,然后也是雙手歸還,隨口問(wèn)道:“聊聊你的想法,介意不?”一半是詢問(wèn),一半是命令的口氣。


“當(dāng)然愿意,正打算向您請(qǐng)教呢?!比A容打理好背包,邊向外走邊說(shuō)?!霸跁r(shí)間上和功能方面,項(xiàng)目雖然有難度,但是可以完成的,所以我打算按照自己的想法,重新規(guī)劃主流程和有關(guān)菜單的顯示系統(tǒng)。”


“這是什么邏輯?明知道有難度還要重新設(shè)計(jì)主流程,你沒(méi)發(fā)燒吧?”是戲謔的口氣。


“是這樣的,燕總”,華容連忙解釋,“原來(lái)的主流程和顯示部分,不適合多級(jí)菜單的處理,如果將就一下,也行,但是我擔(dān)心這種打補(bǔ)丁的方式會(huì)影響整個(gè)項(xiàng)目的進(jìn)度,與其在一個(gè)不適合的系統(tǒng)上打補(bǔ)丁,不如重新設(shè)計(jì),這樣至少可以保證效率和質(zhì)量,最重要的是可以滿足這個(gè)項(xiàng)目的需求和進(jìn)度?!?/p>


“看看你的手機(jī)短信?!?/p>


“什么邏輯?”華容沒(méi)反應(yīng)過(guò)來(lái),對(duì)方的思維太跳躍了,疑惑地扭過(guò)頭來(lái),看到的是一張似笑非笑的臉,還是沒(méi)懂,于是低頭翻看一下手機(jī)的信箱,最新的一條短息是燕飛的,打開(kāi)信息,只有4個(gè)字:“從零開(kāi)始”。


看來(lái),作為技術(shù)總監(jiān),燕飛早已經(jīng)洞悉項(xiàng)目的內(nèi)容和當(dāng)前產(chǎn)品的問(wèn)題,所以與自己的見(jiàn)解相同。


“打住,別說(shuō)‘所見(jiàn)略同’之類的套話”,沒(méi)等華容開(kāi)口,燕飛先封住了華容的口,隨之口風(fēng)一轉(zhuǎn),有些幽怨,“如果不是你接下了這個(gè)項(xiàng)目,那么承擔(dān)這個(gè)項(xiàng)目的就是我,重新規(guī)劃方案,也是我的想法?!?/p>

與非網(wǎng)原創(chuàng)內(nèi)容,謝絕轉(zhuǎn)載!

之一:部門(mén)重組,誰(shuí)會(huì)出局?

摘要:沈陽(yáng)的一場(chǎng)大雪似乎也預(yù)示著公司的某些變動(dòng),果然在休整后的第二天得到了證實(shí),去掉一個(gè)部門(mén),重組一個(gè)部門(mén),孤立了一些人,拉攏了一些人,兵還是兵,將還是將...

之二:燙手的山芋,華工的困惑

摘要:部門(mén)雖然重新劃分,但辦公室里的格局和人員的位置都沒(méi)有變動(dòng),好像沒(méi)有發(fā)生任何事情。華容原本是個(gè)局部變量,從不參與本部門(mén)以外的事情,但這次人事變動(dòng),她的主管設(shè)計(jì)師的職位依舊,只不過(guò)屬性變成了全局變量...

之三:被隱藏的Bug

摘要:華工對(duì)自己的項(xiàng)目滿腹疑惑,后來(lái)在和燕飛的一場(chǎng)談話中了解到了很多緣由,看似表面風(fēng)光的銷售業(yè)績(jī)只有還有不為人知的秘密...

之三:要根據(jù)PCB設(shè)計(jì)程序,被算計(jì)了!

摘要:經(jīng)過(guò)與燕飛中午的一番談話,華容不敢再對(duì)眼前的PDA(手持機(jī))怠慢了,但是只有她自己清楚其中的問(wèn)題:框圖已經(jīng)有了,芯片的資料可查,那么詳細(xì)的電路原理圖,就不再是問(wèn)題,可是偏偏無(wú)人提供原理圖的電子版,害得她不得不自己動(dòng)手...

之四:憶當(dāng)年200K代碼聯(lián)調(diào)的默契

摘要:平心而論,華容覺(jué)得自己與華萍之間還談不上“默契”,因?yàn)榈侥壳盀橹?,這個(gè)詞只屬于當(dāng)年那個(gè)team。是她在轉(zhuǎn)行之后,加入的第一個(gè)開(kāi)發(fā)團(tuán)隊(duì)—中鼎公司中文版ECR的項(xiàng)目組...

之五:軟件和硬件,如今要彼此刮目相看

摘要:真正的交接開(kāi)始了,果然不出華容的意料,華萍想盡辦法隱藏原理圖,讓她感到意外的是華容在兩年前已經(jīng)開(kāi)始學(xué)習(xí)畫(huà)板子,而華容也知道她開(kāi)始寫(xiě)程序,曾經(jīng)推心置腹的合作伙伴如今心有芥蒂...

本系列為付麗華老師原創(chuàng)故事《51的江湖》連載,故事中有職場(chǎng),故事中還有技術(shù),最真實(shí)的項(xiàng)目案例與大家一起探討。每周一期,更多內(nèi)容請(qǐng)查看:

《51的江湖》:以小說(shuō)體的形式講解技術(shù)


?

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

1996畢業(yè)于華東理工大學(xué)自控系,同年7月進(jìn)入某大型國(guó)企擔(dān)任電氣員。2000年轉(zhuǎn)行從事硬件研發(fā)相關(guān)工作;后從事RFID相關(guān)產(chǎn)品的研發(fā)、設(shè)計(jì),曾參與中國(guó)自動(dòng)識(shí)別協(xié)會(huì)RFID行業(yè)標(biāo)準(zhǔn)的起草;歷任硬件工程師、主管設(shè)計(jì)師、項(xiàng)目經(jīng)理、部門(mén)經(jīng)理;2012年至今,就職于沈陽(yáng)工學(xué)院,擔(dān)任電子信息工程專業(yè)教師,研究方向:自動(dòng)識(shí)別技術(shù)。已經(jīng)出版教材《自動(dòng)識(shí)別技術(shù)概論》,職場(chǎng)故事《51的蛻變 》。