基于嵌入式linux實(shí)現(xiàn)終端維護(hù)和信息發(fā)布的方法
【專利摘要】本發(fā)明涉及一種基于嵌入式linux實(shí)現(xiàn)終端維護(hù)和信息發(fā)布的方法。本發(fā)明采用通用網(wǎng)關(guān)接口CGI機(jī)制實(shí)現(xiàn)嵌入式web服務(wù)器與用電信息采集終端系統(tǒng)各功能模塊的信息交互;客戶只需要在本地計(jì)算機(jī)中安裝web瀏覽器,就可以訪問用電信息采集終端服務(wù)程序,實(shí)現(xiàn)用電信息采集終端維護(hù)和信息發(fā)布。用戶可以不受時空限制,通過Internet利用WEB瀏覽器完成對遠(yuǎn)端用電信息采集終端的訪問、監(jiān)控和維護(hù)等操作,無需安裝特定軟件,具有跨平臺特性;無需到現(xiàn)場進(jìn)行操作,用電信息采集終端的維護(hù)工作更加便捷、實(shí)時、高效和安全。
【專利說明】
基于嵌入式I inux實(shí)現(xiàn)終端維護(hù)和信息發(fā)布的方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及智能電網(wǎng)用電信息采集系統(tǒng)領(lǐng)域,具體設(shè)及一種基于嵌入式linux實(shí) 現(xiàn)終端維護(hù)和信息發(fā)布的方法。
【背景技術(shù)】
[0002] 隨著Internet技術(shù)的不斷發(fā)展,在嵌入式設(shè)備的管理和交互中,基于嵌入式web月良 務(wù)器的開發(fā)和應(yīng)用成為主流。一般采用ΒΛ結(jié)構(gòu),即在嵌入式設(shè)備上運(yùn)行一個web服務(wù)器,該 服務(wù)器需要支持腳本或CGI功能,采用運(yùn)種結(jié)構(gòu)實(shí)現(xiàn)動態(tài)頁面的生成。用戶只需要在客戶端 通過web瀏覽器就可W方便快捷地實(shí)現(xiàn)對嵌入式設(shè)備的管理、監(jiān)控和維護(hù)。
[0003] 用電信息采集終端是對各信息采集點(diǎn)用電信息采集的設(shè)備,可W實(shí)現(xiàn)電能表數(shù)據(jù) 的采集、數(shù)據(jù)管理、數(shù)據(jù)雙向傳輸W及轉(zhuǎn)發(fā)或執(zhí)行控制命令的設(shè)備。用電信息采集終端按應(yīng) 用場所分為專變采集終端、集中抄表終端(包括集中器、采集器)、分布式能源監(jiān)控終端等類 型。
[0004] 用電信息采集終端在長期運(yùn)行過程中,因運(yùn)行環(huán)境的復(fù)雜性、多樣性,多變性及產(chǎn) 品使用壽命和開發(fā)人員思維邏輯的局限性等因素,針對產(chǎn)品的例行維護(hù)尤為重要。用電信 息采集終端在開發(fā)過程中,也需要對開發(fā)過程中遇到的問題進(jìn)行分析并準(zhǔn)確有效定位問題 所在,目前針對用電信息采集終端的維護(hù)及問題排查方法有W下幾種:
[0005] 1、通過log信息和運(yùn)行日志記錄終端運(yùn)行狀況。用電信息采集終端增加 log信息或 運(yùn)行日志記錄功能,用電信息采集終端在運(yùn)行過程中,可W將其與其他設(shè)備的交互報(bào)文或 自身運(yùn)行日志記錄在特定的文件中,當(dāng)現(xiàn)場終端需要維護(hù),則使用FTP、S甜等第Ξ方工具將 報(bào)文或日志導(dǎo)出至本地,通過對報(bào)文或運(yùn)行日志進(jìn)行分析確定問題所在;2、通過系統(tǒng)控制 臺對采集終端進(jìn)行維護(hù)??蒞通過系統(tǒng)控制臺執(zhí)行各種Linux指令,實(shí)現(xiàn)系統(tǒng)管理、進(jìn)程管 理,查看系統(tǒng)信息、堆找信息,創(chuàng)建、復(fù)制、移動、編輯、刪除文件或目錄等相關(guān)功能,W此來 達(dá)到對采集終端Linux系統(tǒng)的維護(hù)功能;
[0006] 3、采用現(xiàn)場維護(hù)設(shè)備對采集終端進(jìn)行維護(hù)?,F(xiàn)場可W采用掌機(jī)對采集終端進(jìn)行參 數(shù)查詢和設(shè)置,也可W對采集終端進(jìn)行應(yīng)用程序升級,若結(jié)合抄控器可W實(shí)現(xiàn)采集終端載 波抄表方面問題的排查,可W監(jiān)聽采集終端通過電力線載波與下轄采集器或載波表的交互 報(bào)文;
[0007] 4、采用專用維護(hù)軟件對采集終端進(jìn)行維護(hù)??紤]到采集終端維護(hù)的必要性,一般 各采集終端生產(chǎn)廠家都開發(fā)有相應(yīng)的維護(hù)軟件,可W實(shí)現(xiàn)對采集終端的參數(shù)設(shè)置、參數(shù)查 詢、遠(yuǎn)程控制、應(yīng)用程序升級、終端復(fù)位、查詢數(shù)據(jù)、轉(zhuǎn)發(fā)抄表等相關(guān)功能;
[000引5、采用液晶界面對采集終端進(jìn)行維護(hù)。雖然國網(wǎng)公司對液晶屏化CD)的顯示內(nèi)容、 版式、排列位置等都有相應(yīng)規(guī)定,但是可W通過對液晶界面進(jìn)行擴(kuò)展,在擴(kuò)展液晶界面中實(shí) 現(xiàn)對采集終端的維護(hù)功能,還可W實(shí)現(xiàn)對采集終端與各設(shè)備交互報(bào)文的實(shí)時顯示;
[0009] 6、采用主站系統(tǒng)對采集終端進(jìn)行維護(hù)。主站系統(tǒng)功能強(qiáng)大,能夠記錄主站與用電 信息采集終端的交互報(bào)文,可W進(jìn)行參數(shù)設(shè)置、查詢等操作,可W查詢終端內(nèi)部存儲的歷史 數(shù)據(jù),在一定程度上可w實(shí)現(xiàn)對采集終端的維護(hù)功能。
[0010] 但是目前存在的上述幾種維護(hù)方法存在如下幾方面缺陷:
[0011] 1、交互報(bào)文或日志記錄功能需要采集終端實(shí)時向存儲設(shè)備中寫入終端與其他設(shè) 備的交互報(bào)文或系統(tǒng)運(yùn)行日志,造成對存儲設(shè)備的操作過于頻繁,會嚴(yán)重影響存儲設(shè)備的 使用壽命,極易造成文件系統(tǒng)所在的flash設(shè)備產(chǎn)生壞塊;
[0012] 2、采用SSH、FTP、超級終端或?qū)S镁S護(hù)軟件等Ξ方軟件對采集終端進(jìn)行維護(hù),大部 分需要安裝,一般客戶考慮到系統(tǒng)運(yùn)行穩(wěn)定性和安全性因素,禁止在主站側(cè)安裝類似軟件, 如需使用,則必須攜帶安裝有相應(yīng)軟件的筆記本、網(wǎng)線等設(shè)備到現(xiàn)場進(jìn)行操作,很多采集終 端安裝位置比較偏遠(yuǎn),甚至安裝在位置較高的配電箱內(nèi),現(xiàn)場維護(hù)操作難度很大,采集終端 頻臨高壓設(shè)備,操作不當(dāng)會影響人身安全;
[0013] 3、實(shí)時性得不到保證。交互報(bào)文或運(yùn)行日志在記錄過程中,為防止記錄文件過大, 需要對文件進(jìn)行周期性裁剪,或限制報(bào)文文件的大小,如果采集終端報(bào)文不及時導(dǎo)出到本 地進(jìn)行分析,或許會影響報(bào)文的時效性和完整性;
[0014] 4、目前存在的上述幾種維護(hù)方法都無法從硬件層面實(shí)現(xiàn)對采集終端系統(tǒng)的維護(hù), 不具備查詢硬件寄存器和配置硬件寄存器的功能,也沒有對底層硬件驅(qū)動程序的檢查維護(hù) 功能;
[0015] 5、單純通過上述任何一種維護(hù)方法都無法實(shí)現(xiàn)對Linux系統(tǒng)、應(yīng)用程序、文件系 統(tǒng)、底層驅(qū)動的全面維護(hù),需要結(jié)合上述多種維護(hù)方法并在不同軟件之間切換來實(shí)現(xiàn)采集 終端維護(hù),操作復(fù)雜,而且還受軟件運(yùn)行平臺限制,正因軟件需要安裝,因此,相關(guān)維護(hù)操作 必須去現(xiàn)場執(zhí)行;
[0016] 6、采用掌機(jī)和抄控器對現(xiàn)場終端進(jìn)行維護(hù),需要相關(guān)廠家開發(fā)對應(yīng)的掌機(jī)軟件程 序,抄控器直接接觸電力線也會影響設(shè)備和人身安全,現(xiàn)場維護(hù)增加了維護(hù)成本;
[0017] 7、采用SSH、FTP等軟件對采集終端文件系統(tǒng)進(jìn)行操作,極易修改某些文件的文件 名及文件內(nèi)容,造成重要文件的數(shù)據(jù)失效,影響系統(tǒng)運(yùn)行的穩(wěn)定性,易造成客戶糾紛事件發(fā) 生。
【發(fā)明內(nèi)容】
[0018] 針對上述問題,本發(fā)明提供一種可W打破現(xiàn)有維護(hù)方式的局限性,增強(qiáng)用電信息 采集終端在維護(hù)過程中的安全性、實(shí)時性和靈活性的基于嵌入式linux實(shí)現(xiàn)終端維護(hù)和信 息發(fā)布的方法。
[0019] 為解決上述問題,本發(fā)明采取的技術(shù)方案為:基于嵌入式linux實(shí)現(xiàn)終端維護(hù)和信 息發(fā)布的方法,包括如下步驟:
[0020] 步驟一、提供CGI支持的嵌入式web服務(wù)器的移植
[0021 ]首先從官方網(wǎng)站上下載嵌入式web服務(wù)器源碼,根據(jù)目標(biāo)板選擇合適的編譯器進(jìn) 行源碼編譯,將編譯好的目標(biāo)文件和配置文件拷貝到目標(biāo)板相應(yīng)目錄下并將嵌入式web月良 務(wù)器進(jìn)程設(shè)置成采集終端開機(jī)自啟動;
[0022]目前使用比較流行的嵌入式web服務(wù)器有thttpd、boa、go ahead等,運(yùn)幾款嵌入式 web服務(wù)器都可W方便地移植到Linux系統(tǒng)中并對CGI提供了很好的支持,本設(shè)計(jì)之所選擇 CGI,是因?yàn)镃GI性能和兼容性都比較好,可W支持多種語言開發(fā),移植性比較好,本維護(hù)系 統(tǒng)針對并發(fā)需求也并不苛刻,CGI完全可W滿足設(shè)計(jì)需求。
[0023] 步驟二、登錄認(rèn)證界面html表單的設(shè)計(jì)
[0024] 登錄認(rèn)證界面用于驗(yàn)證訪問嵌入式web服務(wù)器的用戶的使用權(quán)限,也具備修改用 戶名和密碼的功能;當(dāng)需要對用戶輸入的用戶名和密碼進(jìn)行驗(yàn)證或?qū)⒂脩舾牡挠脩裘?密碼傳送給web服務(wù)器時建立TCP連接并將信息傳給web服務(wù)器端的CGI進(jìn)程進(jìn)行處理;
[0025] 在登錄認(rèn)證界面表單中嵌入化vaScript腳本,當(dāng)用戶輸入信息不全時給出提示信 息,當(dāng)用戶存在更改用戶名、密碼需求的時候動態(tài)顯示用戶名、密碼修改界面(包括輸入原 用戶名、原密碼、新用戶名、確認(rèn)新用戶名、新密碼、確認(rèn)新密碼等輸入框并具備確定、取消、 登錄等提交按鈕),只有當(dāng)需要對用戶輸入的用戶名和密碼進(jìn)行驗(yàn)證或?qū)⒂脩舾牡挠脩?名和密碼傳送給服務(wù)器時才建立TCP連接并將信息傳給服務(wù)器端的CGI進(jìn)程進(jìn)行處理,登錄 認(rèn)證界面html表單設(shè)計(jì)完成后W.html格式文件存儲在目標(biāo)板web服務(wù)器配置文件指定的 目錄下。
[0026] 步驟Ξ、功能部件選擇界面html表單的設(shè)計(jì)
[0027] 功能部件選擇界面提供各維護(hù)功能的入口,包括Linux系統(tǒng)維護(hù)、應(yīng)用進(jìn)程維護(hù)、 文件系統(tǒng)交互、底層驅(qū)動交互、調(diào)試接口,功能部件選擇界面設(shè)計(jì)完成之后W.html格式文 件存儲在目標(biāo)板web服務(wù)器配置文件指定的目錄下;
[00%]步驟四、客戶端表單與CGI進(jìn)程接口擴(kuò)展協(xié)議設(shè)計(jì)
[0029] 設(shè)計(jì)客戶端表單各功能提交按鈕與CGI進(jìn)程之間的接口擴(kuò)展協(xié)議,采用表單變量 FCCV區(qū)分W下功能大類:登錄信息驗(yàn)證、Linux系統(tǒng)維護(hù)、應(yīng)用進(jìn)程維護(hù)、文件系統(tǒng)交互、底 層驅(qū)動交互、調(diào)試接口;每個功能大類下轄各子功能采用應(yīng)用層功能碼AFN進(jìn)行區(qū)分;
[0030] 用戶在客戶端瀏覽器中點(diǎn)擊某個提交按鈕,瀏覽器可W將表單數(shù)據(jù)提交給服務(wù) 器,服務(wù)器通過標(biāo)準(zhǔn)輸出口傳遞給CGI進(jìn)程進(jìn)行處理,鑒于客戶端提交的服務(wù)類別比較多, 需要設(shè)計(jì)html表單各功能提交按鈕與CGI進(jìn)程之間的接口擴(kuò)展協(xié)議。
[0031] 步驟五、通用網(wǎng)關(guān)接口 CGI程序設(shè)計(jì)
[0032] 通用網(wǎng)關(guān)接口 CGI程序主要實(shí)現(xiàn)的功能有:用戶登錄信息處理、響應(yīng)客戶端請求對 Linux系統(tǒng)進(jìn)行維護(hù)、響應(yīng)客戶端請求對應(yīng)用進(jìn)程進(jìn)行維護(hù)、響應(yīng)客戶端請求與文件系統(tǒng)進(jìn) 行交互、響應(yīng)客戶端請求對底層硬件驅(qū)動進(jìn)行交互、提供調(diào)試接口實(shí)現(xiàn)對應(yīng)用進(jìn)程中單線 程的調(diào)試等功能。根據(jù)模塊化設(shè)計(jì)思想及可擴(kuò)展性需求,每個CGI功能采用不同功能模塊來 實(shí)現(xiàn):首先從環(huán)境變量RE卵EST_METH0D中獲取客戶端表單數(shù)據(jù)提交方式,如果為GET方式, 則從環(huán)境變量卵ERY_STRING中獲取客戶端提交數(shù)據(jù),如果為POST方式,則從標(biāo)準(zhǔn)輸入口獲 取客戶端提交數(shù)據(jù)。然后按照U化編解碼規(guī)則,對收到的客戶端表單數(shù)據(jù)進(jìn)行解碼處理,從 解析出的表單數(shù)據(jù)中根據(jù)表單變量FCCV不同的值進(jìn)入W下不同的功能模塊程序進(jìn)行處理: 登錄信息驗(yàn)證模塊、Linux系統(tǒng)維護(hù)模塊、應(yīng)用進(jìn)程維護(hù)模塊、文件系統(tǒng)交互模塊、底層驅(qū)動 交互模塊、調(diào)試接口模塊。
[0033] 本發(fā)明采用活動文檔技術(shù)對客戶輸入的相關(guān)信息進(jìn)行預(yù)判;采用通用網(wǎng)關(guān)接口 CGI機(jī)制實(shí)現(xiàn)嵌入式web服務(wù)器與用電信息采集終端系統(tǒng)各功能模塊的信息交互;針對應(yīng) 用,客戶只需要在本地計(jì)算機(jī)中安裝web瀏覽器,就可W訪問用電信息采集終端服務(wù)程序, 實(shí)現(xiàn)用電信息采集終端維護(hù)和信息發(fā)布。
[0034] 登錄信息驗(yàn)證模塊的處理包括如下步驟:a.檢查/etc目錄下是否存在passwdnet 文件,如果不存在,則新建passwdnet文件,并對默認(rèn)用戶名和密碼(均為admin)進(jìn)行加密處 理之后寫入passwdnet文件中;
[0035] b.登錄信息驗(yàn)證模塊根據(jù)應(yīng)用層功能碼AFN分為兩個子功能:用戶登錄信息驗(yàn)證 和用戶登錄信息修改;若為用戶登錄信息驗(yàn)證則執(zhí)行步驟C,若為用戶登錄信息修改則執(zhí)行 步驟d;
[0036] C.打開/etc目錄下passwdnet文件,從文件中讀取加密處理的用戶名和密碼,對客 戶端發(fā)送的用戶名和密碼進(jìn)行加密處理,若二者一致,則登錄信息驗(yàn)證成功,則將功能部件 選擇界面html表單文件提交客戶端;若二者不一致,則返回用戶驗(yàn)證失敗信息,并將登錄認(rèn) 證界面html表單文件提交客戶端;
[0037] d.打開/etc目錄下passwdnet文件,從文件中讀取加密處理的用戶名和密碼,對客 戶端發(fā)送的原用戶名和密碼進(jìn)行加密處理,若二者一致,則將新用戶名和密碼進(jìn)行加密處 理之后寫入passwdnet文件,并將登錄認(rèn)證界面html表單文件提交客戶端,用戶名和密碼修 改成功;若二者不一致,則返回原用戶名或密碼錯誤信息,并將登錄認(rèn)證界面html表單文件 提交客戶端。
[0038] Linux系統(tǒng)維護(hù)模塊的處理包括如下步驟:
[0039] a.從解碼之后的表單數(shù)據(jù)中獲取將要執(zhí)行的Linux指令,調(diào)用系統(tǒng)函數(shù)popen完成 Linux指令的執(zhí)行。popen函數(shù)一方面創(chuàng)建子進(jìn)程執(zhí)行shell命令完成Linux指令的執(zhí)行,另 一方面還創(chuàng)建了 CGI進(jìn)程與子進(jìn)程之間的管道;
[0040] b.對于查詢類Linux指令,CGI進(jìn)程通過創(chuàng)建的其與子進(jìn)程之間的管道獲取子進(jìn)程 返回的數(shù)據(jù),對返回?cái)?shù)據(jù)按照CGI編碼規(guī)范和html格式處理后通過標(biāo)準(zhǔn)輸出返回給客戶端;
[0041] C.對于執(zhí)行類Linux指令,調(diào)用popen函數(shù)之后,首先判斷popen函數(shù)返回值,若返 回NU化,則說明指令執(zhí)行失敗,通過標(biāo)準(zhǔn)輸出口將指令執(zhí)行失敗信息返回給客戶端,如果返 回值不為N化L,則查詢指令執(zhí)行結(jié)果,若符合要求,則說明指令執(zhí)行成功,將指令執(zhí)行成功 提示信息通過標(biāo)準(zhǔn)輸出口返回給客戶端,若連續(xù)查詢3次仍然不符合要求,則說明指令執(zhí)行 失敗,將指令執(zhí)行失敗提示信息通過標(biāo)準(zhǔn)輸出口返回給客戶端。
[0042] 應(yīng)用進(jìn)程維護(hù)模塊的處理包括如下步驟:
[0043] a、應(yīng)用進(jìn)程維護(hù)模塊根據(jù)應(yīng)用層功能碼AFN不同執(zhí)行不同的子功能模塊:對采集 終端的參數(shù)查詢、參數(shù)設(shè)置、遠(yuǎn)程控制、終端復(fù)位、軟件升級、數(shù)據(jù)查詢、手動組帖;
[0044] b、從解碼之后的表單數(shù)據(jù)中獲取應(yīng)用層功能碼AFN、信息點(diǎn)化、信息類化及數(shù)據(jù)單 元數(shù)據(jù),按照國網(wǎng)公司規(guī)約規(guī)定的主站與終端之間的通信協(xié)議進(jìn)行組帖處理;
[0045] c、CGI進(jìn)程通過進(jìn)程間通信方式將數(shù)據(jù)帖發(fā)送給應(yīng)用進(jìn)程進(jìn)行處理;
[0046] d、CGI進(jìn)程接收應(yīng)用進(jìn)程返回的回應(yīng)帖,若超時未收到應(yīng)用進(jìn)程的回應(yīng)帖,則返回 錯誤;
[0047] e、解析接收到的數(shù)據(jù)帖,根據(jù)本次執(zhí)行的子功能模塊的應(yīng)用層功能碼AFN,確定需 要重建的表單內(nèi)容,在重建表單內(nèi)容過程中將解析的數(shù)據(jù)加載到相應(yīng)的表單中返回給客戶 端瀏覽器。文件系統(tǒng)交互模塊的處理包括如下步驟:
[0048] a、文件交互模塊根據(jù)應(yīng)用層功能碼AFN不同執(zhí)行不同的子功能:log文件下載、應(yīng) 用程序文件更新、CGI程序文件更新、驅(qū)動程序更新、自定義文件下載、自定義文件上傳,但 是整體來講主要包括兩部分:文件的上傳和下載,若為文件上傳,則轉(zhuǎn)步驟b,若為文件下 載,則轉(zhuǎn)步驟C;
[0049] b、首先從解碼之后的表單數(shù)據(jù)中獲取本次的特征碼和上傳文件的目錄和文件名, 判定特征碼的結(jié)束和文件數(shù)據(jù)的開始,然后根據(jù)不同的子功能在相應(yīng)的目錄下新建相應(yīng)的 臨時文件,將從標(biāo)準(zhǔn)輸入口讀取的文件數(shù)據(jù)寫入到新建臨時文件中,數(shù)據(jù)寫入完成之后將 原文件刪除,并將臨時文件名修改成原文件的文件名,文件上傳過程中出現(xiàn)問題則將臨時 文件刪除并向客戶端瀏覽器返回文件上傳失敗的提示;
[0050] C、首先從解碼之后的表單數(shù)據(jù)中獲取需要下載的文件的所在目錄和文件名,然后 到指定目錄下找到相應(yīng)的文件并將文件內(nèi)容通過標(biāo)準(zhǔn)輸出端口發(fā)送給客戶端瀏覽器。
[0051] 底層驅(qū)動交互模塊根據(jù)應(yīng)用層功能碼AFN不同執(zhí)行不同的子功能:對底層硬件寄 存器的查詢、配置及對每個底層驅(qū)動程序提供的應(yīng)用層接口功能進(jìn)行測試。
[0052] 調(diào)試接口模塊的處理如下:首先需要將待調(diào)試的各線程程序編譯之后的目標(biāo)文件 上傳到采集終端特定目錄下,然后CGI通過進(jìn)程間通信方式通知應(yīng)用進(jìn)程停止待調(diào)試線程 的運(yùn)行,CGI進(jìn)程發(fā)起一個子進(jìn)程并將子進(jìn)程的運(yùn)行代碼替換成待調(diào)試的線程代碼,使線程 作為CGI進(jìn)程的一個子進(jìn)程運(yùn)行,并將運(yùn)行過程中的調(diào)試信息通過標(biāo)準(zhǔn)輸出口傳送到客戶 端進(jìn)行顯示,通過在客戶端對調(diào)試信息的分析來判定該線程的問題出處。
[0053] 本發(fā)明的有益效果如下:
[0054] 1、規(guī)避了 FTP等軟件登錄存儲設(shè)備有可能刪除或修改文件內(nèi)容的風(fēng)險(xiǎn),下載文件 時采用CGI間接操作文件系統(tǒng)各文件,上傳文件的時候也是首先將文件數(shù)據(jù)寫入到臨時文 件中,待文件寫入成功且數(shù)據(jù)完整之后再進(jìn)行文件替換,不存在誤刪文件或修改文件內(nèi)容 的風(fēng)險(xiǎn),保證了采集終端系統(tǒng)運(yùn)行的安全性和穩(wěn)定性;
[0055] 2、用戶可W不受時空限制,通過Internet利用W邸瀏覽器完成對遠(yuǎn)端用電信息采 集終端的訪問、監(jiān)控和維護(hù)等操作,無需安裝特定軟件,具有跨平臺特性,突破了采集終端 難W進(jìn)行遠(yuǎn)程維護(hù)的局限性,將維護(hù)過程中對用電信息采集系統(tǒng)的影響降到最低限度;
[0056] 3、避免了維護(hù)過程中對電力線或高壓設(shè)備的直接接觸,保證了人身安全;
[0057] 4、可W在用電信息采集系統(tǒng)主站側(cè)實(shí)時下載采集終端記錄的報(bào)文和系統(tǒng)運(yùn)行日 志,保證了報(bào)文和系統(tǒng)運(yùn)行日志的實(shí)時性和有效性,能夠最大限度為終端維護(hù)提供有效論 據(jù);
[0058] 5、具備對底層硬件設(shè)備的檢測功能,可W從硬件層面對采集終端進(jìn)行維護(hù),可W 獨(dú)立于應(yīng)用進(jìn)程對硬件寄存器進(jìn)行查詢或配置,同時對驅(qū)動程序提供的應(yīng)用接口各功能進(jìn) 行測試;
[0059] 6、該維護(hù)系統(tǒng)提供了調(diào)試接口,可W將應(yīng)用進(jìn)程各線程單獨(dú)通過調(diào)試接口進(jìn)行調(diào) 試;
[0060] 7、將目前存在的多種采集終端維護(hù)方式采用WEB發(fā)布有機(jī)整合在一起,避免了第 Ξ方軟件需要安裝注冊及受軟件平臺限制和維護(hù)過程中需要在不同軟件之間切換的麻煩。
[0061] 8、可W通過Linux指令實(shí)時查看終端內(nèi)部實(shí)際運(yùn)行狀況,真正意義上實(shí)現(xiàn)終端運(yùn) 行的實(shí)時監(jiān)測、實(shí)時控制、實(shí)時管理。
[0062] 9、采用模塊化設(shè)計(jì)思想進(jìn)行CGI軟件程序設(shè)計(jì),擴(kuò)展性良好;
[0063] 10、設(shè)計(jì)過程中具備身份驗(yàn)證及加密等環(huán)節(jié),避免了異常操作可能產(chǎn)生的影響,安 全性較好;
[0064] 11、可W通過客戶端瀏覽器實(shí)時遠(yuǎn)程開啟或關(guān)閉報(bào)文和系統(tǒng)運(yùn)行日志記錄功能, 避免了終端運(yùn)行過程中報(bào)文和系統(tǒng)運(yùn)行日志頻繁擦寫flash造成的對存儲設(shè)備壽命產(chǎn)生的 影響;
[0065] 12、相較于解釋型語言實(shí)現(xiàn)的服務(wù)器與應(yīng)用進(jìn)程之間的接口,采用編譯型語言更 能保證系統(tǒng)的安全性,也避免了采集終端系統(tǒng)中需要增加解釋器的麻煩;
[0066] 13、基于嵌入式linux實(shí)現(xiàn)終端維護(hù)和信息發(fā)布系統(tǒng),可W根據(jù)采集終端的不同類 型和性能,靈活進(jìn)行功能裁剪和功能擴(kuò)展,更接近維護(hù)需求。
【具體實(shí)施方式】
[0067] -種基于嵌入式linux實(shí)現(xiàn)終端維護(hù)和信息發(fā)布的方法,包括如下步驟:
[0068] 步驟一、提供CGI支持的嵌入式web服務(wù)器的移植
[0069] 首先從官方網(wǎng)站上下載嵌入式web服務(wù)器源碼,根據(jù)目標(biāo)板選擇合適的編譯器進(jìn) 行源碼編譯,將編譯好的目標(biāo)文件和配置文件拷貝到目標(biāo)板相應(yīng)目錄下并將嵌入式web月良 務(wù)器進(jìn)程設(shè)置成采集終端開機(jī)自啟動;
[0070] 步驟二、登錄認(rèn)證界面html表單的設(shè)計(jì)
[0071] 登錄認(rèn)證界面用于驗(yàn)證訪問嵌入式web服務(wù)器的用戶的使用權(quán)限,也具備修改用 戶名和密碼的功能;當(dāng)需要對用戶輸入的用戶名和密碼進(jìn)行驗(yàn)證或?qū)⒂脩舾牡挠脩裘?密碼傳送給web服務(wù)器時建立TCP連接并將信息傳給web服務(wù)器端的CGI進(jìn)程進(jìn)行處理,登錄 認(rèn)證界面設(shè)計(jì)完成之后W . html格式文件存儲在目標(biāo)板web服務(wù)器配置文件指定的目錄下;
[0072] 步驟Ξ、功能部件選擇界面html表單的設(shè)計(jì)
[0073] 功能部件選擇界面提供各維護(hù)功能的入口,包括Linux系統(tǒng)維護(hù)、應(yīng)用進(jìn)程維護(hù)、 文件系統(tǒng)交互、底層驅(qū)動交互、調(diào)試接口,功能部件選擇界面設(shè)計(jì)完成之后W.html格式文 件存儲在目標(biāo)板web服務(wù)器配置文件指定的目錄下;
[0074] 步驟四、客戶端表單與CGI進(jìn)程接口擴(kuò)展協(xié)議設(shè)計(jì)
[0075] 設(shè)計(jì)客戶端各功能提交按鈕與CGI進(jìn)程之間的接口擴(kuò)展協(xié)議,采用表單變量FCCV 區(qū)分W下功能大類:登錄信息驗(yàn)證、Linux系統(tǒng)維護(hù)、應(yīng)用進(jìn)程維護(hù)、文件系統(tǒng)交互、底層驅(qū) 動交互、調(diào)試接口;每個功能大類下轄各子功能采用應(yīng)用層功能碼AFN進(jìn)行區(qū)分,參見下表:
[0076] FCCV值與各功能大類之間的對應(yīng)關(guān)系 Γ00771
[0078] 登錄信息驗(yàn)證包括用戶登錄信息驗(yàn)證和用戶登錄信息修改兩個子功能,AFN值與 子功能之間的對應(yīng)關(guān)系參見下表:
[0079] AFN值與登錄信息驗(yàn)證各子功能對應(yīng)關(guān)系
[0080]
[0081]
[0082] 應(yīng)用進(jìn)程維護(hù)主要實(shí)現(xiàn)專用維護(hù)軟件的一系列功能,沿用國網(wǎng)公司規(guī)約規(guī)定的主 站與終端通信協(xié)議,根據(jù)應(yīng)用層功能碼不同對其進(jìn)行劃分,AFN值與各子功能對應(yīng)關(guān)系如 下,每個子功能對應(yīng)的信息類和信息點(diǎn)也完全符合主站與終端之間的通信協(xié)議:
[0083] AFN值與應(yīng)用進(jìn)程維護(hù)各子功能對應(yīng)關(guān)系
[0084]
[0085]
[0086] 文件系統(tǒng)交互主要實(shí)現(xiàn)文件的上傳和下載功能,其中設(shè)及到應(yīng)用程序、CGI、驅(qū)動 程序等的升級,AFN值與文件系統(tǒng)交互各子功能之間的對應(yīng)關(guān)系參見下表:
[0087] AFN值與文件系統(tǒng)交互各子功能對應(yīng)關(guān)系 rm只只1
[0089] ~底層驅(qū)動交互主要實(shí)現(xiàn)對硬件寄存器的查詢、設(shè)置及對每個驅(qū)動程序的測試功~ 能,對應(yīng)關(guān)系如下表:
[0090] AFN值與底層驅(qū)動交互各子功能對應(yīng)關(guān)系
[0091]
[0092] 步驟五、通用網(wǎng)關(guān)接口 CGI程序設(shè)計(jì)
[0093] 1、表單數(shù)據(jù)獲取:從環(huán)境變量REQ肥ST_METH0D獲取服務(wù)器與CGI進(jìn)程之間信息傳 遞方式,若為GET方式,則從環(huán)境變量卵ERY_STRING中獲取表單數(shù)據(jù),若為POST方式,則首先 從環(huán)境變量CONTENT_LENGTH獲取表單數(shù)據(jù)的長度,然后從標(biāo)準(zhǔn)輸入口讀取固定長度的表單 數(shù)據(jù);
[0094] 2、U化解碼:按照U化編解碼規(guī)則,對收到的表單數(shù)據(jù)進(jìn)行解碼處理,從解析出的表 單數(shù)據(jù)中根據(jù)FCCV不同的值進(jìn)入不同的功能模塊程序進(jìn)行處理,如下3-8;
[00巧]3、登錄信息驗(yàn)證模塊處理。
[0096] a.檢查/etc目錄下是否存在passwdnet文件,如果不存在,則新建passwdnet文件, 并對默認(rèn)用戶名和密碼(可W自行指定)進(jìn)行加密處理之后寫入passwdnet文件中;
[0097] b.用戶登錄信息驗(yàn)證模塊(FCCV = 0x00)主要包括兩個子功能:用戶登錄信息驗(yàn)證 和用戶登錄信息修改。若AFN為0x00,則執(zhí)行步驟C,若AFN為0x01,則執(zhí)行步驟d;
[0098] C.用戶登錄信息驗(yàn)證處理。打開/etc目錄下passwdnet文件,從文件中讀取加密處 理的用戶名和密碼,對客戶端發(fā)送的用戶名和密碼進(jìn)行加密處理,若二者一致,則登錄信息 驗(yàn)證成功,則將功能部件選擇界面html表單文件提交客戶端;若二者不一致,則返回用戶驗(yàn) 證失敗信息,并將用戶登錄界面html表單文件提交客戶端;
[0099] d.用戶登錄信息修改處理。打開/etc目錄下passwdnet文件,從文件中讀取加密處 理的用戶名和密碼,對客戶端發(fā)送的原用戶名和密碼進(jìn)行加密處理,若二者一致,則將新用 戶名和密碼進(jìn)行加密處理之后寫入passwdnet文件,并將用戶登錄界面html表單文件提交 客戶端,用戶名和密碼修改成功;若二者不一致,則返回原用戶名或密碼錯誤信息,并將用 戶登錄界面html表單文件提交客戶端。
[0100] 4、Linux系統(tǒng)維護(hù)模塊處理。
[0101] a.從解碼之后的表單數(shù)據(jù)中獲取將要執(zhí)行的Linux指令,調(diào)用系統(tǒng)函數(shù)popen完成 Linux指令的執(zhí)行。popen函數(shù)一方面創(chuàng)建子進(jìn)程執(zhí)行shell命令完成Linux指令的執(zhí)行,另 一方面還創(chuàng)建了 CGI進(jìn)程與子進(jìn)程之間的管道;
[0102] b.對于查詢類Linux指令,CGI進(jìn)程通過創(chuàng)建的其與子進(jìn)程之間的管道獲取子進(jìn)程 返回的數(shù)據(jù),對返回?cái)?shù)據(jù)按照CGI編碼規(guī)范和html格式處理后通過標(biāo)準(zhǔn)輸出返回給客戶端; [0103] C.對于執(zhí)行類Linux指令,調(diào)用popen函數(shù)之后,首先判斷popen函數(shù)返回值,若返 回NU化,則說明指令執(zhí)行失敗,通過標(biāo)準(zhǔn)輸出口將指令執(zhí)行失敗信息返回給客戶端,如果返 回值不為N化L,則查詢指令執(zhí)行結(jié)果,若符合要求,則說明指令執(zhí)行成功,將指令執(zhí)行成功 提示信息通過標(biāo)準(zhǔn)輸出口返回給客戶端,若連續(xù)查詢3次仍然不符合要求,則說明指令執(zhí)行 失敗,將指令執(zhí)行失敗提示信息通過標(biāo)準(zhǔn)輸出口返回給客戶端。
[0104] 5、應(yīng)用進(jìn)程維護(hù)模塊處理。
[0105] a、應(yīng)用進(jìn)程維護(hù)模塊(FCCV = 0x02)主要實(shí)現(xiàn)對采集終端的參數(shù)查詢、參數(shù)設(shè)置、 遠(yuǎn)程控制、終端復(fù)位、軟件升級、數(shù)據(jù)查詢、手動組帖等子功能,根據(jù)不同的AFN執(zhí)行不同的 子功能模塊;
[0106] b、從解碼之后的表單數(shù)據(jù)中獲取應(yīng)用層功能碼AFN、信息點(diǎn)化、信息類化及數(shù)據(jù)單 元數(shù)據(jù),按照國網(wǎng)公司規(guī)定的主站與終端之間的通信協(xié)議進(jìn)行組帖處理;
[0107] C、通過進(jìn)程間通信方式(可W通過共享內(nèi)存、消息隊(duì)列、管道等方式實(shí)現(xiàn))將數(shù)據(jù) 帖發(fā)送給應(yīng)用進(jìn)程進(jìn)行處理;
[0108] d、接收應(yīng)用進(jìn)程發(fā)送給CGI進(jìn)程的回應(yīng)帖。若超時未收到應(yīng)用進(jìn)程的回應(yīng)帖,則返 回錯誤;
[0109] e、解析接收到的數(shù)據(jù)帖,根據(jù)本次執(zhí)行的子功能模塊的AFN,確定需要重建的網(wǎng)頁 內(nèi)容,在重建網(wǎng)頁內(nèi)容過程中將解析的數(shù)據(jù)加載到相應(yīng)的表單中返回給客戶端瀏覽器。
[0110] 6、文件系統(tǒng)交互模塊處理。
[0111] a、文件系統(tǒng)交互模塊(FCCV = 0x03)主要實(shí)現(xiàn)文件的上傳和下載功能,根據(jù)不同的 AFN分別執(zhí)行l(wèi)og文件下載、應(yīng)用程序更新、CGI程序更新、驅(qū)動程序更新、自定義下載、自定 義上傳等,各子功能模塊的本質(zhì)都是文件的上傳和下載功能的應(yīng)用,但區(qū)別如下表所示:
[0112]
[0114] 若需要執(zhí)行文件上傳,則轉(zhuǎn)步驟b,若需要執(zhí)行文件下載,則轉(zhuǎn)步驟c;
[0115] b、文件上傳。一般采用POST方式,首先從解碼之后的表單數(shù)據(jù)中獲取本次的特征 碼和上傳文件的目錄和文件名,可通過字符'\r\n'來判定特征碼的結(jié)束和文件數(shù)據(jù)的開 始,然后根據(jù)不同的子功能在相應(yīng)的目錄下新建相應(yīng)的臨時文件,將從標(biāo)準(zhǔn)輸入口讀取的 文件數(shù)據(jù)寫入到新建臨時文件中,數(shù)據(jù)寫入完成之后將原文件刪除,并將臨時文件名修改 成原文件的文件名。注意應(yīng)用程序、CGI程序、驅(qū)動程序文件上傳前考慮到安全性需要驗(yàn)證 用戶名和密碼,文件上傳過程中出現(xiàn)問題則將臨時文件刪除并向客戶端瀏覽器返回文件上 傳失敗的提示;
[0116] C、文件下載。一般采用GET方式,首先從解碼之后的表單數(shù)據(jù)中獲取需要下載的文 件的所在目錄和文件名,然后到指定目錄下找到相應(yīng)的文件并將文件內(nèi)容通過標(biāo)準(zhǔn)輸出端 口發(fā)送給客戶端瀏覽器即可。
[0117] 7、底層驅(qū)動交互模塊處理。
[0118] 底層驅(qū)動交互模塊(FCCV = 0x04)主要實(shí)現(xiàn)對底層硬件寄存器的查詢、配置及對每 個底層驅(qū)動程序進(jìn)行測試的功能。根據(jù)采集終端類型不同、硬件實(shí)現(xiàn)方案不同,本模塊設(shè)及 到的需要查詢和配置的寄存器個數(shù)、類型及需要測試的驅(qū)動程序的流程也不一致;例如,一 般采集終端都具備交流采樣忍片,處理器與交采忍片之間通過SPI通信,交流采樣忍片中包 含有各種寄存器,其中有些寄存器是在進(jìn)行交流校準(zhǔn)的時候配置的校準(zhǔn)系數(shù),當(dāng)交流采樣 出現(xiàn)問題之后,我們就可W通過本模塊首先測試SP巧區(qū)動等是否正常,若驅(qū)動程序正常,可 w查詢寄存器的配置情況,讀取其中的校準(zhǔn)系數(shù)并進(jìn)行計(jì)算,判斷是否校準(zhǔn)系數(shù)發(fā)生異常 等,此部分可W診斷驅(qū)動程序異常、硬件配置異常、硬件設(shè)備異常等特殊情況;
[0119] 8、調(diào)試接口模塊處理。
[0120] 調(diào)試接口模塊為應(yīng)用程序各線程單獨(dú)調(diào)試提供了接口。首先需要將待調(diào)試的各線 程程序編譯之后的目標(biāo)文件上傳到采集終端特定目錄下,然后CGI通過進(jìn)程間通信方式通 知應(yīng)用進(jìn)程停止待調(diào)試線程的運(yùn)行,然后CGI進(jìn)程發(fā)起一個子進(jìn)程并將子進(jìn)程的運(yùn)行代碼 替換成待調(diào)試的線程代碼,使線程作為CGI進(jìn)程的一個子進(jìn)程運(yùn)行,并將運(yùn)行過程中的調(diào)試 信息通過標(biāo)準(zhǔn)輸出口傳送到客戶端進(jìn)行顯示,通過在客戶端對調(diào)試信息的分析來判定該線 程的哪個部分存在問題。
【主權(quán)項(xiàng)】
1. 基于嵌入式1 inux實(shí)現(xiàn)終端維護(hù)和信息發(fā)布的方法,其特征在于包括如下步驟: 步驟一、提供CGI支持的嵌入式web服務(wù)器的移植 首先從官方網(wǎng)站下載嵌入式web服務(wù)器源碼,然后根據(jù)目標(biāo)板選擇合適的編譯器進(jìn)行 源碼編譯,將編譯好的目標(biāo)文件和配置文件拷貝到目標(biāo)板相應(yīng)目錄下并將嵌入式web服務(wù) 器進(jìn)程設(shè)置成采集終端開機(jī)自啟動; 步驟二、登錄認(rèn)證界面html表單的設(shè)計(jì) 登錄認(rèn)證界面用于驗(yàn)證訪問嵌入式web服務(wù)器的用戶的使用權(quán)限,也具備修改用戶名 和密碼的功能;當(dāng)需要對用戶輸入的用戶名和密碼進(jìn)行驗(yàn)證或?qū)⒂脩舾牡挠脩裘兔艽a 傳送給web服務(wù)器時建立TCP連接并將信息傳給web服務(wù)器端的CGI進(jìn)程進(jìn)行處理,登錄認(rèn)證 界面設(shè)計(jì)完成以.html格式文件存放在目標(biāo)板服務(wù)器配置文件指定的目錄下; 步驟三、功能部件選擇界面html表單的設(shè)計(jì) 功能部件選擇界面提供各維護(hù)功能的入口,包括Linux系統(tǒng)維護(hù)、應(yīng)用進(jìn)程維護(hù)、文件 系統(tǒng)交互、底層驅(qū)動交互、調(diào)試接口,功能部件選擇界面設(shè)計(jì)完成以.html格式文件存放在 目標(biāo)板服務(wù)器配置文件指定的目錄下; 步驟四、客戶端表單與CGI進(jìn)程接口擴(kuò)展協(xié)議設(shè)計(jì) 設(shè)計(jì)客戶端表單各功能提交按鈕與CGI進(jìn)程之間的接口擴(kuò)展協(xié)議,采用表單變量FCCV 區(qū)分以下功能大類:登錄信息驗(yàn)證、Linux系統(tǒng)維護(hù)、應(yīng)用進(jìn)程維護(hù)、文件系統(tǒng)交互、底層驅(qū) 動交互、調(diào)試接口;每個功能大類下轄各子功能采用應(yīng)用層功能碼AFN進(jìn)行區(qū)分; 步驟五、通用網(wǎng)關(guān)接口 CGI程序設(shè)計(jì) 首先CGI進(jìn)程從環(huán)境變量REQUEST_METHOD獲取表單數(shù)據(jù)遞交方式,如果為GET方式,則 從環(huán)境變量QUERY_STRING獲取表單遞交數(shù)據(jù),如果為POST方式,則從標(biāo)準(zhǔn)輸入中獲取表單 遞交數(shù)據(jù);然后按照URL編解碼規(guī)則,對收到的表單數(shù)據(jù)進(jìn)行解碼處理,從解析出的表單數(shù) 據(jù)中根據(jù)表單變量FCCV不同的值進(jìn)入以下不同的功能模塊程序進(jìn)行處理:登錄信息驗(yàn)證模 塊、Linux系統(tǒng)維護(hù)模塊、應(yīng)用進(jìn)程維護(hù)模塊、文件系統(tǒng)交互模塊、底層驅(qū)動交互模塊、調(diào)試 接口模塊。2. 根據(jù)權(quán)利要求1所述的基于嵌入式linux實(shí)現(xiàn)終端維護(hù)和信息發(fā)布的方法,其特征在 于:步驟五中登錄信息驗(yàn)證模塊的處理包括如下步驟: a. 檢查/etc目錄下是否存在passwdnet文件,如果不存在,則新建passwdnet文件,并對 默認(rèn)用戶名和密碼進(jìn)行加密處理之后寫入passwdnet文件中; b. 登錄信息驗(yàn)證模塊根據(jù)應(yīng)用層功能碼AFN不同分為兩個子功能:用戶登錄信息驗(yàn)證 和用戶登錄信息修改;若為用戶登錄信息驗(yàn)證則執(zhí)行步驟c,若為用戶登錄信息修改則執(zhí)行 步驟d; c. 打開/etc目錄下passwdnet文件,從文件中讀取加密處理的用戶名和密碼,對客戶端 發(fā)送的用戶名和密碼進(jìn)行加密處理,若二者一致,則登錄信息驗(yàn)證成功,并將功能部件選擇 界面html表單文件提交客戶端;若二者不一致,則返回用戶驗(yàn)證失敗提示信息,并將登錄認(rèn) 證界面html表單文件提交客戶端; d. 打開/etc目錄下passwdnet文件,從文件中讀取加密處理的用戶名和密碼,對客戶端 發(fā)送的原用戶名和密碼進(jìn)行加密處理,若二者一致,則將新用戶名和密碼進(jìn)行加密處理之 后寫入passwdnet文件,并將登錄認(rèn)證界面html表單文件提交客戶端,提示用戶使用新用戶 名和新密碼登錄;若二者不一致,則返回原用戶名或密碼驗(yàn)證失敗信息,并將登錄認(rèn)證界面 html表單文件提交客戶端。3. 根據(jù)權(quán)利要求1所述的基于嵌入式linux實(shí)現(xiàn)終端維護(hù)和信息發(fā)布的方法,其特征在 于:步驟五中Linux系統(tǒng)維護(hù)模塊的處理包括如下步驟: a、 從解碼之后的表單數(shù)據(jù)中獲取將要執(zhí)行的Linux指令,調(diào)用系統(tǒng)函數(shù)popen完成 Linux指令的執(zhí)行;popen函數(shù)一方面創(chuàng)建子進(jìn)程執(zhí)行shell命令完成Linux指令的執(zhí)行,另 一方面還創(chuàng)建了 CGI進(jìn)程與子進(jìn)程之間的管道; b、 對于查詢類Linux指令,CGI進(jìn)程通過創(chuàng)建的其與子進(jìn)程之間的管道獲取子進(jìn)程返回 的數(shù)據(jù),對返回?cái)?shù)據(jù)按照CGI編碼規(guī)范和html格式處理后通過標(biāo)準(zhǔn)輸出返回給客戶端; c、 對于執(zhí)行類Linux指令,調(diào)用popen函數(shù)之后,首先判斷popen函數(shù)返回值,若返回 NULL,則說明指令執(zhí)行失敗,通過標(biāo)準(zhǔn)輸出口將指令執(zhí)行失敗信息返回給客戶端,如果返回 值不為NULL,則查詢指令執(zhí)行結(jié)果,若符合要求,則說明指令執(zhí)行成功,將指令執(zhí)行成功提 示信息通過標(biāo)準(zhǔn)輸出口返回給客戶端,若連續(xù)查詢3次仍然不符合要求,則說明指令執(zhí)行失 敗,將指令執(zhí)行失敗提示信息通過標(biāo)準(zhǔn)輸出口返回給客戶端。4. 根據(jù)權(quán)利要求1所述的基于嵌入式linux實(shí)現(xiàn)終端維護(hù)和信息發(fā)布的方法,其特征在 于:步驟五中應(yīng)用進(jìn)程維護(hù)模塊的處理包括如下步驟: a、 應(yīng)用進(jìn)程維護(hù)模塊根據(jù)應(yīng)用層功能碼AFN不同執(zhí)行不同的子功能模塊:對采集終端 的參數(shù)查詢、參數(shù)設(shè)置、遠(yuǎn)程控制、終端復(fù)位、軟件升級、數(shù)據(jù)查詢、手動組幀; b、 從解碼之后的表單數(shù)據(jù)中獲取應(yīng)用層功能碼AFN、信息點(diǎn)Pn、信息類Fn及數(shù)據(jù)單元數(shù) 據(jù),按照規(guī)定的主站與終端之間的通信協(xié)議進(jìn)行組幀處理; c、 CGI進(jìn)程通過進(jìn)程間通信方式將數(shù)據(jù)幀發(fā)送給應(yīng)用進(jìn)程進(jìn)行處理; d、 CGI進(jìn)程接收應(yīng)用進(jìn)程返回的回應(yīng)幀,若超時未收到應(yīng)用進(jìn)程的回應(yīng)幀,則CGI進(jìn)程 返回錯誤; e、 解析接收到的數(shù)據(jù)幀,根據(jù)本次執(zhí)行的子功能模塊的應(yīng)用層功能碼AFN,確定需要重 建的網(wǎng)頁內(nèi)容,在重建網(wǎng)頁內(nèi)容過程中將解析的數(shù)據(jù)加載到相應(yīng)的表單中返回給客戶端瀏 覽器。5. 根據(jù)權(quán)利要求1所述的基于嵌入式linux實(shí)現(xiàn)終端維護(hù)和信息發(fā)布的方法,其特征在 于:步驟五中文件系統(tǒng)交互模塊的處理包括如下步驟: a、 文件交互模塊根據(jù)應(yīng)用層功能碼AFN不同執(zhí)行不同的子功能:log文件下載、應(yīng)用程 序文件更新、CGI程序文件更新、驅(qū)動程序更新、自定義文件下載、自定義文件上傳,但是整 體來講主要包括兩部分:文件的上傳和下載,若為文件上傳,則轉(zhuǎn)步驟b,若為文件下載,則 轉(zhuǎn)步驟c; b、 首先從解碼之后的表單數(shù)據(jù)中獲取本次的特征碼和上傳文件的目錄和文件名,判定 特征碼的結(jié)束和文件數(shù)據(jù)的開始,然后根據(jù)不同的子功能在相應(yīng)的目錄下新建相應(yīng)的臨時 文件,將從標(biāo)準(zhǔn)輸入口讀取的文件數(shù)據(jù)寫入到新建臨時文件中,數(shù)據(jù)寫入完成之后將原文 件刪除,并將臨時文件名修改成原文件的文件名,文件上傳過程中出現(xiàn)問題則將臨時文件 刪除并向客戶端瀏覽器返回文件上傳失敗的提示; C、首先從解碼之后的表單數(shù)據(jù)中獲取需要下載的文件的所在目錄和文件名,然后到指 定目錄下找到相應(yīng)的文件并將文件內(nèi)容通過標(biāo)準(zhǔn)輸出端口發(fā)送給客戶端瀏覽器。6. 根據(jù)權(quán)利要求1所述的基于嵌入式linux實(shí)現(xiàn)終端維護(hù)和信息發(fā)布的方法,其特征在 于:步驟五中底層驅(qū)動交互模塊根據(jù)應(yīng)用層功能碼AFN不同執(zhí)行不同的子功能:對底層硬件 寄存器的查詢、配置及對每個底層驅(qū)動程序提供的應(yīng)用層接口功能進(jìn)行測試。7. 根據(jù)權(quán)利要求1所述的基于嵌入式linux實(shí)現(xiàn)終端維護(hù)和信息發(fā)布的方法,其特征在 于:步驟五中調(diào)試接口模塊的處理如下:首先需要將待調(diào)試的各線程程序編譯之后的目標(biāo) 文件上傳到采集終端特定目錄下,然后CGI通過進(jìn)程間通信方式通知應(yīng)用進(jìn)程停止待調(diào)試 線程的運(yùn)行,CGI進(jìn)程發(fā)起一個子進(jìn)程并將子進(jìn)程的運(yùn)行代碼替換成待調(diào)試的線程代碼,使 線程作為CGI進(jìn)程的一個子進(jìn)程運(yùn)行,并將運(yùn)行過程中的調(diào)試信息通過標(biāo)準(zhǔn)輸出口傳送到 客戶端進(jìn)行顯示,通過在客戶端對調(diào)試信息的分析來判定該線程的問題出處。
【文檔編號】H04L29/08GK106060066SQ201610495093
【公開日】2016年10月26日
【申請日】2016年6月28日
【發(fā)明人】孫明剛, 徐軍, 楊坤龍, 李春雷, 劉亮
【申請人】積成電子股份有限公司