?
上文《奇怪的溢出數(shù)據(jù)“65535”,不可抗拒的EMC》講到,錯誤再現(xiàn),華容陷入深思,分析之后,關(guān)于時鐘亂碼的問題,華容得到了初步的結(jié)論:EMC問題,也就是常說的電磁兼容問題...
那么,協(xié)議方面的問題該如何解決呢?日子就是問題疊著問題,接下來,華容面對的是本次的升級中最關(guān)鍵的環(huán)節(jié)--網(wǎng)絡(luò)協(xié)議下的在線升級功能。
雖然在單機版上實現(xiàn)了在線升級的功能,但是網(wǎng)絡(luò)版的升級關(guān)鍵點在于對網(wǎng)絡(luò)協(xié)議的支持,而網(wǎng)卡是量產(chǎn)的產(chǎn)品,協(xié)議也是成熟的。對于成熟的產(chǎn)品,無論是硬件還是軟件,大家都很忌諱對原有功能的修改,哪怕只是增加一個小小的功能,都必須對整個系統(tǒng)進行重新測評。但對于結(jié)果的評價,卻是眾說紛紜的:
修改成功了,被認為是理所應(yīng)該的,畢竟是站在巨人的肩膀之上,沒有不成功的道理;
一旦修改失敗,那么幾乎是一敗涂地,不但新的功能將無法被正確執(zhí)行,而且可能導(dǎo)致原有功能出現(xiàn)錯誤,最可怕的結(jié)局就是“多米諾”效應(yīng),更何況口水也是可以淹死人的。所以,承接這樣的項目,必須有一顆大心臟,相當(dāng)強大的心臟。
想一想,看一看目前事業(yè)部關(guān)于在線升級功能的處境,那么這個功能的“艱難”程度便可想而知了。
華容暗自思忖,即使有了前期的基礎(chǔ),只不過是增加了繼承完成這個功能的把握,使之實現(xiàn)起來相對容易些,但著手之前,必須對這個項目再次審視和評估,加之自己目前的處境,不亞于徒手走鋼絲,一旦有絲毫的差錯,那么結(jié)局只有粉身碎骨。
想到這里,冷汗直流,拿著筆的手不禁有些發(fā)抖,于是起身,續(xù)水,端著杯子,踱步到窗前。
窗外看起來是陽光明媚,而實際上卻是寒冷無比,自己的處境與戶外的環(huán)境是何其的相似?
一杯熱茶下去,身體暖了,心暖了,手也暖了,回到座位上,再次在工作日記上寫下四個字:舉輕若重。
原來的協(xié)議是不能改變,現(xiàn)在需要增加新的內(nèi)容,而且新的內(nèi)容與原來的功能不屬于同一體系,換句話說,新的功能只是借用了原有通信機制的物理鏈路層和數(shù)據(jù)鏈路層的格式定義,而在數(shù)據(jù)通信方面,需要重新的定義發(fā)送端和接收端數(shù)據(jù)包的內(nèi)容。
?
按常理,增加協(xié)議的字段,原本難度不算大,大可不必如此緊張,但本次的修改不可同日而語:
第一、 客戶端的軟件必須修改,而且改動量盡可能做到最小,確保對整個系統(tǒng)影響降到最低;
第二、 為了保證第一條順利實現(xiàn),補充的協(xié)議內(nèi)容盡量要少,在數(shù)據(jù)通信方面,包括命令的格式、數(shù)據(jù)的類型、數(shù)據(jù)包的大小等,盡量保持與原來的一致;
第三、 網(wǎng)卡是連接PDA和客戶端的中轉(zhuǎn)站,按常理,其設(shè)計思路應(yīng)該為“數(shù)據(jù)傳輸的通道”,即透傳方式,如果這樣,那么無需修改該設(shè)備的程序,反之,必須增加相關(guān)的指令解析,這樣工作量需要重新進行估算,甚至可能會因此而修改本次升級的方案設(shè)計。
第四、 PDA端的程序修改,以目前的掌握情況看,相對容易,涉及的內(nèi)容是代碼移植和命令解析。
綜合考評下來,很可能需要三方面的程序修改,而且要求這三方面協(xié)同一致才能夠保證網(wǎng)絡(luò)版在線升級的正確運行。正如當(dāng)初所料,實現(xiàn)網(wǎng)絡(luò)版的在線升級,是非一己之力可以完成的,因為自己最多只能完成網(wǎng)卡和PDA的程序,客戶端是軟件部的工作,必須與軟件部的工程師協(xié)同合作,那么通信協(xié)議的補充便顯得格外重要了。
為此,華容重新整理了通信協(xié)議的文檔,對照PDA的程序代碼,并對每一個指令和內(nèi)容進行了詳細的注釋,然后,打開新接手的網(wǎng)卡程序,就通信協(xié)議方面,再次核對、校正每一條指令及內(nèi)容的定義。
“smart!”,當(dāng)閱讀完畢網(wǎng)卡程序代碼的時候,華容不禁感嘆,同時原本懸著的一顆心也放松了下來:網(wǎng)卡的通信協(xié)議被設(shè)計為數(shù)據(jù)透傳模式。
這種模式對于增補協(xié)議來說,無疑是最有利的方式。但是仍然需要很小的改動,因為原來的數(shù)據(jù)通信支持兩種數(shù)據(jù)類型,并分別作了嚴格的定義,一種是ASCII字符串格式,一種是HEX格式。
前者用于營業(yè)數(shù)據(jù)的傳輸,這樣做有兩個好處:一方面因為上傳和下載的每個字節(jié)都是可見字符,因此非常便于通信雙方觀察與核對每條數(shù)據(jù)的內(nèi)容,另一方面有利于對非法數(shù)據(jù)的檢測,從而做出相應(yīng)的判斷;
而后者則被用于傳輸顯示中文的點陣的字庫信息,采用HEX格式,無疑是效率最高的一種方式。
通過編譯單片機的執(zhí)行代碼通常是.HEX文件,但也可以直接生成用于下載的.BIN文件,這樣在下載時,可以使用原來的HEX格式的協(xié)議,所做的只不過是增加三個指令。華容料定,網(wǎng)絡(luò)版的在線升級功能,將是她接手煙草局項目以來,關(guān)于研發(fā)方面,進展最順利的一次。
完善的協(xié)議無疑是一顆定心丸,估算了一下當(dāng)前的進展,華容把接下來的任務(wù)賦予了非常具有詩情畫意的名稱:移花接木。
移花接木,顧名思義,借助“移植”的手段完成當(dāng)前的任務(wù)。這里的 “木”是協(xié)議,“花”是待升級的執(zhí)行文件。為了保證任務(wù)的順利進行,需要首先模擬出“木”—用于模擬客戶端的上位機軟件,模擬這個軟件之前必須確認協(xié)議是否正確。
?
次日,華容拿著打印版的材料,出現(xiàn)在測試部,她需要與安心確認一下,自己對協(xié)議的理解是否正確。簡單的寒暄之后,華容遞上準備好的材料。
“安姐,麻煩你確認一下這份協(xié)議是否準確?”,安心比華容年長幾歲。
“什么協(xié)議?”安心邊說邊接過材料。
“這是我剛剛整理的網(wǎng)卡通信協(xié)議,不知道是否準確,所以特地來求證一下?!比A容解釋道。
“網(wǎng)卡的通信協(xié)議?……”,安心看起來是自言自語,手里翻閱著打印的文件,眼睛在快速地瀏覽。
“你剛才說,這是你剛剛整理的,對嗎?”瀏覽完畢,安心抬頭問道。
“是的,有什么問題嗎?”華容以為發(fā)現(xiàn)了什么錯誤,難免有些緊張,忙回答。
“挺好的,沒有問題,只不過…”,安心若有所思。
“只不過什么?”看到安心的反應(yīng),華容難免有些急迫。
“哦,別緊張,我指的是協(xié)議的表達方法和書寫形式,有些不習(xí)慣,這種方法與我們慣用的方法不一樣。”安心補充到,一邊仍舊擺弄這手里的紙張。
“是這樣啊,公司的通用方式是哪一種?我可以參照著修改一下?!比A容小心翼翼地問詢。
“不必了,這種寫法更明確,你運用表格的方法,來描述各個字段的定義和長度,看起來和有些ISO/IEC中數(shù)據(jù)定義的方法有些類似,而我們慣用的手法是純文本描述,分行定義?!卑残囊贿呏钢鴧f(xié)議的字段,一邊解釋,“這種編寫方法,比用純文本描述費事費力,但效果一目了然,你一定花了不少時間吧?”
華容暗自佩服安心的眼力,此類文件的編寫風(fēng)格和手法的確是受到了標準文件的影響?!鞍步?,夠厲害!”說著,向上豎起拇指?!半m然占用了一點兒時間,但是磨刀不誤砍柴工,這種方式的定義,對于編程時的數(shù)據(jù)處理,相對輕松些?!?/p>
“嗯,編程時的確容易些,相應(yīng)的字段和地址實現(xiàn)已經(jīng)在協(xié)議中計算完畢,編程的時候直接賦值就可以了?!卑残谋硎举澩?,順手把文件換給了華容。
華容接過文件,拋出了第二個話題:“安姐,聽說現(xiàn)在你們在調(diào)試一個功能,就是網(wǎng)絡(luò)版的在線升級,進展順利嗎?”
“還行吧,在線升級功能實現(xiàn)了,但現(xiàn)在系統(tǒng)工作還有些不穩(wěn)定。”
“不穩(wěn)定?指的是哪個方面?”
“有些時候,單片機可以進入升級狀態(tài),有些時候無法進入,目前正在解決這個問題?!卑残幕卮?,若有所思,“你怎么關(guān)注這個問題了?”
“哦,是這樣的,煙草局的項目也需要在線升級功能,硬件條件和你們現(xiàn)在情況是相同的,所以前來取經(jīng),聽取關(guān)于在線升級方面的建議和意見?!比A容解釋。
“嗨,哪有什么意見和建議?。俊睂Ψ絿@了一口氣,“我覺得現(xiàn)在的情況陷入了一個僵局,一個不穩(wěn)定的在線升級,還不如人工方式可靠。”
安心面露難色,看起來是真的遇到了麻煩。
“嗯~嗯~”,華容點點頭,表示也有同感,“那么,安姐,你看一下,把這個協(xié)議用于在線升級,在通信方面軟件部那邊可以實現(xiàn)嗎?”
“沒有問題?!卑残幕卮鸬暮芨纱?,“不過效率方面,那要看是誰來做了,你打算找哪位合作?”
“我哪里權(quán)利指定合作的工程師呢?”華容笑著說,“岳總指定的是洪流?!?/p>
“那么更加沒有問題了?!?/p>
與非網(wǎng)原創(chuàng)內(nèi)容,謝絕轉(zhuǎn)載!
內(nèi)容匯總:
摘要:沈陽的一場大雪似乎也預(yù)示著公司的某些變動,果然在休整后的第二天得到了證實,去掉一個部門,重組一個部門,孤立了一些人,拉攏了一些人,兵還是兵,將還是將...
摘要:部門雖然重新劃分,但辦公室里的格局和人員的位置都沒有變動,好像沒有發(fā)生任何事情。華容原本是個局部變量,從不參與本部門以外的事情,但這次人事變動,她的主管設(shè)計師的職位依舊,只不過屬性變成了全局變量...
摘要:華工對自己的項目滿腹疑惑,后來在和燕飛的一場談話中了解到了很多緣由,看似表面風(fēng)光的銷售業(yè)績只有還有不為人知的秘密...
摘要:經(jīng)過與燕飛中午的一番談話,華容不敢再對眼前的PDA(手持機)怠慢了,但是只有她自己清楚其中的問題:框圖已經(jīng)有了,芯片的資料可查,那么詳細的電路原理圖,就不再是問題,可是偏偏無人提供原理圖的電子版,害得她不得不自己動手...
之五:憶當(dāng)年200K代碼聯(lián)調(diào)的默契
摘要:平心而論,華容覺得自己與華萍之間還談不上“默契”,因為到目前為止,這個詞只屬于當(dāng)年那個team。是她在轉(zhuǎn)行之后,加入的第一個開發(fā)團隊—中鼎公司中文版ECR的項目組...
摘要:真正的交接開始了,果然不出華容的意料,華萍想盡辦法隱藏原理圖,讓她感到意外的是華容在兩年前已經(jīng)開始學(xué)習(xí)畫板子,而華容也知道她開始寫程序,曾經(jīng)推心置腹的合作伙伴如今心有芥蒂...
摘要:華容冷靜地思考了一下整個“事件”進展和所經(jīng)歷的“談話”,她認定這個項目的背后,一定有不為自己所知的內(nèi)幕,尤其是與華萍的一番交涉,加上自己對她的了解,更加確認了這一點:這個項目不簡單...
摘 要:華容向家里人“請假”,然后埋頭工作。按照既定的計劃,第9個工作日,進行了網(wǎng)絡(luò)聯(lián)調(diào),包括終端與網(wǎng)卡服務(wù)器以及服務(wù)器與后臺軟件的通信,由于物理層 的協(xié)議沒變,數(shù)據(jù)層的定義和格式也沒有變化,變化的只是填充的內(nèi)容,因此,毫無懸念,網(wǎng)絡(luò)聯(lián)調(diào)順利通過,但是在PDA檢測的時候她卻沒有看到檢測文 檔...
摘要:由于項目工期緊張,華容從制定方案到實施方案,加班加點,甚至向家人請假,最后終于如期測試通過,在驗收的時候她偶爾遇到了以前的合作伙伴林杰森,也是這次偶遇讓她知道了自己的項目工期被壓縮減半...
摘要:煙草局的項目驗收完成以后,華容終于松了一口氣,但是被壓縮工期的陰影始終縈繞心頭,以至于想起來心中難受。某一天華萍的項目組出了一個搞不定的Bug,于是要求華容過去解決...
之十一:設(shè)備出現(xiàn)“幽靈” Bug,華容奔赴現(xiàn)場“救火”
摘要:煙草局的項目忽然出變,原本都測試通過的設(shè)備有好幾臺被退回,華容展開緊張地測試,后來發(fā)現(xiàn)是板子上的一顆芯片型號...
摘要:一天發(fā)布在OA里的一條最新消息,如一石激起千層浪,波及到了公司的各個角落—有史以來,SD公司第一次裁員。這則消息,如同前天的暴風(fēng)雪一樣,來勢兇猛,威力強大...
摘要:岳海上任后開始了第一次裁員風(fēng)暴,楊玉庭本來不在名單了,但是因為年齡偏大而成了這次裁員的犧牲品...
摘要:華容、岳海以及燕飛坐下來討論項目的執(zhí)行策略,由于已經(jīng)提前知道岳海的態(tài)度,華容提出項目進展中的各種問題,最后為項目爭取了時間和資源...
摘要:華容制定了一套嚴謹?shù)难邪l(fā)計劃,而她最擅長的射頻卡的讀寫距離問題。這個問題對于其他人來說,也許高難的,但對于她來說幾乎談不上難度,只不過是一、兩個小時的問題...
摘要:華容準備好測試流程,發(fā)現(xiàn)需要個測試助手,人選哪里來?經(jīng)過與測試部的商議從中抽出一個新來的實習(xí)生林鴻陽幫助華容完成測試,經(jīng)過一天的試用,華容發(fā)現(xiàn)小林出乎意料地滿足自己的需求...
之十七:時鐘亂碼幽靈般光顧了所有設(shè)備,追蹤尋跡趁勢撲捉?
摘 要:經(jīng)過近4晝夜的測試,時鐘的亂碼顯現(xiàn),如“幽靈”一般,光顧了在不同編號的設(shè)備,最少的只有一次,最多的有10次。從結(jié)果上看,與用戶描述的情況基本 一 致:不一定什么時候,不一定是哪一臺設(shè)備,在上傳到后臺的記錄中,就會爆出一條錯誤的記錄數(shù)據(jù)。ISP_Line剛好小試牛刀...
之十八:奇怪的溢出數(shù)據(jù)“65535”,不可抗拒的EMC
摘要:錯誤再現(xiàn),便可以分析其原因了。分析之后,關(guān)于時鐘亂碼的問題,華容得到了初步的結(jié)論:EMC問題,也就是常說的電磁兼容問題...
本系列為付麗華老師原創(chuàng)故事《51的江湖》連載,故事中有職場,故事中還有技術(shù),最真實的項目案例與大家一起探討。每周一期,更多內(nèi)容請查看: