本發(fā)明涉及信息技術(shù)領(lǐng)域,特別是涉及一種pos機、pos機無線通訊模塊固件升級方法及裝置。
背景技術(shù):
pos機中通過設置無線通訊模塊進行通訊,pos機的無線通訊模塊運行于獨立的操作系統(tǒng),如果有新的需求或者無線通訊模塊出現(xiàn)問題,需要對無線通訊模塊進行固件升級。
一般的,對pos機無線通訊模塊固件升級時,先將無線通訊模塊的固件部署到升級工具中,再將升級工具通usb連接線或者串口線連接到到pos機,然后由pos機廠家的技術(shù)人員操作pos機,完成pos機無線通訊模塊固件升級。該種pos機無線通訊模塊固件升級方式需要將pos機返廠或者由廠家指派技術(shù)人員到現(xiàn)場對pos機無線通訊模塊進行升級,使得pos機無線通訊模塊固件升級效率低、操作復雜且升級成本高。
技術(shù)實現(xiàn)要素:
基于此,有必要針對pos機無線通訊模塊升級效率低、操作復雜且升級成本高的問題,提供一種pos機、pos機無線通訊模塊固件升級方法及裝置。
一種pos機無線通訊模塊固件升級方法,包括以下步驟:
獲取pos機無線通訊模塊的本地固件版本號,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至服務器;
接收服務器返回的服務器中存儲的與本地固件版本號相匹配的升級固件版本號,顯示升級固件版本號;
獲取對升級固件版本號的選中指令,從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件;
將下載的無線通訊模塊固件文件部署到無線通訊模塊中。
在其中一個實施例中,從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件的步驟之后,還包括:
檢測下載的無線通訊模塊固件文件與服務器上存儲的對應的無線通訊模塊固件文件是否相同;
當下載的無線通訊模塊固件文件與服務器上存儲的對應的無線通訊模塊固件文件不同時,執(zhí)行從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件的步驟。
在其中一個實施例中,上述pos機無線通訊模塊固件升級方法還包括:
當從服務器上下載無線通訊模塊固件文件發(fā)生中斷時,計算下載偏移量發(fā)送至服務器;
接收服務器返回的下載偏移量確認指令,繼續(xù)下載無線通訊模塊固件文件。
在其中一個實施例中,獲取pos機無線通訊模塊的本地固件版本號,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至服務器的步驟之前,還包括:
檢測pos機的工作狀態(tài);
當pos機處于空閑狀態(tài)時,執(zhí)行獲取pos機無線通訊模塊的本地固件版本號,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至服務器的步驟。
一種pos機無線通訊模塊固件升級方法,包括以下步驟:
接收終端發(fā)送的固件版本查詢請求,根據(jù)固件版本查詢請求獲取pos機無線通訊模塊的本地固件版本號;
根據(jù)本地固件版本號查詢已存儲的無線通訊模塊固件的升級固件版本號;
當查詢到與本地固件版本號相匹配的升級固件版本號時,發(fā)送與本地固件版本號相匹配的升級固件版本號至終端;
接收終端發(fā)送的下載請求,下載請求攜帶升級固件版本號;
獲取升級固件版本號對應的無線通訊模塊固件文件,發(fā)送無線通訊模塊固件文件至終端。
一種pos機無線通訊模塊固件升級裝置,包括:
查詢請求生成模塊,用于獲取pos機無線通訊模塊的本地固件版本號,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至服務器;
顯示模塊,用于接收服務器返回的服務器中存儲的與本地固件版本號相匹配的升級固件版本號,顯示升級固件版本號;
固件下載模塊,用于獲取對升級固件版本號的選中指令,從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件;
升級部署模塊,用于將下載的無線通訊模塊固件文件部署到無線通訊模塊中。
在其中一個實施例中,上述pos機無線通訊模塊固件升級裝置還包括:
固件校驗模塊,用于檢測下載的無線通訊模塊固件文件與服務器上存儲的對應的無線通訊模塊固件文件是否相同;
當下載的無線通訊模塊固件文件與服務器上存儲的對應的無線通訊模塊固件文件不同時,發(fā)送下載指令至固件下載模塊。
一種pos機無線通訊模塊固件升級裝置,包括:
查詢請求接收模塊,用于接收終端發(fā)送的固件版本查詢請求,根據(jù)固件版本查詢請求獲取pos機無線通訊模塊的本地固件版本號;
查詢匹配模塊,用于根據(jù)本地固件版本號查詢已存儲的無線通訊模塊固件的升級固件版本號;當查詢到與本地固件版本號相匹配的升級固件版本號時,發(fā)送與本地固件版本號相匹配的升級固件版本號至終端;
下載請求接收模塊,用于接收終端發(fā)送的下載請求,下載請求攜帶升級固件版本號;
固件文件發(fā)送模塊,用于獲取升級固件版本號對應的無線通訊模塊固件文件,發(fā)送無線通訊模塊固件文件至終端。
一種pos機,包括:存儲器、處理器及存儲在存儲器上并可在處理器上運行的pos機應用程序,處理器執(zhí)行pos機應用程序時實現(xiàn)以下步驟:
獲取pos機無線通訊模塊的本地固件版本號,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至服務器;
接收服務器返回的服務器中存儲的與本地固件版本號相匹配的升級固件版本號,顯示升級固件版本號;
獲取對升級固件版本號的選中指令,從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件;
將下載的無線通訊模塊固件文件部署到無線通訊模塊中。
一種pos機可讀存儲介質(zhì),其上存儲有pos機應用程序,該pos機應用程序被處理器執(zhí)行時實現(xiàn)上述方法的步驟。
上述pos機、pos機無線通訊模塊固件升級方法及裝置,根據(jù)pos機無線通訊模塊的本地固件版本號生成固件版本查詢請求發(fā)送至服務器,接收并顯示服務器返回的服務器中存儲的與本地固件版本號相匹配的升級固件版本號,再根據(jù)對升級固件版本號的選中指令,從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件,并將下載的無線通訊模塊固件文件部署到無線通訊模塊中,實現(xiàn)了pos機無線通訊模塊固件自動升級,升級操作簡單方便,大大提高了pos機無線通訊模塊固件升級的效率,且省去了pos機返廠及技術(shù)人員現(xiàn)場服務開銷,有效節(jié)約了pos機無線通訊模塊固件升級成本。
附圖說明
圖1為一個實施例中pos機無線通訊模塊固件升級方法流程圖;
圖2為又一個實施例中pos機無線通訊模塊固件升級方法流程圖;
圖3為一個實施例中pos機無線通訊模塊固件升級方法的應用場景示意圖;
圖4為一個實施例中pos機無線通訊模塊固件升級裝置的結(jié)構(gòu)示意圖;
圖5為又一個實施例中pos機無線通訊模塊固件升級裝置的結(jié)構(gòu)示意圖;
圖6為另一個實施例中pos機無線通訊模塊固件升級裝置的結(jié)構(gòu)示意圖;
圖7為一個實施例中pos機的結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用于解釋本發(fā)明,并不用于限定本發(fā)明。
請參閱圖1,一種pos機無線通訊模塊固件升級方法,包括以下步驟:
步驟102:獲取pos機無線通訊模塊的本地固件版本號,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至服務器。
具體地,pos機中存儲當前使用的無線通訊模塊的固件版本號,當獲取到無線通訊模塊固件升級指令后,pos機查詢當前使用的無線通訊模塊的固件版本號,獲取本地固件版本號,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至服務器。
在一個實施例中,pos機無線通訊模塊的固件版本號包括固件版本的產(chǎn)品型號、固件版本的主版本號、固件版本的子版本號和固件版本的流水號。無線通訊模塊的產(chǎn)品型號有很多種,不同的產(chǎn)品型號,對應不同的無線通訊模塊種類,無線通訊模塊由于產(chǎn)品型號不同,不能升級其他產(chǎn)品型號的固件版本,只能升級產(chǎn)品型號、主版本號和子版本號相同的無線通訊模塊固件版本號。也就是說,升級無線通訊模塊固件版本時,只有固件版本的流水號可以不同,其他都要相同,否則pos機的本地升級命令會不識別,無法進行升級,會導致升級失敗。因此,獲取本地固件版本號時,本地固件版本的產(chǎn)品型號、本地固件版本的主版本號、本地固件版本的子版本號保持不變,將固件版本的流水號修改為預先設置的流水替換號,得到本地固件版本號,即本地固件版本號包括本地固件版本的產(chǎn)品型號、本地固件版本的主版本號、本地固件版本的子版本號和流水替換號,得到本地固件版本號后,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至服務器。進一步地,流水替換號可以為*、#等字符,也可以為預設的若干個“0”等,具體應用中可根據(jù)實際情況任意設置,本實施例不做具體限定。
步驟104:接收服務器返回的服務器中存儲的與本地固件版本號相匹配的升級固件版本號,顯示升級固件版本號。
具體地,升級固件版本號可以為多個,每個升級固件版本號均包括升級固件版本的產(chǎn)品型號、升級固件版本的主版本號、升級固件版本的子版本號和升級固件版本的流水號。升級固件版本號的數(shù)量根據(jù)服務器中存儲的與本地固件版本號相匹配的升級固件版本號的數(shù)量相同。進一步的,與本地固件版本號相匹配的升級固件版本號為產(chǎn)品型號、主版本號及子版本號與本地固件版本號的產(chǎn)品型號、主版本號及子版本號均相同的升級固件版本號。即升級固件版本號的產(chǎn)品型號、主版本號及子版本號與本地固件版本號的產(chǎn)品型號、主版本號及子版本號相同,升級固件版本號的流水號可以與本地固件版本號的流水號相同,也可以不同。
在一個實施例中,服務器接收到固件版本查詢請求后查詢本地存儲的固件版本信息,當查詢到與本地固件版本號相匹配的升級固件版本號時,發(fā)送查詢到的升級固件版本號至pos機,pos機顯示接收到的升級固件版本號。
步驟106:獲取對升級固件版本號的選中指令,從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件。
具體地,pos機獲取用戶對相應升級固件版本號的選中指令,當獲取到用戶對某個升級固件版本號的選中指令后,pos機根據(jù)獲取到選中指令的升級固件版本號生成下載請求發(fā)送至服務器,從服務器上下載與該升級固件版本號對應的無線通訊模塊固件文件。在一個實施例中,用戶通過pos機的輸入設備如鍵盤、觸摸屏等向pos機輸入對要選取的升級固件版本號的選中指令。
步驟108:將下載的無線通訊模塊固件文件部署到無線通訊模塊中。
具體地,pos機解析下載的無線通訊模塊固件文件,運行固件安裝程序,完成無線通訊模塊固件升級。
在一個實施例中,步驟106中從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件的步驟之后,還包括:檢測下載的無線通訊模塊固件文件與服務器上存儲的對應的無線通訊模塊固件文件是否相同;當下載的無線通訊模塊固件文件與服務器上存儲的對應的無線通訊模塊固件文件不同時,執(zhí)行從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件的步驟。
具體地,pos機完成無線通訊模塊固件文件下載后,計算下載到的無線通訊模塊固件文件的大小,并與服務器中存儲的該無線通訊模塊固件文件的大小相比較,如果兩者大小不一致,則可能發(fā)生數(shù)據(jù)丟失或數(shù)據(jù)重復,此時,無線通訊模塊固件文件下載失敗,pos機重新從服務器下載無線通訊模塊固件文件;如果下載到的無線通訊模塊固件文件的大小與服務器中存儲的該無線通訊模塊固件文件的大小相同,則進一步進行哈希值校驗,如果哈希值校驗成功,則下載的無線通訊模塊固件文件正確,可以進行升級,執(zhí)行步驟108;否則,如果哈希值校驗失敗,則下載的無線通訊模塊固件文件錯誤,pos機重新從服務器下載無線通訊模塊固件文件。本實施例通過對下載到的無線通信模塊固件文件進行校驗,確保下載到的無線通信模塊正確,確保pos機無線通訊模塊固件升級準確,有利于提高pos機無線通訊模塊升級效率。
在一個實施例中,上述pos機無線通訊模塊固件升級方法還包括:當從服務器上下載無線通訊模塊固件文件發(fā)生中斷時,計算下載偏移量發(fā)送至服務器;接收服務器返回的下載偏移量確認指令,繼續(xù)下載無線通訊模塊固件文件。
具體地,如果在pos機下載無線通訊模塊固件文件的過程中出現(xiàn)網(wǎng)絡錯誤或突發(fā)掉電等情況導致中間下載出錯,則pos機計算已經(jīng)下載的無線通信模塊固件文件的文件大小,計算下載偏移量,然后向服務器發(fā)送“rest偏移量”命令,以進行下載續(xù)傳,當接收到服務器返回的下載偏移量確認指令時,pos機從下載中端位置處繼續(xù)下載無線通訊模塊固件文件。本實施例中,當發(fā)生無線通訊模塊固件文件下載中斷時,pos機通過與服務器進行下載偏移量確認實現(xiàn)斷點續(xù)傳,進一步提高了pos機無線通訊模塊升級效率。
在一個實施例中,步驟102之前還包括:檢測pos機的工作狀態(tài);當pos機處于空閑狀態(tài)時,執(zhí)行獲取pos機無線通訊模塊的本地固件版本號,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至服務器的步驟。
具體地,當pos機獲取到無線通訊模塊固件升級指令后,先檢測當前pos機的工作狀態(tài),當pos機處于空閑狀態(tài)時,執(zhí)行步驟102至步驟108,對pos無線通訊模塊進行固件升級;當pos機處于工作狀態(tài)時,則輸出運行沖突的提醒信息,提示用戶當前無法進行升級或結(jié)束pos機當前執(zhí)行的進程后再進行無線通訊模塊固件升級,以避免出現(xiàn)運行沖突,確保無線通訊模塊穩(wěn)定升級。
請參閱圖2,一種pos機無線通訊模塊固件升級方法,包括以下步驟:
步驟202:接收終端發(fā)送的固件版本查詢請求,根據(jù)固件版本查詢請求獲取pos機無線通訊模塊的本地固件版本號。
具體地,終端為pos機,固件版本查詢請求攜帶pos機無線通訊模塊的本地固件版本號,包括本地固件版本的產(chǎn)品型號、本地固件版本的主版本號、本地固件版本的子版本號和流水替換號。服務器接收到pos機發(fā)送的固件版本查詢請求后,根據(jù)固件版本查詢請求獲取pos機無線通訊模塊的本地固件版本號。進一步地,在一個實施例中,服務器為ftp服務器。
步驟204:根據(jù)本地固件版本號查詢已存儲的無線通訊模塊固件的升級固件版本號。
服務器獲取pos機無線通訊模塊的本地固件版本號后,查詢已存儲的無線通訊模塊固件的升級固件版本號,檢測是否有與本地固件版本號匹配的升級固件版本號,即查詢是否存儲有產(chǎn)品型號、主版本號及子版本號與本地固件版本號相同的升級固件版本號,當查詢到有與本地固件版本號相匹配的升級固件版本號時,執(zhí)行步驟206;否則,服務器發(fā)送升級失敗提醒至pos機,提醒用戶無升級版本,升級失敗。
具體地,服務器中存儲有各種型號的無線通訊模塊固件文件,包括每個型號的無線通訊模塊的不同版本的固件文件,能夠使pos機的無線通訊模塊固件升級到最新版本,也可以滿足特定升級需求,使無線通訊模塊根據(jù)用戶需求升級到某一特定版本,能夠有效滿足不同用戶的升級需求,方便用戶使用。
步驟206:當查詢到與本地固件版本號相匹配的升級固件版本號時,發(fā)送與本地固件版本號相匹配的升級固件版本號至終端。
具體地,升級固件版本號包括升級固件版本的產(chǎn)品型號、升級固件版本的主版本號、升級固件版本的子版本號和升級固件版本的流水號。當查詢到升級版本號的產(chǎn)品型號、主版本號和子版本號與本地固件版本號的產(chǎn)品型號、主版本號和子版本號相同時,服務器獲取該升級固件版本號,并將該升級固件版本號發(fā)送至pos機,以供用戶選擇。
步驟208:接收終端發(fā)送的下載請求,下載請求攜帶升級固件版本號。
具體地,服務器接收pos機發(fā)送的下載請求,獲取升級固件版本號。
步驟210:獲取升級固件版本號對應的無線通訊模塊固件文件,發(fā)送無線通訊模塊固件文件至終端。
具體地,服務器根據(jù)升級固件版本號獲取對應的無線通訊模塊固件文件,將無線通訊模塊固件文件發(fā)送至pos機。
本發(fā)明實施例中所提供的軟件部署方法可以應用于如圖3所示的應用環(huán)境中。多個pos機302與服務器304通過網(wǎng)絡連接。服務器304中存儲各種型號的無線通訊模塊固件文件,服務器304也可以為多個。pos機302獲取無線通訊模塊升級指令,獲取pos機無線通訊模塊的本地固件版本號,生成固件版本查詢請求發(fā)送至服務器304;服務器304根據(jù)固件版本查詢請求獲取pos機無線通訊模塊的本地固件版本號,查詢已存儲的無線通訊模塊固件的升級固件版本號,當查詢到與本地固件版本號相匹配的升級固件版本號時,發(fā)送升級固件版本號至pos機302,pos機302顯示升級固件版本號并獲取對升級固件版本號的選中指令,從服務器304上下載與無線通訊模塊固件文件對無線通訊模塊進行固件升級,實現(xiàn)了pos機無線通訊模塊固件自動升級,大大提高了pos機無線通訊模塊固件升級的效率,有效節(jié)約了pos機無線通訊模塊固件升級成本。
以下同時結(jié)合圖3,以將上述的pos機無線通訊模塊固件升級方法應用于圖3所示的應用場景為例對上述pos機無線通訊模塊固件升級方法進行詳細說明。一種pos機無線通訊模塊固件升級方法,包括以下步驟:
1)、獲取無線通訊模塊升級指令,檢測pos機的工作狀態(tài)。
具體地,當pos機獲取到無線通訊模塊固件升級指令后,先檢測當前pos機的工作狀態(tài),如果pos機處于空閑狀態(tài),則可進行無線通訊模塊固件升級操作;否則,pos機輸出運行沖突的提醒信息,提示用戶當前無法進行升級或結(jié)束pos機當前執(zhí)行的進程后再進行無線通訊模塊固件升級。
2)、pos機與服務器建立控制連接。
本實施例中,服務器為ftp服務器,ftp服務器中預先存儲pos機無線通訊模塊的固件文件和每個固件文件的版本信息,固件文件的版本信息至少包括固件版本號,固件版本號命名規(guī)則為abcd_vxy.mn.zz,其中abcd是產(chǎn)品型號,vxy是主版本號,mn是子版本號,zz是版本的流水號。ftp服務器中存儲的每個固件文件的固件版本號的產(chǎn)品型號、主版本號、子版本號和流水號都要保證完整。
當pos機處于空閑狀態(tài),可以進行無線通訊模塊固件升級時,pos機運用ftp服務器的用戶名和密碼,與ftp服務器建立控制連接,具體的建立ftp控制連接流程為:首先,pos機創(chuàng)建一個控制socket連接,連接到ftp服務器的ip地址和端口號(一般是21端口)。在pos機與ftp服務器之間的socket連接建立成功之后,ftp服務器會向pos機回復一個220的結(jié)果碼,提示pos機輸入用戶名和密碼。然后pos機向ftp服務器發(fā)送“user用戶名”和“pass密碼”的ftp命令,ftp服務器將pos機發(fā)送的用戶名和密碼與自身設定的用戶名和密碼相比較,如果匹配,則登錄成功,ftp服務器向pos回復登陸成功的結(jié)果碼;如果不匹配,則返回一個錯誤的結(jié)果碼,pos機登陸不成功。具體地,在一個實施例中,pos機提供接口,在進行ftp登錄之前,用戶可以手動輸入ftp服務器的用戶名和密碼。
進一步地,上述的結(jié)果碼根據(jù)ftp標準協(xié)議生成,在一個實施例中,220表示pos機與ftp服務器之間的控制socket連接建立成功,表示服務器已經(jīng)準備好;230表示pos機登錄ftp服務器成功,只有回復了220才表示pos機與ftp服務器的控制socket連接建立成功,只有回復了230才表示pos機登錄ftp服務器成功。用戶名和密碼匹配成功之后,ftp服務器會向pos機回復一個230的結(jié)果碼,表示pos機與ftp服務器的控制連接已經(jīng)建立成功。如果中間ftp服務器返回其他錯誤的結(jié)果碼,則pos機關(guān)閉pos機與ftp服務器的控制socket連接,并重新建立控制socket連接。
2)、設定文件傳輸類型及連接模式。
本實施例中,與ftp服務器建立控制連接后,pos機向ftp服務器發(fā)送ftp命令“typeb”指定文件傳輸類型為二進制類型,并向ftp服務器發(fā)送ftp命令“pasv”來告知ftp服務器以被動模式來傳送文件。
具體地,ftp的被動模式和主動模式是ftp客戶端與ftp服務端進行數(shù)據(jù)socket連接的兩種方式。ftp的被動模式是指:ftp客戶端去連服務器端的ip和端口號(一般是20端口)。ftp的主動模式是指:ftp客戶端隨機開放一個端口(1024以上),發(fā)送port命令和客戶端的端口號到ftp服務器,告知ftp服務器,客戶端將采用主動模式開放端口,ftp服務器收到port命令和客戶端的端口號之后,通過服務器的20端口和客戶端開放的端口連接。進一步地,pos機會根據(jù)ftp服務器的基本情況來選擇被動模式或者主動模式,本實施例中,為滿足用戶的不同升級需求,需要根據(jù)客戶的需求,將無線通訊模塊的固件升級到客戶指定的版本,因此,所有的操作都是pos機發(fā)送需求進行文件傳輸?shù)?,故此,指定連接模式為被動模式。在其他實施例中,當采用無線通訊模塊自動升級模式,即只將無線通訊模塊升級到最新版本時,可指定連接模式為主動連接,當采用主動連接模式時,ftp服務器檢測到有版本更新時,與pos機建立連接自動進行pos無線通訊模塊固件升級。綜上,在具體應用過程中,pos與ftp服務器的連接模式可根據(jù)實際情況進行選擇,本實施例不做具體限定。
3)、pos機獲取本地無線通訊模塊的本地固件版本號,生成固件版本查詢請求發(fā)送至服務器。
具體地,完成文件傳輸類型及連接模式設置后,pos機查詢當前使用的無線通訊模塊的固件版本號,獲取本地固件版本號。pos機當前使用的無線通訊模塊的固件版本號包括:固件版本的產(chǎn)品型號,固件版本的主版本號,固件版本的子版本號和固件版本的流水號。pos機獲取當前使用的無線通訊模塊的固件版本號的產(chǎn)品型號、主版本號和子版本號,并獲取預先存儲的流水替換號,生成本地固件版本號,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至ftp服務器。進一步地,本實施例中流水替換號為“*”,例如,當前使用的無線通訊模塊的固件版本號為abcd_vxy.mn.z1,則本地固件版本號為“abcd_vxy.mn.*”,pos機發(fā)送ftp命令“l(fā)istabcd_vxy.mn.*”命令,將攜帶本地固件版本號的固件版本查詢請求發(fā)送至ftp服務器。
4)、pos機接收服務器返回的服務器中存儲的與本地固件版本號相匹配的升級固件版本號,顯示升級固件版本號。
ftp服務器接收到pos機可發(fā)送的ftp命令“l(fā)istabcd_vxy.mn.*”命令后,獲取pos機無線通訊模塊的本地固件版本號,將本地固件版本號與已存儲的無線通訊模塊固件的升級固件版本號進行比較,獲取產(chǎn)品型號、主版本號及子版本號與本地固件版本號相同的升級固件版本號,當獲取到產(chǎn)品型號、主版本號及子版本號與本地固件版本號相同的升級固件版本號時,ftp服務器將升級固件版本號發(fā)送至pos機,pos機顯示升級固件版本號,以供用戶選擇。如果沒有獲取到與本地固件版本號相同的升級固件版本號,ftp服務器發(fā)送升級失敗提醒至pos機,提醒用戶當前無升級版本,升級失敗。
具體地,pos機通過ftp的控制連接向ftp服務器發(fā)送“abcd_vxy.mn.*”的ftp命令,同時pos機建立一個數(shù)據(jù)socket連接,這個socket連接到ftp服務器的數(shù)據(jù)連接端口(一般是20)。ftp服務器如果返回一個150的結(jié)果碼,說明pos機與ftp服務器之間的數(shù)據(jù)連接已經(jīng)建立成功。如果中間ftp服務器返回其他錯誤的結(jié)果碼,則pos機關(guān)閉pos機與ftp服務器的數(shù)據(jù)socket連接,并重新建立數(shù)據(jù)socket連接。在ftp服務器返回150結(jié)果碼之后,ftp服務器會向pos機返回list命令的結(jié)果,這個結(jié)果就是ftp服務器上無線通訊模塊固件版本號的所有結(jié)果,該結(jié)果包含無線通訊模塊的具體的升級固件版本號,包括固件版本的產(chǎn)品型號,固件版本的主版本號,固件版本的子版本號和固件版本的流水號,以及無線通訊模塊固件的具體文件大小。在ftp服務器返回無線通訊模塊固件版本信息的結(jié)果后,pos機會收到ftp服務器的226結(jié)果碼,提示數(shù)據(jù)傳輸已經(jīng)完成,此時,需要關(guān)閉pos機與ftp服務器之間的數(shù)據(jù)socket連接,如果中間ftp服務器返回其他錯誤的結(jié)果碼,則pos機關(guān)閉pos機與ftp服務器的數(shù)據(jù)socket連接,并重新建立數(shù)據(jù)socket連接。pos機接收到ftp服務器的226結(jié)果碼,關(guān)閉與ftp服務器的數(shù)據(jù)socket連接后,將ftp服務器返回的無線通訊模塊的升級固件版本號顯示到屏幕上,進一步的,還可以同時顯示每個固件文件的大小。
更進一步地,為了確保接收到的升級固件版本號正確,避免因升級固件版本號錯誤而導致升級失敗,影響升級效率,pos機進一步對接收到的升級固件版本號進行匹配校驗,pos將本地固件版本號與接收到的ftp服務器返回的查詢結(jié)果進行比較,對比固件版本的產(chǎn)品型號,固件版本的主版本號,固件版本的子版本號,如果這三個版本號比較結(jié)果相同,則升級固件版本號與本地固件版本號匹配,pos機在屏幕上顯示在ftp服務器返回的升級固件版本號。
5)、獲取對升級固件版本號的選中指令,從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件。
具體地,pos顯示升級固件版本號后,用戶可根據(jù)需要選取相應的升級固件版本對無線通訊模塊進行固件升級,既可以將無線通訊模塊升級到最新版本,也可以將無線通訊模塊升級到某一特定版本,用戶只要輸入對要選取的升級固件版本號的選中指令即可,操作非常方便。pos機獲取到用戶對升級固件版本號的選中指令后,發(fā)送攜帶升級固件版本號的下載請求至ftp服務器,從ftp服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件。
進一步地,pos機建立與ftp服務器的數(shù)據(jù)連接并下載無線模塊的升級固件版本的具體步驟為:pos機通過ftp的控制連接向ftp服務器發(fā)送“retr文件名”ftp命令的下載請求,其中文件名為用戶選擇好的升級固件版本號,同時pos機建立一個數(shù)據(jù)socket連接,這個socket連接到ftp服務器的數(shù)據(jù)連接端口(一般是20)。ftp服務器接收到下載請求后獲取升級版本號對應的無線通訊模塊固件文件,返回一個結(jié)果碼至pos機。如果ftp服務器返回一個150的結(jié)果碼,表示pos機與ftp服務器之間的數(shù)據(jù)連接已經(jīng)建立成功,如果中間ftp服務器返回其他錯誤的結(jié)果碼,則pos機關(guān)閉pos機與ftp服務器的數(shù)據(jù)socket連接,并重新建立數(shù)據(jù)socket連接。在ftp服務器返回150結(jié)果碼之后,ftp服務器會向pos機返回retr命令的結(jié)果,這個結(jié)果就是ftp服務器上存儲的升級固件版本號對應的無線通訊模塊固件版本的文件內(nèi)容,該文件內(nèi)容就是pos機實際需要的無線通訊模塊固件的升級數(shù)據(jù)。pos機將ftp服務器傳過來的固件文件的數(shù)據(jù)流保存到本地flash中,如果保存成功,可顯示升級的進度。如果中間ftp服務器返回其他錯誤的結(jié)果碼,則pos機關(guān)閉pos機與ftp服務器的數(shù)據(jù)socket連接,并重新建立數(shù)據(jù)socket連接。pos機完成固件文件下載完成之后,ftp服務器會向pos機返回226的結(jié)果碼,表示固件版本文件已經(jīng)下載完成,這個時候pos機關(guān)閉pos機與ftp服務器的數(shù)據(jù)socket連接,無線通訊模塊固件文件下載完成。
6)、檢測下載的無線通訊模塊固件文件與服務器上存儲的對應的無線通訊模塊固件文件是否相同,當下載的無線通訊模塊固件文件與服務器上存儲的對應的無線通訊模塊固件文件不同時,重新下載固件文件。
具體地,無線通訊模塊固件文件下載完成后,pos機計算本地flash中文件的大小,并與ftp服務器中的無線通訊模塊固件的文件大小相比較,如果文件大小不一致,則可能出現(xiàn)數(shù)據(jù)丟失或數(shù)據(jù)重復,下載失敗,pos重新建立與ftp服務器的控制連接socket和數(shù)據(jù)連接socket并重新下載無線通訊模塊固件文件。
如果本地文件大小與ftp服務器中的文件大小相同,下載成功,則進一步比較本地下載的文件和ftp服務器文件是否有差異,如果校驗成功,則表示下載的文件完全正確,可以進行升級。在一個實施例中,采用哈希校驗方式校驗下載的文件是否完全正確,具體校驗的方式如下:pos機與ftp服務器使用一個相同的秘鑰計算ftp服務器上固件文件的哈希值和本地下載的固件文件的哈希值,先將ftp服務器上的文件通過一個哈希算法計算成一個20位字符串的哈希值。pos機本地下載完成之后,再使用該秘鑰重新計算本地文件的哈希值。如果pos機本地計算的哈希值跟ftp服務器上面計算的哈希值相同,則表示pos機本機文件與ftp服務器上的文件完全相同,可以進行升級。需要說明的是,本實施例中采用哈希校驗方式校驗下載的文件是否完全正確,但是,在其他實施例中,也可以用其他的方式校驗,如,奇偶校驗算法、海明碼校驗算法等,本實施例并不做具體限定。
進一步的,如果哈希值校驗成功,pos機則通過ftp控制連接向ftp服務器發(fā)送“quit”命令,終止pos機與ftp服務器之間的控制連接,pos機在收到ftp服務器的221結(jié)果碼之后,關(guān)閉控制socket連接,釋放網(wǎng)絡資源,并執(zhí)行后續(xù)升級操作。如果哈希值校驗失敗,pos機則重新從服務器下載無線通訊模塊固件文件。
7)、檢測從服務器上下載無線通訊模塊固件文件發(fā)生中斷,當從服務器上下載無線通訊模塊固件文件發(fā)生中斷時,計算下載偏移量發(fā)送至服務器;接收服務器返回的下載偏移量確認指令,繼續(xù)下載無線通訊模塊固件文件。
具體地,如果pos機中間下載出錯,或者下載過程中出現(xiàn)網(wǎng)絡故障或突然掉電等情況,pos機計算已經(jīng)下載到本地flash的文件大小,將本地flash的文件大小設置為下載偏移量,然后向ftp服務器發(fā)送“rest偏移量”命令,進行ftp續(xù)傳。具體步驟如下:pos機通過ftp的控制連接向ftp服務器發(fā)送“rest偏移量”的ftp命令,ftp服務器如果返回一個350的結(jié)果碼,則表示偏移量已經(jīng)設置成功,接著pos機通過ftp的控制連接繼續(xù)向ftp服務器發(fā)送“retr文件名”的ftp命令,其中文件名為上次下載失敗保存在本地flash中的升級固件版本號,同時pos機建立一個數(shù)據(jù)socket連接,這個socket連接到ftp服務器的數(shù)據(jù)連接端口(一般是20),ftp服務器如果返回一個150的結(jié)果碼,說明pos機與ftp服務器之間的數(shù)據(jù)連接已經(jīng)建立成功,則pos機接著斷點繼續(xù)下載固件文件。
8)、將下載的無線通訊模塊固件文件部署到無線通訊模塊中。
具體地,當無線模塊的固件文件完全下載成功后,pos機通過本機的升級命令,解析下載的無線通訊模塊固件文件,運行固件安裝程序,給無線通訊模塊進行固件升級。進一步地,當完成部署無線通訊模塊進行固件升級后,pos機刪除已下載的固件版本文件,以避免固件文件占用pos機存儲空間,影響pos運行速度。
請參閱圖4,一種pos機無線通訊模塊固件升級裝置400,包括:
查詢請求生成模塊402,用于獲取pos機無線通訊模塊的本地固件版本號,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至服務器。
顯示模塊404,用于接收服務器返回的服務器中存儲的與本地固件版本號相匹配的升級固件版本號,顯示升級固件版本號。
固件下載模塊406,用于獲取對升級固件版本號的選中指令,從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件。
升級部署模塊408,用于將下載的無線通訊模塊固件文件部署到無線通訊模塊中。
如圖5所示,在一個實施例中,上述pos機無線通訊模塊固件升級裝置400還包括:
固件校驗模塊410,用于檢測下載的無線通訊模塊固件文件與服務器上存儲的對應的無線通訊模塊固件文件是否相同;當下載的無線通訊模塊固件文件與服務器上存儲的對應的無線通訊模塊固件文件不同時,發(fā)送下載指令至固件下載模塊406;固件下載模塊406根據(jù)下載指令重新從服務器下載無線通訊模塊固件文件。
在一個實施例中,上述pos機無線通訊模塊固件升級裝置400還包括:
偏移量計算模塊412,用于當從服務器上下載無線通訊模塊固件文件發(fā)生中斷時,計算下載偏移量發(fā)送至服務器;固件下載模塊406還用于接收服務器返回的下載偏移量確認指令,繼續(xù)下載無線通訊模塊固件文件。
在一個實施例中,上述pos機無線通訊模塊固件升級裝置400還包括:
狀態(tài)檢測模塊414,用于檢測pos機的工作狀態(tài);當pos機處于空閑狀態(tài)時,發(fā)送查詢指令至查詢請求生成模塊402。
請參閱圖6,一種pos機無線通訊模塊固件升級裝置600,包括:
查詢請求接收模塊602,用于接收終端發(fā)送的固件版本查詢請求,根據(jù)固件版本查詢請求獲取pos機無線通訊模塊的本地固件版本號。
查詢匹配模塊604,用于根據(jù)本地固件版本號查詢已存儲的無線通訊模塊固件的升級固件版本號;當查詢到與本地固件版本號相匹配的升級固件版本號時,發(fā)送與本地固件版本號相匹配的升級固件版本號至終端。
下載請求接收模塊606,用于接收終端發(fā)送的下載請求,下載請求攜帶升級固件版本號。
固件文件發(fā)送模塊608,用于獲取升級固件版本號對應的無線通訊模塊固件文件,發(fā)送無線通訊模塊固件文件至終端。
一種pos機,包括:存儲器、處理器及存儲在存儲器上并可在處理器上運行的pos機應用程序,處理器執(zhí)行pos機應用程序時實現(xiàn)以下步驟:
獲取pos機無線通訊模塊的本地固件版本號,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至服務器;
接收服務器返回的服務器中存儲的與本地固件版本號相匹配的升級固件版本號,顯示升級固件版本號;
獲取對升級固件版本號的選中指令,從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件;
將下載的無線通訊模塊固件文件部署到無線通訊模塊中。
具體地,如圖7所示,在一個實施例中,上述的pos機包括通過系統(tǒng)總線連接的處理器和存儲器,存儲器包括非易失性存儲介質(zhì)和內(nèi)存儲器。其中,pos機的非易失性存儲介質(zhì)存儲有操作系統(tǒng),還包括一種pos機無線通訊模塊固件升級裝置。pos機無線通訊模塊固件升級裝置用于實現(xiàn)一種pos機無線通訊模塊固件升級方法。在一個實施例中,處理器為pos機cpu,用于提供計算和控制能力,支撐整個pos機的運行。pos機中的內(nèi)存儲器為非易失性存儲介質(zhì)中的pos機無線通訊模塊固件升級裝置的運行提供環(huán)境,該內(nèi)存儲器中可儲存有計算機可讀指令,該計算機可讀指令被處理器執(zhí)行時,可使得處理器執(zhí)行一種pos機無線通訊模塊固件升級方法。本領(lǐng)域技術(shù)人員可以理解,圖7中示出的結(jié)構(gòu),僅僅是與本申請方案相關(guān)的部分結(jié)構(gòu)的框圖,并不構(gòu)成對本申請方案所應用于其上的pos機的限定,具體的pos機可以包括比圖中所示更多或更少的部件,或者組合某些部件,或者具有不同的部件布置。
在一個實施例中,處理器執(zhí)行pos機應用程序時還實現(xiàn)以下步驟:
檢測下載的無線通訊模塊固件文件與服務器上存儲的對應的無線通訊模塊固件文件是否相同;
當下載的無線通訊模塊固件文件與服務器上存儲的對應的無線通訊模塊固件文件不同時,執(zhí)行從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件的步驟。
在一個實施例中,處理器執(zhí)行pos機應用程序時實現(xiàn)以下步驟:
當從服務器上下載無線通訊模塊固件文件發(fā)生中斷時,計算下載偏移量發(fā)送至服務器;
接收服務器返回的下載偏移量確認指令,繼續(xù)下載無線通訊模塊固件文件。
在一個實施例中,處理器執(zhí)行pos機應用程序時實現(xiàn)以下步驟:
檢測pos機的工作狀態(tài);
當pos機處于空閑狀態(tài)時,執(zhí)行獲取pos機無線通訊模塊的本地固件版本號,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至服務器的步驟。
一種pos機可讀存儲介質(zhì),其上存儲有pos機應用程序,該pos機應用程序被處理器執(zhí)行時實現(xiàn)以下步驟:
獲取pos機無線通訊模塊的本地固件版本號,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至服務器;
接收服務器返回的服務器中存儲的與本地固件版本號相匹配的升級固件版本號,顯示升級固件版本號;
獲取對升級固件版本號的選中指令,從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件;
將下載的無線通訊模塊固件文件部署到無線通訊模塊中。
在一個實施例中,該pos機應用程序被處理器執(zhí)行時還實現(xiàn)以下步驟:
檢測下載的無線通訊模塊固件文件與服務器上存儲的對應的無線通訊模塊固件文件是否相同;
當下載的無線通訊模塊固件文件與服務器上存儲的對應的無線通訊模塊固件文件不同時,執(zhí)行從服務器上下載與獲取到選中指令的升級固件版本號對應的無線通訊模塊固件文件的步驟。
在一個實施例中,該pos機應用程序被處理器執(zhí)行時還實現(xiàn)以下步驟:
當從服務器上下載無線通訊模塊固件文件發(fā)生中斷時,計算下載偏移量發(fā)送至服務器;
接收服務器返回的下載偏移量確認指令,繼續(xù)下載無線通訊模塊固件文件。
在一個實施例中,該pos機應用程序被處理器執(zhí)行時還實現(xiàn)以下步驟:
檢測pos機的工作狀態(tài);
當pos機處于空閑狀態(tài)時,執(zhí)行獲取pos機無線通訊模塊的本地固件版本號,根據(jù)本地固件版本號生成固件版本查詢請求發(fā)送至服務器的步驟。
以上所述實施例的各技術(shù)特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術(shù)特征所有可能的組合都進行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。
以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發(fā)明專利范圍的限制。應當指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應以所附權(quán)利要求為準。