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