999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種油液分析儀器數(shù)據(jù)文件內(nèi)容解析方法*

2021-08-27 00:27:22周建輝常興山劉雅潔
潤滑與密封 2021年8期

吳 煒 周建輝 劉 杰 常興山 劉雅潔

(1.中國艦船研究設(shè)計中心 湖北武漢 430064;2.武漢理工大學(xué)能源與動力工程學(xué)院 湖北武漢 430063)

視情維修在船舶動力系統(tǒng)狀態(tài)維護(hù)保障中的應(yīng)用越來越廣泛,油液分析技術(shù)作為一種獲取狀態(tài)特征數(shù)據(jù)的方法也獲得了越來越多的應(yīng)用[1-3]。隨著分析測試任務(wù)和檢驗項目數(shù)量猛增,需要處理的數(shù)據(jù)量也快速增加。但目前的油液分析設(shè)備基本都是自帶分析處理裝置的,其數(shù)據(jù)存儲后只能在自帶的軟件中打開,導(dǎo)致數(shù)據(jù)集成不方便,降低了工程人員測試的便利性[4-5]。要擺脫對原有儀器設(shè)備軟件的依賴,直接操作對應(yīng)的數(shù)據(jù)文件,就必須了解其文件的相應(yīng)數(shù)據(jù)格式。目前針對油液分析儀器數(shù)據(jù)格式解析的文獻(xiàn)報道還不多見,相關(guān)研究大多集中在虛擬儀器的信號采集[6-7],油液分析的數(shù)據(jù)集成與結(jié)果報告生成等方面[8]。對其他類型的儀器格式解析則有一定報道,如醫(yī)學(xué)類儀器[9-10]、雷達(dá)[11]及遙感類[12]等。對特定的儀器及文件格式的解析也有一定報道,如對LAS格式[13]及PCB ASCII文件格式[14]、礦山激電測深數(shù)據(jù)格式[15]等。但這些研究要么只針對特定文件或特定儀器,要么只針對文件格式的文件頭部分,要么有相應(yīng)的前提條件——如已知所需數(shù)據(jù)在文件中的存儲格式和保存位置,并沒有形成一套具有一定的通用性的分析儀器格式的解析方法或工具,因此有必要針對該問題進(jìn)行研究。

本文作者基于浮點數(shù)與英文字母在儀器數(shù)據(jù)文件中的存儲特征,提出了利用搜索二進(jìn)制數(shù)據(jù)并轉(zhuǎn)換為浮點數(shù),再將轉(zhuǎn)換后的浮點數(shù)與搜索值進(jìn)而確定浮點數(shù)在文件中的位置的方法,并基于API函數(shù)設(shè)計了全自動搜索的輔助工具,為進(jìn)行文件格式解析和信息提取提供了一種新的思路。

1 解決方案

1.1 背景分析

油液分析儀器的數(shù)據(jù)基本上由字符類型的標(biāo)識及浮點數(shù)形式的數(shù)值2種類型組成,且大部分以文件的形式進(jìn)行存儲。在以文件進(jìn)行浮點數(shù)的存儲方面,國際標(biāo)準(zhǔn)組織制訂了一系列的浮點數(shù)存儲相關(guān)標(biāo)準(zhǔn)。自20世紀(jì)80年代以來,IEEE 754標(biāo)準(zhǔn)逐漸成為使用最廣泛的浮點數(shù)運算標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)規(guī)定了4種用二進(jìn)制形式表示浮點數(shù)值的方式:單精確度、雙精確度、延伸單精確度與延伸雙精確度。其中單精確度二進(jìn)制是使用最為廣泛的形式。單精度二進(jìn)制格式中使用4個字節(jié)(32個比特)來進(jìn)行浮點數(shù)的存儲。存儲的具體形式分為3個部分:數(shù)符(sign)、階碼(exponent)和尾數(shù)(fraction)。其中,數(shù)符占1個bit,為32個bit中的最高位,它代表了浮點數(shù)的符號,若數(shù)符為0則表示浮點數(shù)為正數(shù),若數(shù)符為1則代表負(fù)數(shù);階碼占8個bit,規(guī)定為實際指數(shù)值加上一個偏移值,需要作移碼運算;尾數(shù)占23個bit,用于存儲“有效數(shù)字”的小數(shù)部分,使用原碼表示。

