一種自助設備硬件管理方法和裝置的制造方法
【技術領域】
[0001] 本發明涉及自助設備控制技術領域,尤其涉及一種自助設備硬件管理方法和裝 置。
【背景技術】
[0002] 對自助終端設備模塊的通信控制一般采用串口或USB進行,一個模塊通常只會通 過一條通信線路進行連接控制,這就導致了不同應用程序對設備的控制從物理上只能排他 互斥地訪問。而在實際的應用場景中,通常會有多個應用程序需要對同一模塊進行控制,比 如兩個應用程序都需要控制機芯,其中一個應用程序進行出鈔、另外一個應用程序進行獲 取機芯的設備狀態,為了滿足這種場景的需求,目前,國內外通常的做法是:為一個模塊開 發一個硬件設備控制DLL(動態鏈接庫),不同應用程序分別加載該DLL的不同實例完成對 設備的獨占訪問控制,當需要多個應用程序訪問該設備時,需要一個應用程序完成控制后 退出對設備鏈路的占用,然后由另一個應用程序獲得設備鏈路的占用后進行控制。
[0003] 這樣的處理會存在如下問題:1、降低應用程序對設備控制的效率。兩個應用需要 不斷地獲取、釋放鏈路,耗費鏈路資源,浪費處理時間。2、兩個應用程序不能同時共存,降低 用戶對自助終端設備的體驗。
【發明內容】
[0004] 本發明實施例提供了一種自助設備硬件管理方法和裝置,能夠解決現有技術無法 實現兩個應用程序同時共存,導致需要同時完成兩個應用程序功能的應用場景無法實現, 降低對設備硬件控制效率的技術問題。
[0005] 本發明實施例提供的一種自助設備硬件管理方法,包括:
[0006] 在運行應用程序時,獲取所述應用程序所需調用的設備和端口;
[0007] 判斷是否存在已有實例調用所述所需調用的設備和端口,若是,則根據所述應用 程序和所述已有實例控制設備,若否,則作進一步判斷;
[0008] 所述進一步判斷為:判斷所述應用程序所需調用的端口是否被占用,若是,則控制 所述應用程序重新分配所需調用的端口,若否,則根據所述應用程序所需調用的設備和端 口新建一個實例;
[0009] 根據所述應用程序和新建的實例控制設備。
[0010] 可選地,在根據所述應用程序和所述已有實例控制設備之前,所述已有實例的引 用計數加1 ;
[0011] 在根據所述應用程序和新建的實例控制設備之前,所述新建的實例的引用計數加 1 ;
[0012] 當所述應用程序退出控制所述設備時,對應實例的引用計數減1 ;
[0013] 當實例的引用計數為0時,刪除所述實例。
[0014] 可選地,在根據所述應用程序所需調用的設備和端口新建一個實例之后,將新建 的實例的實例信息保存到預設的設備實例表中,所述實例信息包括所述新建的實例所調用 設備的設備名、所調用端口的端口號、對應的引用計數和所調用設備的設備狀態信息。
[0015] 可選地,實時獲取設備的設備狀態信息,并將所述設備狀態信息更新至所述設備 實例表;
[0016] 當需要獲取所述應用程序控制的設備的設備狀態信息時,從所述設備實例表中獲 取并返回所述設備狀態信息。
[0017] 可選地,當根據應用程序控制設備時,根據獲取到的所述設備的設備狀態信息判 斷所述設備是否處于正常狀態,若是,則不進行設備的初始化操作,直接控制所述設備工 作。
[0018] 本發明實施例提供的一種自助設備硬件管理裝置,包括:
[0019] 第一獲取模塊,用于在運行應用程序時,獲取所述應用程序所需調用的設備和端 P;
[0020] 已有實例判斷模塊,用于判斷是否存在已有實例調用所述所需調用的設備和端 P;
[0021] 第一控制模塊,用于當所述已有實例判斷模塊的判斷結果為是時,根據所述應用 程序和所述已有實例控制設備;
[0022] 端口占用判斷模塊,用于當所述已有實例判斷模塊的判斷結果為否時,判斷所述 應用程序所需調用的端口是否被占用;
[0023] 重分配模塊,用于當所述端口占用判斷模塊的判斷結果為是時,控制所述應用程 序重新分配所需調用的端口;
[0024] 新建實例模塊,用于當所述端口占用判斷模塊的判斷結果為否時,則根據所述應 用程序所需調用的設備和端口新建一個實例;
[0025] 第二控制模塊,用于根據所述應用程序和新建的實例控制設備。
[0026] 可選地,所述裝置包括:
[0027] 第一引用計數模塊,用于在所述第一控制模塊根據所述應用程序和所述已有實例 控制設備之前,所述已有實例的引用計數加1 ;
[0028] 第二引用計數模塊,用于在所述第二控制模塊根據所述應用程序和新建的實例控 制設備之前,所述新建的實例的引用計數加1 ;
[0029] 第三引用計數模塊,用于當所述應用程序退出控制所述設備時,對應實例的引用 計數減1 ;
[0030] 實例刪除模塊,用于當實例的引用計數為0時,刪除所述實例。
[0031] 可選地,所述裝置包括:
[0032] 實例信息保存模塊,用于在所述新建實例模塊根據所述應用程序所需調用的設備 和端口新建一個實例之后,將新建的實例的實例信息保存到預設的設備實例表中,所述實 例信息包括所述新建的實例所調用設備的設備名、所調用端口的端口號、對應的引用計數 和所調用設備的設備狀態信息。
[0033] 可選地,所述裝置包括:
[0034] 狀態信息更新模塊,用于實時獲取設備的設備狀態信息,并將所述設備狀態信息 更新至所述設備實例表;
[0035] 狀態信息獲取模塊,用于當需要獲取所述應用程序控制的設備的設備狀態信息 時,從所述設備實例表中獲取并返回所述設備狀態信息。
[0036] 可選地,所述裝置包括:
[0037] 設備狀態判斷模塊,用于當所述第一控制模塊或所述第二控制模塊根據應用程序 控制設備時,根據獲取到的所述設備的設備狀態信息判斷所述設備是否處于正常狀態;
[0038] 直接控制模塊,用于當所述設備狀態判斷模塊的判斷結果為是時,則不進行設備 的初始化操作,直接控制所述設備工作。
[0039] 從以上技術方案可以看出,本發明實施例具有以下優點:
[0040] 本發明實施例中,首先,在運行應用程序時,獲取所述應用程序所需調用的設備和 端口;然后,判斷是否存在已有實例調用所述所需調用的設備和端口,若是,則根據所述應 用程序和所述已有實例控制設備,若否,則作進一步判斷;接著進一步判斷所述應用程序所 需調用的端口是否被占用,若是,則控制所述應用程序重新分配所需調用的端口,若否,則 根據所述應用程序所需調用的設備和端口新建一個實例;最后,根據所述應用程序和新建 的實例控制設備。在本發明實施例中,該自助設備硬件管理方法可以解決現有技術無法實 現兩個應用程序同時共存,導致需要同時完成兩個應用程序功能的應用場景無法實現,降 低對設備硬件控制效率的技術問題。
【附圖說明】
[0041] 圖1為本發明實施例中一種自助設備硬件管理方法一個實施例流程圖;
[0042] 圖2為本發明實施例中一種自助設備硬件管理方法另一個實施例流程圖;
[0043] 圖3為本發明實施例中一種自助設備硬件管理裝置一個實施例結構圖;
[0044] 圖4為本發明實施例中一種自助設備硬件管理裝置另一個實施例結構圖。
【具體實施方式】
[0045] 本發明實施例提供了一種自助設備硬件管理方法和裝置,用于解決現有技術無法 實現兩個應用程序同時共存,導致需要同時完成兩個應用程序功能的應用場景無法實現, 降低對設備硬件控制效率的技術問題。
[0046] 為使得本發明的發明目的、特征、優點能夠更加的明顯和易懂,下面將結合本發明 實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,下面所描述 的實施例僅僅是本發明一部分實施例,而非全部的實施例。基于本發明中的實施例,本領域 普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它實施例,都屬于本發明保護 的范圍。
[0047] 請參閱圖1,本發明實施例中一種自助設備硬件管理方法一個實施例包括:
[0048] 101、在運行應用程序時,獲取該應用程序所需調用的設備和端口;
[0049] 首先,在運行應用程序時,可以獲取該應用程序所需調用的設備和端口。
[0050] 102、判斷是否存在已有實例調用該所需調用的設備和端口,若是,則執行步驟 103,若否,則執行步驟104;
[0051] 在運行應用程序時,獲取該應用程序所需調用的設備和端口之后,可以判斷是 否存在已有實例調用該所需調用的設備和端口,若是,則執行步驟103,若否,則執行步