改動兩個字,省跑幾百裏

來源: VCPP 2019-11-26 09:19:28 [] [博客] [舊帖] [給我悄悄話] 本文已被閱讀: 次 (3353 bytes)
本文內容已被 [ VCPP ] 在 2019-11-26 11:01:57 編輯過。如有問題,請報告版主或論壇管理刪除.

上周五,一家大型管道公司的控製中心把我請去,分析一下有個管道測控器無法與之通信的原因。

來到測試室,搜集了一堆通訊數據,我也懵圈了:測控器在遙遠的管道線上,給它發指令,它不回複。偏偏用另一家公司的軟件,它回複就很正常,不用說,顯然是我們自家的軟件出了問題。類似的控製器還有好幾百個,目前隻發現這個出問題,中間有一個類似路由器的部件,它的固件可能有問題,他們已經安排了人,讓他長途開車去現場,把舊的換下來。按計劃前一天就該完成,偏偏那人有事耽擱了。這回把我找來,算是雙管齊下,看看軟件這邊有什麽解決辦法。

折騰整整一個下午,沒有頭緒。

回到家裏,晚上繼續分析,把另外那個軟件發的數據一個字一個字檢查了一遍,跟我們的一對比,總算看出了差異:其實就少了4個字節。這個跟一個用戶輸入設置有關。

第二天周六,又是一行一行看CODE,昏天黑地。最後看明白了:在原先用戶輸入的“2,0”兩個數字前麵,應該加上:1,1,這樣改之後,跟另外那個軟件所發出的指令相比,還是少了最後的兩個字節,不過這已經最接近的了。自己寫了一個測試程序,確認了結果,然後給管道公司的人寫了郵件,請他們試試,看結果如何。

周一早上,終於看到對方發來的郵件:成功了!現在馬上通知那位技術員,不用開長途去換部件了。而且,以後要是碰到類似情況,也可以先試一試這個解決辦法。

我自己這邊的項目主管也發了郵件,隻有寥寥兩行字:“很高興攔路虎終於破解了!沒想到這麽簡單”。簡單?我的個天,說得輕巧!我可花了兩天的功夫,看了一千多行CODE,再加分析,測試。還有那兩百多個字節的通訊數據,原來是照片(他們的機器上不準插U盤,文件無法拷貝),我是用手工,一個一個敲進電腦的,於是才得出那個簡單的“1逗號1逗號”。

 

 


更多我的博客文章>>>

 

 

所有跟帖: 

你就沒有一台邏輯分析儀? -coolwin- 給 coolwin 發送悄悄話 coolwin 的博客首頁 (0 bytes) () 11/26/2019 postreply 16:33:16

有也用不上。已經用Wireshark抓到數據,如果沒有好的數據作對比,也很難找到原因。 -VCPP- 給 VCPP 發送悄悄話 VCPP 的博客首頁 (0 bytes) () 11/29/2019 postreply 07:04:45

請您先登陸,再發跟帖!

發現Adblock插件

如要繼續瀏覽
請支持本站 請務必在本站關閉/移除任何Adblock

關閉Adblock後 請點擊

請參考如何關閉Adblock/Adblock plus

安裝Adblock plus用戶請點擊瀏覽器圖標
選擇“Disable on www.wenxuecity.com”

安裝Adblock用戶請點擊圖標
選擇“don't run on pages on this domain”