雖然知道油液分析中的數(shù)值數(shù)據(jù)部分采用IEEE 754標(biāo)準(zhǔn)保存到文件中,但如果沒有對應(yīng)廠家的技術(shù)支持,是無法知道在文件的具體位置去獲取到需要的值。如果直接打開相應(yīng)的文件,一般完全無法看懂相應(yīng)的含義。為了進(jìn)行示例,選擇油液分析光譜儀中保存數(shù)據(jù)的后綴為.cfg文件,分別用文本文件格式和二進(jìn)制格式打開該文件,其內(nèi)容顯示分別如圖1和圖2所示。

從圖1和圖2可以看出,以文本文件和二進(jìn)制格式打開文件內(nèi)容都無法讀懂其中代表的含義。但二進(jìn)制格式中,英文字符可以直觀顯示,表明英文字符遵循ACSII編碼規(guī)則。要想實現(xiàn)直接從相應(yīng)的文件中讀取需要的分析數(shù)據(jù),就必須明白每個需要的數(shù)值在對應(yīng)文件中的存儲起始地址,然后再從該地址中讀取需要的二進(jìn)制數(shù)據(jù),再按照IEEE 754標(biāo)準(zhǔn)進(jìn)行轉(zhuǎn)換。因此,問題的關(guān)鍵就在于如何找到一個需要讀取的浮點數(shù)在該文件中的起始地址。

圖1 文本格式打開cfg文件Fig 1 Opening cfg file in text format

圖2 二進(jìn)制格式打開cfg文件Fig 2 Opening cfg file in binary format

1.2 解析方法

為了進(jìn)行格式解析方法的分析,選擇在油液分析光譜儀自帶的軟件中打開上述對應(yīng)的.cfg文件,可以在對應(yīng)的界面上顯示出相應(yīng)的值,界面示意如圖3所示。

從圖3可以看出,在界面上顯示的數(shù)字,在對應(yīng)的.cfg文件中一定是存在的,如果能搜索到其值所在的位置,根據(jù)該值所在的文本框及其前面的標(biāo)簽,就可以明確知道其代表的含義;又因為這類文件都是等長度保存的,特定含義的數(shù)值在每個文件中的起始位置都是固定的,相同儀器的數(shù)據(jù)格式只需要研究清楚一個文件,其他文件就都清楚了。這樣就為通過程序自動搜索解析出文件存儲格式提供了可能。為此設(shè)計了如圖4所示的文件格式解析流程圖。

圖3 光譜分析儀器顯示界面Fig 3 Display interface of spectrum analyzer

圖4 文件格式解析流程Fig 4 Flow of file format analysis

在該算法中,將需要分析的數(shù)據(jù)文件在光譜儀器自帶的軟件中打開,通過其界面的顯示提煉出要搜索的特征值。再創(chuàng)建一個輔助程序,在該程序界面上輸入要搜索的特征數(shù)值,并以二進(jìn)制方式打開同一個對應(yīng)的儀器數(shù)據(jù)文件,并從0字節(jié)開始每次取4個字節(jié)根據(jù)IEEE 754標(biāo)準(zhǔn)存儲協(xié)議轉(zhuǎn)換成浮點數(shù),再將轉(zhuǎn)換獲得的數(shù)值與搜索特征值進(jìn)行比對,如果一致則將相應(yīng)的字節(jié)起始位置保存記錄下來。不論轉(zhuǎn)換值是否一致,都取下一組字節(jié)重復(fù)上面的步驟,一直到文件結(jié)束為止。

在上述過程中,即使找到了需要搜索的特征值,仍然需要繼續(xù)掃描搜索文件的后續(xù)部分,主要是因為文件中可能存在該搜索特征浮點數(shù)的重復(fù)值,要將所有可能的位置都搜索出來。但這樣就帶來一個問題,如果搜索后只在一個位置上出現(xiàn)過該特征值,則該搜索值的位置就可以唯一確定了。如果在1個以上位置出現(xiàn),則無法進(jìn)行判斷。為解決這個問題,有2種思路:(1)通過多個文件針對同一個輸入框中的特征值進(jìn)行搜索,查找其出現(xiàn)位置的唯一交集;(2)在儀器自帶的軟件界面上,將要搜索的文本框中的內(nèi)容修改為一個很特殊的數(shù)值,然后保存文件后再調(diào)用上面算法進(jìn)行搜索,直到只在一個位置上出現(xiàn)為止。這2種方法本質(zhì)是一致的,但如果文件本身是可以修改的,則后一種處理更為靈活高效。

