?
這樣的項目,從零開始,需要極大的勇氣,是壯士斷腕般的勇氣。
華容冷靜地思考了一下整個“事件”進展和所經歷的“談話”,她認定這個項目的背后,一定有不為自己所知的內幕,尤其是與華萍的一番交涉,加上自己對她的了解,更加確認了這一點:這個項目不簡單。
但是,箭在弦上,不得不發(fā),現在已經顧不上這些了。
“也許項目完工之后,幕后的謎題自然就水落石出了”,華容這樣安慰自己。而接下來事情的發(fā)展,再次證明了自己的推斷。
左手捧起日歷,右手拿起筆,在工作日記上,迅速地寫下項目的時間表:
可確定的日程:
1、確定用戶需求+重新規(guī)劃主菜單及主流程(半天,8.2);
2、調整程序架構(1天,8.3);
3、交工前整機測試(4天,8.17-8.21,周末兩天占用1天);
不確定日程
1、重新設計功能模塊和子函數(待定:8.4-8.16,含兩個周末4天,各占1天);
2、初級測試???
列出了明確的日程后,再無奈地看看手頭的資料,手心已經出汗了,但是沒辦法,只能硬著頭皮執(zhí)行自己的計劃。
首先是明確客戶的需求,對于一個項目來說,所需要的文字材料,正如此時她手里的A4紙一樣單薄。華容按照記錄的信息撥出了煙草局的號碼,同時右手把日記本翻開了新的一頁。
?
電話撥通了,接電話的正是聯(lián)系人—煙草局信息中心的洪主任,簡單寒暄之后,華容直奔主題:確認明確的需求,對方的態(tài)度一下子到了冰點:
“已經談過兩次了,需求不是已經明確了嗎?這時候兒了,還在問這個問題,華工,你們在搞什么?”。
“兩次?”華容遲疑了一下,調整了一下思路,以平和的語氣回答:
“洪主任,我是剛剛加入這個項目組的,與華工同姓,我是華容,負責顯示界面和流程設計的,今天華萍工程師不在公司,她說您是煙草局信息中心的主任,對業(yè)務需求非常熟悉,有助于對我們的項目的完善和優(yōu)化工作,所以推薦我與您聯(lián)系的,我打算請請教幾個問題,大概耽誤您10分鐘,可以嗎?”華容停了一下,伸手不打笑臉人,這是試探,也是談項目的技巧。無論如何,不能夠讓對方感覺到自己對項目一無所知,否則這個事情將無法進行了。
果然,順耳的話都愛聽,華容可以感覺到對方的語氣已經是冰雪消融:“這樣啊,好吧,現在我剛好有時間,一個小時后有個會議,你最好抓緊時間問?!?/p>
有了突破口,接下來的事情就容易多了,華容一邊整理自己的設計思路,一邊確認PDA使用流程,并以最快的速度記錄下來:開機界面的主菜單顯示,二級菜單的進入和顯示的內容,三級菜單與一二級菜單之間的切換,包括待采集信息的字段、條目和存儲的期限等。
也許是消除了隔閡,又或許是問題比較專業(yè),總之,在和諧的氣氛中完成了本次交流,看一下時間,近40分鐘,以“期待下次當面請教”作為結束語,華容適當地結束了談話。
明確了方案,理清了思路,華容開始對程序下手了。
當她打開程序文件,開始閱讀代碼的時候,暗自慶幸自己所作出的決定是正確的,而且是及時的。
主函數程序是由鍵盤掃描和串口接收的查詢組成的循環(huán)。鍵盤掃描是外部中斷方式,與自己的想法一致;串口數據的處理,雖然自己打算用串行中斷,但查詢方式也是很可行的,因此可以暫時不變。
但關于菜單的顯示部分,則可以完全放棄。
?
菜單部分的處理,采用的竟然是字符串的形式:每條菜單條目的定義,都是一個一維數組,即使是不同級的菜單中,相同的條目,也被定義為不同的一維數組。然后在通過函數調用各個數組,組成不同界面的菜單。這種做法,如果用于及少量文字顯示,是無可厚非的,但用于多級菜單處理,既浪費代碼空間,而且調用的時候,也非常不便,因為看起來很相似的字符串名稱,會擾亂視聽,給編程者平添了很多麻煩和隱患。
華容決定用自己最擅長的struct-結構體,這樣做的優(yōu)點是:菜單條目清晰,編程容易,占用CODE空間小,函數調用接口簡單,入口函數只需要菜單的結構體名稱或者菜單定義的虛擬編號,因此,每個界面的顯示,只不過是一個函數的調用,編程時既簡單又靈活。
RFID識讀部分,底層函數編寫得相當不錯,但是數據的讀寫操作方面,函數體邏輯過于復雜,因此也是需要放棄的。改用某塊化的方式,編寫兩個子函數,分別實現read和write一個數據塊,然后再通過調用子函數的方式編寫,代碼看起來簡潔,而且便于調試和分析。
時鐘部分和FLASH的函數處理,是標準的demo代碼,底層函數無需修改,增加幾個子函數即可。
瀏覽完畢所有的源代碼,華容舒了一口氣,底層函數的代碼是沒有問題,那么這個項目已經成功一半了。需要增加的處理主要是三個方面:
1、各級菜單的設計
三級菜單就可以滿足要求,菜單的內容、功能及調用,通過溝通已經確認;
2、射頻卡中巡檢數據的生成
根據對方的需求,每次巡檢數據需要來訪者的工號、到訪的時間和離開的時間,時間計時到分鐘,而且存在過零點計時的問題,因此該記錄可以用HEX格式,壓縮到16個字節(jié),這樣每條記錄只占用一個數據塊。
本項目用的是MIFARE ONE S50,第一個扇區(qū)的兩個數據塊可以用于存儲客戶的信息,其他15個扇區(qū),可以用來存儲45條巡檢記錄,而每個用戶,通常一個月可以被巡檢5-10次左右,這樣可以存儲至少3個月的數據,然后以滾動存儲的方式,保存最新的45條數據,完全可以滿足煙草局的需求。
3、數據的查詢和匯總
將每次的寫入射頻卡巡檢數據和走訪的客戶信息備份到PDA中,這個實現起來更容易,FLASH的空間是足夠的,只要順序寫入就可以;
顯示分類匯總信息時,用遍歷的方法就可以,逐條顯示相關的信息。
上述三個問題,雖然有難度,但對于自己來說,在硬件沒有問題的情況下,是過程和結果是完全可控的,估算了一下大體的日程,雖然有些緊張,但項目是可以完成的,不過周末加班是避免不了的。大局已定,華容打算放松一下,泡一壺新茶,當她起身的時候,才發(fā)現辦公室里空蕩蕩的,只剩下兩個人:燕飛和自己,原來早已經過了下班的時間。
?
“悠著點,下班了”,燕飛說,“看樣子,你是胸有成竹了?”
“哪里有成竹啊,只不過想清楚了方案設計”,華容一邊整理手中的方案,一邊回答,今天她也不想加班,因為有些“用腦過度”了。
“可以看一下嗎?”燕飛伸出細長的手指,指向華容手里的方案。
“當然可以”,把整理好的文字,雙手遞了過去。
燕飛迅速地瀏覽,然后也是雙手歸還,隨口問道:“聊聊你的想法,介意不?”一半是詢問,一半是命令的口氣。
“當然愿意,正打算向您請教呢?!比A容打理好背包,邊向外走邊說。“在時間上和功能方面,項目雖然有難度,但是可以完成的,所以我打算按照自己的想法,重新規(guī)劃主流程和有關菜單的顯示系統(tǒng)。”
“這是什么邏輯?明知道有難度還要重新設計主流程,你沒發(fā)燒吧?”是戲謔的口氣。
“是這樣的,燕總”,華容連忙解釋,“原來的主流程和顯示部分,不適合多級菜單的處理,如果將就一下,也行,但是我擔心這種打補丁的方式會影響整個項目的進度,與其在一個不適合的系統(tǒng)上打補丁,不如重新設計,這樣至少可以保證效率和質量,最重要的是可以滿足這個項目的需求和進度。”
“看看你的手機短信。”
“什么邏輯?”華容沒反應過來,對方的思維太跳躍了,疑惑地扭過頭來,看到的是一張似笑非笑的臉,還是沒懂,于是低頭翻看一下手機的信箱,最新的一條短息是燕飛的,打開信息,只有4個字:“從零開始”。
看來,作為技術總監(jiān),燕飛早已經洞悉項目的內容和當前產品的問題,所以與自己的見解相同。
“打住,別說‘所見略同’之類的套話”,沒等華容開口,燕飛先封住了華容的口,隨之口風一轉,有些幽怨,“如果不是你接下了這個項目,那么承擔這個項目的就是我,重新規(guī)劃方案,也是我的想法。”
與非網原創(chuàng)內容,謝絕轉載!
摘要:沈陽的一場大雪似乎也預示著公司的某些變動,果然在休整后的第二天得到了證實,去掉一個部門,重組一個部門,孤立了一些人,拉攏了一些人,兵還是兵,將還是將...
摘要:部門雖然重新劃分,但辦公室里的格局和人員的位置都沒有變動,好像沒有發(fā)生任何事情。華容原本是個局部變量,從不參與本部門以外的事情,但這次人事變動,她的主管設計師的職位依舊,只不過屬性變成了全局變量...
摘要:華工對自己的項目滿腹疑惑,后來在和燕飛的一場談話中了解到了很多緣由,看似表面風光的銷售業(yè)績只有還有不為人知的秘密...
摘要:經過與燕飛中午的一番談話,華容不敢再對眼前的PDA(手持機)怠慢了,但是只有她自己清楚其中的問題:框圖已經有了,芯片的資料可查,那么詳細的電路原理圖,就不再是問題,可是偏偏無人提供原理圖的電子版,害得她不得不自己動手...
摘要:平心而論,華容覺得自己與華萍之間還談不上“默契”,因為到目前為止,這個詞只屬于當年那個team。是她在轉行之后,加入的第一個開發(fā)團隊—中鼎公司中文版ECR的項目組...
摘要:真正的交接開始了,果然不出華容的意料,華萍想盡辦法隱藏原理圖,讓她感到意外的是華容在兩年前已經開始學習畫板子,而華容也知道她開始寫程序,曾經推心置腹的合作伙伴如今心有芥蒂...
本系列為付麗華老師原創(chuàng)故事《51的江湖》連載,故事中有職場,故事中還有技術,最真實的項目案例與大家一起探討。每周一期,更多內容請查看:
?