2012-10-20 226 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

感谢您的回答。我的问题不是“代码没有被识别,也没有我想要读取的符号”,但是“代码被打印到不好的事件读取它,停止尝试,我会手动输入”。但是手动干预是最好的方式。 –