應(yīng)的輸入設(shè)備的輸入數(shù)據(jù)。
[0113] 步驟501具體包括:
[0114] 步驟5011 :上層應(yīng)用獲取外部輸入的設(shè)備索引信息,向校準(zhǔn)應(yīng)用發(fā)送設(shè)備索引信 息;
[0115] 步驟5012 :校準(zhǔn)應(yīng)用根據(jù)設(shè)備文件名稱和設(shè)備索引信息的對應(yīng)關(guān)系,獲取與設(shè)備 索引信息對應(yīng)的設(shè)備文件名稱,根據(jù)設(shè)備文件名稱獲取與設(shè)備文件名稱對應(yīng)的設(shè)備文件描 述符,根據(jù)設(shè)備文件描述符獲取對應(yīng)的輸入設(shè)備的輸入數(shù)據(jù),將對應(yīng)的輸入設(shè)備的輸入數(shù) 據(jù)返回給上層應(yīng)用,結(jié)束。
[0116] 本實施例中,步驟5012中校準(zhǔn)應(yīng)用獲取與設(shè)備索引信息對應(yīng)的設(shè)備文件名稱之 后,根據(jù)設(shè)備文件名稱獲取與設(shè)備文件名稱對應(yīng)的設(shè)備文件描述符之前,
[0117] 還包括校準(zhǔn)應(yīng)用判斷是否獲取到與設(shè)備索引信息對應(yīng)的設(shè)備文件名稱,如果是, 則繼續(xù);否則,向上層應(yīng)用返回錯誤信息。
[0118] 步驟501還可以具體包括:
[0119] 步驟5013 :上層應(yīng)用獲取外部輸入的設(shè)備索引信息,向校準(zhǔn)應(yīng)用發(fā)送設(shè)備索引信 息;
[0120] 步驟5014 :校準(zhǔn)應(yīng)用根據(jù)設(shè)備文件名稱和設(shè)備索引信息的對應(yīng)關(guān)系,獲取與設(shè)備 索引信息對應(yīng)的設(shè)備文件名稱,將與設(shè)備索引信息對應(yīng)的設(shè)備文件名稱返回給上層應(yīng)用;
[0121] 步驟5015 :上層應(yīng)用根據(jù)與設(shè)備索引信息對應(yīng)的設(shè)備文件名稱獲取與設(shè)備文件 名稱對應(yīng)的設(shè)備文件描述符,根據(jù)與設(shè)備文件名稱對應(yīng)的設(shè)備文件描述符獲取對應(yīng)的輸入 設(shè)備的輸入數(shù)據(jù),結(jié)束。
[0122] 步驟5014中,校準(zhǔn)應(yīng)用獲取與設(shè)備索引信息對應(yīng)的設(shè)備文件名稱之后,將與設(shè)備 索引信息對應(yīng)的設(shè)備文件名稱返回給上層應(yīng)用之前,還包括:校準(zhǔn)應(yīng)用判斷是否獲取到與 設(shè)備索引信息對應(yīng)的設(shè)備文件名稱,如果是,則繼續(xù);否則,向上層應(yīng)用返回錯誤信息。
[0123] 本實施例中例如,當(dāng)輸入設(shè)備為掃碼槍時,在輸入設(shè)備上電后,校準(zhǔn)應(yīng)用獲取與主 機連接的三個掃碼槍的設(shè)備文件名稱分別為eventO、eventl和event2,校準(zhǔn)應(yīng)用根據(jù)設(shè)備 文件名稱分別打開設(shè)備文件名稱eventO、eventl和event2的掃碼槍的設(shè)備文件,分別獲取 設(shè)備文件名稱eventO、eventl和event2的掃碼槍的設(shè)備文件對應(yīng)的設(shè)備文件描述符fdO、 fdl和fd2。當(dāng)三個掃碼槍分別通過掃碼獲取到設(shè)備索引信息,例如0、1和2后,校準(zhǔn)應(yīng)用 根據(jù)設(shè)備文件描述符fdo、fdl和fd2,分別通過對應(yīng)的掃碼槍的設(shè)備文件中的外部輸入信 息獲取設(shè)備索引信息〇、1和2,將設(shè)備索引信息0、1和2和eventO、eventl和event2建立 對應(yīng)關(guān)系并保存。
[0124] 當(dāng)校準(zhǔn)應(yīng)用獲取到上層應(yīng)用發(fā)送的設(shè)備索引信息0、1和2時,根據(jù)設(shè)備索引信息 0、1和2獲取到對應(yīng)的設(shè)備文件名稱eventO、eventl和event2,將eventO、eventl和event2 返回給上層應(yīng)用,上層應(yīng)用根據(jù)與設(shè)備索引信息〇、1和2對應(yīng)的設(shè)備文件名稱eventO、 eventl和event2獲取對應(yīng)的掃碼槍通過掃碼得到的輸入數(shù)據(jù)。例如,序列號信息等。
[0125] 或者當(dāng)校準(zhǔn)應(yīng)用獲取到上層應(yīng)用發(fā)送的設(shè)備索引信息0、1和2時,根據(jù)設(shè)備索引 信息0、1和2獲取到對應(yīng)的設(shè)備文件名稱eventO、eventl和event2,校準(zhǔn)應(yīng)用根據(jù)與設(shè) 備索引信息〇、1和2對應(yīng)的設(shè)備文件名稱eventO、eventl和event2獲取對應(yīng)的掃碼槍通 過掃碼得到的輸入數(shù)據(jù),將獲取到的對應(yīng)的掃碼槍通過掃碼得到的輸入數(shù)據(jù)返回給上層應(yīng) 用。例如,將獲取到的對應(yīng)的掃碼槍通過掃碼得到的序列號信息等返回給上層應(yīng)用。
[0126] 需要說明的是,本實施例還提供了一種將設(shè)備索引信息和設(shè)備文件描述符建立對 應(yīng)關(guān)系的方法,相應(yīng)地,本實施例中,步驟408還可以替換為步驟601 ;
[0127] 步驟601 :校準(zhǔn)應(yīng)用在與設(shè)備文件名稱對應(yīng)的線程中,將外部輸入信息作為設(shè)備 索引信息,將設(shè)備索引信息和設(shè)備文件描述符建立對應(yīng)關(guān)系并保存。
[0128] 例如:校準(zhǔn)應(yīng)用在與設(shè)備文件名稱event2對應(yīng)的線程中,將設(shè)備索引信息2和設(shè) 備文件描述符fd2對應(yīng)的存儲到維護表2中。
[0129] 本實施例中,校準(zhǔn)應(yīng)用將設(shè)備文件描述符fdO和設(shè)備索引信息0,以及將設(shè)備文件 描述符fdl和設(shè)備索引信息1建立對應(yīng)關(guān)系并保存的方法同上述方法,本實施例中,不再贅 述。
[0130] 本實施實例中,步驟601之后,校準(zhǔn)應(yīng)用得到的維護表2可以如下所示:
[0131]
[0132] 維護表2
[0133] 本實施例還提供了一種根據(jù)設(shè)備索引信息和設(shè)備文件描述符的對應(yīng)關(guān)系獲取來 自輸入設(shè)備的輸入數(shù)據(jù)的方法,相應(yīng)地,步驟501被替換為步驟701 ;
[0134] 步驟701 :上層應(yīng)用獲取外部輸入的設(shè)備索引信息,根據(jù)設(shè)備索引信息與設(shè)備文 件描述符的對應(yīng)關(guān)系,獲取與設(shè)備文件描述符對應(yīng)的輸入設(shè)備的輸入數(shù)據(jù)。
[0135] 步驟701具體包括:
[0136] 步驟7011 :上層應(yīng)用獲取外部輸入的設(shè)備索引信息,向校準(zhǔn)應(yīng)用發(fā)送設(shè)備索引信 息;
[0137] 步驟7012 :校準(zhǔn)應(yīng)用根據(jù)設(shè)備文件名稱和設(shè)備索引信息的對應(yīng)關(guān)系,獲取與設(shè)備 索引信息對應(yīng)的設(shè)備文件描述符,根據(jù)設(shè)備文件描述符獲取對應(yīng)的輸入設(shè)備的輸入數(shù)據(jù), 將對應(yīng)的輸入設(shè)備的輸入數(shù)據(jù)返回給上層應(yīng)用,結(jié)束。
[0138] 本實施例中,步驟7012中校準(zhǔn)應(yīng)用獲取與設(shè)備索引信息對應(yīng)的設(shè)備文件描述符 之后,根據(jù)設(shè)備文件描述符獲取對應(yīng)的輸入設(shè)備的輸入數(shù)據(jù)之前,
[0139] 還包括校準(zhǔn)應(yīng)用判斷是否獲取到與設(shè)備索引信息對應(yīng)的設(shè)備文件描述符,如果 是,則繼續(xù);否則,向上層應(yīng)用返回錯誤信息。
[0140] 步驟701還可以具體包括:
[0141] 步驟7013 :上層應(yīng)用獲取外部輸入的設(shè)備索引信息,向校準(zhǔn)應(yīng)用發(fā)送設(shè)備索引信 息;
[0142] 步驟7014 :校準(zhǔn)應(yīng)用根據(jù)設(shè)備文件描述符和設(shè)備索引信息的對應(yīng)關(guān)系,獲取與設(shè) 備索引信息對應(yīng)的設(shè)備文件描述符,將與設(shè)備索引信息對應(yīng)的設(shè)備文件描述符返回給上層 應(yīng)用;
[0143] 步驟7015 :上層應(yīng)用根據(jù)與設(shè)備索引信息對應(yīng)的設(shè)備文件描述符,獲取對應(yīng)的輸 入設(shè)備的輸入數(shù)據(jù),結(jié)束。
[0144] 步驟7014中,校準(zhǔn)應(yīng)用獲取與設(shè)備索引信息對應(yīng)的設(shè)備文件描述符之后,將與設(shè) 備索引信息對應(yīng)的設(shè)備文件描述符返回給上層應(yīng)用之前,還包括校準(zhǔn)應(yīng)用判斷是否獲取到 與設(shè)備索引信息對應(yīng)的設(shè)備文件描述符,如果是,則繼續(xù);否則,向上層應(yīng)用返回錯誤信息。
[0145] 本實施例中又例如,當(dāng)輸入設(shè)備是掃碼槍時,在輸入設(shè)備上電后,校準(zhǔn)應(yīng)用獲取與 主機連接的三個掃碼槍的設(shè)備文件名稱分別為eventO、eventl和event2,校準(zhǔn)應(yīng)用根據(jù)設(shè) 備文件名稱分別打開設(shè)備文件名稱eventO、eventl和event2的掃碼槍的設(shè)備文件,分別 獲取設(shè)備文件名稱eventO、eventl和event2的掃碼槍的設(shè)備文件對應(yīng)的設(shè)備文件描述符 fdO、fdl和fd2。當(dāng)三個掃碼槍分別通過掃碼獲取到設(shè)備索引信息,例如0、1和2,校準(zhǔn)應(yīng) 用根據(jù)設(shè)備文件描述符fdO、fdl和fd2,分別通過對應(yīng)的掃碼槍的設(shè)備文件中的外部輸入 信息獲取設(shè)備索引信息〇、1和2,將設(shè)備索引信息0、1和2和fdO、fdl和fd2建立對應(yīng)關(guān) 系并保存。
[0146] 當(dāng)校準(zhǔn)應(yīng)用獲取到上層應(yīng)用發(fā)送的設(shè)備索引信息0、1和2時,根據(jù)設(shè)備索引信息 0、1和2獲取到對應(yīng)的設(shè)備文件描述符fdO、fdl和fd2,將fdO、fdl和fd2返回給上層應(yīng) 用,上層應(yīng)用根據(jù)與設(shè)備索引信息〇、1和2對應(yīng)的設(shè)備文件描述符fdO、fdl和fd2獲取對 應(yīng)的掃碼槍通過掃碼得到的輸入數(shù)據(jù),例如,序列號信息等。
[0147] 或者當(dāng)校準(zhǔn)應(yīng)用獲取到上層應(yīng)用發(fā)送的設(shè)備索引信息0、1和2時,根據(jù)設(shè)備索引 信息0、1和2獲取到對應(yīng)的設(shè)備文件描述符fdO、fdl和fd2,校準(zhǔn)應(yīng)用根據(jù)與設(shè)備索引信 息0、1和2對應(yīng)的設(shè)備文件描述符fd0、fdl和fd2獲取對應(yīng)的掃碼槍通過掃碼得到的輸入 數(shù)據(jù),將獲取到的對應(yīng)的掃碼槍通過掃碼得到的輸入數(shù)據(jù)返回給上層應(yīng)用。例如,將獲取到 的對應(yīng)的掃碼槍通過掃碼得到的序列號信息等返回給上層應(yīng)用。
[0148] 實施例3
[0149] 本實施例提供了一種獲取來自輸入設(shè)備的輸入數(shù)據(jù)的裝置,如圖3所示,包括:
[0150] 第一獲取模塊01,用于獲取與主機連接的多個輸入設(shè)備的設(shè)備文件名稱;
[0151] 觸發(fā)模塊02,用于當(dāng)?shù)谝猾@取模塊01獲取與主機連接的多個輸入設(shè)備的設(shè)備文 件名稱之后,分別根據(jù)設(shè)備文件名稱,觸發(fā)第二獲取模塊03 ;
[0152] 觸發(fā)模塊02具體用于當(dāng)?shù)谝猾@取模塊01獲取與主機連接的多個輸入設(shè)備的設(shè)備 文件名稱之后,分別根據(jù)與主機連接的每個輸入設(shè)備的設(shè)備文件名稱,為每一個輸入設(shè)備 創(chuàng)建線程,在每一線程中觸發(fā)第二獲取模塊03。
[0153] 第二獲取模塊03,用于獲取設(shè)備文件描述符;
[0154] 第二獲取模塊03具體用于根據(jù)輸入設(shè)備的設(shè)備文件名稱打開與設(shè)備文件名稱對 應(yīng)的設(shè)備文件,獲取設(shè)備文件的設(shè)備文件描述符。
[0155] 第三獲取模塊04,用于當(dāng)?shù)诙@取模塊03根據(jù)輸入設(shè)備的設(shè)備文件名稱獲取設(shè) 備文件描述符之后,根據(jù)設(shè)備文件描述符等待獲取設(shè)備索引信息;
[0156] 第三獲取模塊04,具體用于當(dāng)?shù)诙@取模塊03根據(jù)輸入設(shè)備的設(shè)備文件名稱獲 取設(shè)備文件描述符之后,根據(jù)設(shè)備文件描述符等待獲取來自輸入設(shè)備的設(shè)備索引信息。
[0157] 第三獲取模塊04,包括:第一獲取單元、第一判斷單元和第一設(shè)置單元;
[0158] 第一獲取單元用于當(dāng)?shù)诙@取模塊03根據(jù)輸入設(shè)備的設(shè)備文件名稱獲取設(shè)備文 件描述符之后,根據(jù)設(shè)備文件描述符等待獲取設(shè)備文件信息;
[0159] 以及當(dāng)?shù)谝慌袛鄦卧袛喑鲈O(shè)備文件信息的外部輸入信息不是預(yù)設(shè)輸入信息類 型之后,根據(jù)設(shè)備文件描述符等待獲取設(shè)備文件信息;
[0160] 第一判斷單元用于當(dāng)?shù)谝猾@取單元獲取到設(shè)備文件信息后,判斷設(shè)備文件信息的 外部輸入信息是否是預(yù)設(shè)輸入信息類型;
[0161] 第一設(shè)置單元用于當(dāng)?shù)谝慌袛鄦卧袛喑鲈O(shè)備文件信息的外部輸入信息是預(yù)設(shè) 輸入信息類型之后,將外部輸入信息作為設(shè)備索引信息。
[0162] 本實施例中,設(shè)備文件信息包括外部輸入信息,還可以包括輸入設(shè)備類型信息。其 中,外部輸入信息是獲取到的外部輸入的數(shù)據(jù),本實施例中外部輸入信息具體為獲取到的 來自于輸入設(shè)備的數(shù)據(jù),即外部輸入信息為獲取到的外部通過輸入設(shè)備的輸入的數(shù)據(jù);輸 入設(shè)備類型信息是獲取到的輸入設(shè)備的類型。
[0163] 當(dāng)設(shè)備文件信息還包括輸入設(shè)備類型信息時,第三獲取模塊04還包括:第二判斷 單元和第一報錯單元;
[0164] 第二判斷單元,用于當(dāng)?shù)谝猾@取單元根據(jù)設(shè)備文件描述符等待獲取設(shè)備