ZBar iPhone,设置超时

时间:2012-10-20 07:19:13

标签: iphone timeout zbar-sdk

我在我的iPhone应用程序中成功使用了ZBarSDK。唯一的问题是:有时扫描仪无法读取条形码。我没有找到如何设置超时(如果代码栏无法读取5秒,中止扫描)。

有隐藏的选项吗?还是一招?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分: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是否无法对符号进行解码但是肯定您有委托方法可以使用

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

我可以建议(我之前遇到的issue我第二次扫描扫描仪屏幕时无法扫描代码)您可以按照SDK中提供的示例重新配置SDK,或者您可以确认支持的符号(如果您尝试解码某些不支持的格式)。

如果您遇到任何标准方法来设置超时时间,请分享SO。

干杯!!