2012-10-20 222 views
0

我在我的iPhone應用程序中成功使用了ZBarSDK。唯一的問題是:有時掃描儀無法讀取條形碼。我沒有找到如何設置超時(如果代碼欄不能被讀取5秒,中止掃描)。ZBar iPhone,設置超時時間

是否有隱藏的選項?或者一個詭計?

在此先感謝您的幫助。

回答

0

@le_jax的ZBarSDk被配置爲特定的一組符號如所述here

zbar和是一個開放源碼軟件套件從各種來源,如視頻流,圖像文件和原始強度讀取條形碼傳感器,支持包括EAN-13/UPC-A,UPC-E,EAN-8,Code 128,Code 39,Interleaved 2 of 5和QR Code在內的許多流行的符號系統(條碼類型)

您可以使用網絡資源(如this)來測試應用程序的功能。

什麼你在這裏查詢作爲要麼你沒有設置所需的符號

[scanner setSymbology: ZBAR_I25 config: ZBAR_CFG_ENABLE to: 0]; 

什麼關係構設置點。您可以從zbar.h(ZBar SDK的一部分)檢查一整套支持的符號系統。

typedef enum zbar_symbol_type_e { 
    ZBAR_NONE  =  0, /**< no symbol decoded */ 
    ZBAR_PARTIAL  =  1, /**< intermediate status */ 
    ZBAR_EAN2  =  2, /**< GS1 2-digit add-on */ 
    ZBAR_EAN5  =  5, /**< GS1 5-digit add-on */ 
    ZBAR_EAN8  =  8, /**< EAN-8 */ 
    ZBAR_UPCE  =  9, /**< UPC-E */ 
    ZBAR_ISBN10  =  10, /**< ISBN-10 (from EAN-13). @since 0.4 */ 
    ZBAR_UPCA  =  12, /**< UPC-A */ 
    ZBAR_EAN13  =  13, /**< EAN-13 */ 
    ZBAR_ISBN13  =  14, /**< ISBN-13 (from EAN-13). @since 0.4 */ 
    ZBAR_COMPOSITE =  15, /**< EAN/UPC composite */ 
    ZBAR_I25   =  25, /**< Interleaved 2 of 5. @since 0.4 */ 
    ZBAR_DATABAR  =  34, /**< GS1 DataBar (RSS). @since 0.11 */ 
    ZBAR_DATABAR_EXP =  35, /**< GS1 DataBar Expanded. @since 0.11 */ 
    ZBAR_CODE39  =  39, /**< Code 39. @since 0.4 */ 
    ZBAR_PDF417  =  57, /**< PDF417. @since 0.6 */ 
    ZBAR_QRCODE  =  64, /**< QR Code. @since 0.10 */ 
    ZBAR_CODE93  =  93, /**< Code 93. @since 0.11 */ 
    ZBAR_CODE128  = 128, /**< Code 128 */ 

    /** mask for base symbol type. 
    * @deprecated in 0.11, remove this from existing code 
    */ 
    ZBAR_SYMBOL  = 0x00ff, 
    /** 2-digit add-on flag. 
    * @deprecated in 0.11, a ::ZBAR_EAN2 component is used for 
    * 2-digit GS1 add-ons 
    */ 
    ZBAR_ADDON2  = 0x0200, 
    /** 5-digit add-on flag. 
    * @deprecated in 0.11, a ::ZBAR_EAN5 component is used for 
    * 5-digit GS1 add-ons 
    */ 
    ZBAR_ADDON5  = 0x0500, 
    /** add-on flag mask. 
    * @deprecated in 0.11, GS1 add-ons are represented using composite 
    * symbols of type ::ZBAR_COMPOSITE; add-on components use ::ZBAR_EAN2 
    * or ::ZBAR_EAN5 
    */ 
    ZBAR_ADDON  = 0x0700, 
} zbar_symbol_type_t; 

我不太清楚,如果有什麼事情,如超時週期,以檢查是否zbar和不能deccode符號,但是是爲確保您有委託方法來利用

- (void) readerView: (ZBarReaderView*) readerView didReadSymbols: (ZBarSymbolSet*) symbols 
      fromImage: (UIImage*) image; 

我可以建議的(issue我之前遇到過,在我第二次來到掃描儀屏幕時我無法掃描代碼),您可以按照SDK中提供的示例重新配置SDK,或者您可以確認支持的符號(如果你試圖解碼一些不支持的格式)。

如果您遇到任何標準方法來設置超時期限,請分享到SO。

乾杯!

+0

感謝您的回答。我的問題不是「代碼沒有被識別,也沒有我想要讀取的符號」,但是「代碼被打印到不好的事件讀取它,停止嘗試,我會手動輸入」。但是手動干預是最好的方式。 –