1.3 方法改進(jìn)

在1.2節(jié)中設(shè)計的解析方案中,搜索的浮點數(shù)需要人工一一輸入,比較費時費力,而且后續(xù)如果搜索位置不唯一,還需要重復(fù)這個過程,方法并不算最合理。因此利用文獻(xiàn)[5]中提到的API函數(shù)進(jìn)行軟件界面元素獲取的方法,對搜索方法進(jìn)行改進(jìn),以實現(xiàn)自動獲取界面上的搜索特征值及特征值代表的含義,然后傳遞到1.2節(jié)中設(shè)計的輔助搜索程序,實現(xiàn)全自動的搜索。

設(shè)計的自動獲取搜索特征值的算法流程如圖5所示。

圖5 自動獲取搜索值流程Fig 5 Flow of automatically obtaining search value

調(diào)用API函數(shù)獲取對應(yīng)儀器軟件界面窗體的各個控件句柄,判斷所取控件的類型是否為需要處理的類型,若是的話調(diào)用函數(shù)獲得其文本,反之則進(jìn)行下一個控件的判斷,以此方法遍歷窗體所有子控件。值得注意的是,如果只將控件中的具體值作為句柄時,關(guān)閉窗體再打開其句柄可能會發(fā)生變化,所以在取句柄的時候,不僅需要獲得控件的具體值,還需要獲得控件相對于窗體的相對位置坐標(biāo)(x,y)。遍歷所有子控件之后,將結(jié)果寫入一個搜索列表,設(shè)計的表結(jié)構(gòu)如表1所示。

表1 搜索值與坐標(biāo)信息

在獲取表1后,就可以自動組合出搜索信息。將圖4中列出算法的搜索結(jié)果寫入表1,再判斷表1中需要搜索的每一行是否只在搜索文件中的一個位置出現(xiàn)。對搜索結(jié)果中位置數(shù)大于1個的,則通過API函數(shù)自動修改對應(yīng)控件中的值,再自動保存修改后的文件,并重新搜索保存后的文件,直到該對應(yīng)控件的搜索位置結(jié)果也只有一個為止。依次進(jìn)行處理,當(dāng)所有搜索特征值在相應(yīng)文件中都只在一個起始位置出現(xiàn),則文件格式就解析清楚了。

2 實現(xiàn)方法和效果

2.1 字節(jié)組與浮點數(shù)的轉(zhuǎn)換

IEEE 754標(biāo)準(zhǔn)中浮點數(shù)的保存格式為:數(shù)符(1b) 階碼(8b) 尾數(shù)(23b)。數(shù)符部分若為0則代表此數(shù)為正數(shù),若為1則代表此數(shù)為負(fù)數(shù)。將階碼部分的二進(jìn)制轉(zhuǎn)換成十進(jìn)制再減去127,得到的數(shù)如果為正數(shù)則代表其向左移了幾位,反之則代表向右移動了幾位,舉一個例子:階碼為10000010,則E=130,e=E-127=3,即說明其向左移了3位。然后將尾數(shù)部分加上“整數(shù)”部分的1之后得到一個數(shù)1.xxx(尾數(shù)),根據(jù)階碼進(jìn)行小數(shù)點的移位,最后將得到的結(jié)果轉(zhuǎn)換成十進(jìn)制即完成了字節(jié)組到浮點數(shù)的轉(zhuǎn)換。

2.2 API函數(shù)

為了能夠?qū)崿F(xiàn)分析數(shù)據(jù)的自動獲取,需要利用的API函數(shù)如下:

(1)FindWindowEx函數(shù):獲取窗口句柄,該窗口的類名和窗口名與給定的字符串相匹配;

(2)Enumchildwindow函數(shù):將句柄傳遞給每個子窗口并依次傳遞給應(yīng)用程序,可以枚舉一個父窗口的所有子窗口;

(3)GetClassName函數(shù):獲得指定窗口所屬的類的類名;

(4)SendMessage函數(shù):將指定的消息發(fā)送到一個或多個窗口。

2.3 效果

根據(jù)前述算法,開發(fā)了相應(yīng)的輔助格式解析識別工具,該工具主要獲取對應(yīng)值在文件中的起始地址,以光譜儀器的數(shù)據(jù)文件進(jìn)行測試,相應(yīng)的運行結(jié)果如圖6所示。圖中最后一列即為對應(yīng)需要提取的值在文件中的起始位置。通過多份文件的對比,同一屬性字段在多個文件中的起始位置是相同的,因此可以證明該解析方法可行。

圖6 輔助工具的運行效果Fig 6 Operation effect of auxiliary tools

3 結(jié)論

基于浮點數(shù)與英文字母在儀器數(shù)據(jù)文件中的存儲特征,提出了利用搜索二進(jìn)制數(shù)據(jù)并轉(zhuǎn)換為浮點數(shù),再將轉(zhuǎn)換后的浮點數(shù)與搜索值進(jìn)而確定浮點數(shù)在文件中的位置的方法,并基于API函數(shù)設(shè)計了全自動搜索的輔助工具。以油液分析中的光譜儀器數(shù)據(jù)為例進(jìn)行了應(yīng)用驗證。結(jié)果表明,該方法能夠自動獲取出浮點數(shù)類型儀器數(shù)據(jù)的對應(yīng)位置,擺脫了對儀器自帶軟件的依賴,為類似儀器文件的數(shù)據(jù)格式解析提供了一套比較通用的方法,可以用于實現(xiàn)從儀器數(shù)據(jù)文件中自動獲取需要的內(nèi)容以進(jìn)行集中保存的目的。

主站蜘蛛池模板: 欧美国产日韩另类| 欧美亚洲国产精品第一页| 黄色免费在线网址| 欧美色亚洲| 美女被操91视频| 亚洲一级色| 国产精品理论片| 亚洲精品无码成人片在线观看| 国产成人a在线观看视频| 国产网友愉拍精品| 欧美日韩国产精品va| 欧美一区二区三区不卡免费| 国产精品流白浆在线观看| 精品国产成人av免费| 亚洲欧美不卡视频| 香蕉蕉亚亚洲aav综合| 伊人久久大香线蕉综合影视| 久久久久中文字幕精品视频| 国产福利一区视频| 日韩免费毛片视频| 国产小视频a在线观看| 成年午夜精品久久精品| 国产女人在线视频| 亚洲毛片在线看| 亚洲欧美日韩久久精品| 性色一区| 亚洲国产日韩在线观看| 最近最新中文字幕免费的一页| 国产男女免费视频| 欧美区一区二区三| 久久综合亚洲鲁鲁九月天| 欧美五月婷婷| 中文字幕 91| 日本高清免费一本在线观看 | 看国产一级毛片| 欧美日韩免费在线视频| 亚洲一区波多野结衣二区三区| 最新国产高清在线| 91福利免费| 亚洲AⅤ永久无码精品毛片| 精品一区二区三区四区五区| 国产亚洲精品yxsp| 国产精品女主播| 99爱视频精品免视看| 成人午夜久久| 精品在线免费播放| 国产精品爽爽va在线无码观看| 亚洲国产中文在线二区三区免| 国产91精品久久| 国产精品成人第一区| 国产草草影院18成年视频| 在线观看欧美国产| 国产91小视频| 青青操视频免费观看| 国产成人精品在线1区| 无码一区中文字幕| 一级做a爰片久久毛片毛片| 国产91透明丝袜美腿在线| 97久久精品人人做人人爽| 国产精品内射视频| 99在线观看国产| 色网站在线免费观看| 亚洲精品中文字幕无乱码| 亚洲人成人无码www| 欲色天天综合网| 国产另类视频| 国产欧美日韩视频怡春院| 人人91人人澡人人妻人人爽| 毛片免费高清免费| 日韩少妇激情一区二区| 首页亚洲国产丝袜长腿综合| 欧美在线伊人| 久久国产乱子| 99热这里只有免费国产精品| 九九热精品在线视频| 97成人在线视频| 国产视频 第一页| 夜夜高潮夜夜爽国产伦精品| 欧美在线精品一区二区三区| 精品撒尿视频一区二区三区| 久久久精品久久久久三级| 亚洲国产中文在线二区三区免|