Commit 6056efe7 authored by Anthony Carno's avatar Anthony Carno
Browse files

initial CaptuvoSDKDemo commit

parent 6fcd4b5e
//
// Captuvo.h
// Honeywell_SDK
//
// Created by Edward Finegan (edward@dryraintechnologies.com) on 5/20/12.
//
#import <UIKit/UIKit.h>
#import <ExternalAccessory/ExternalAccessory.h>
#pragma mark -
#pragma mark Data Types
/**
@brief Enumeration for connection status
*/
typedef enum {
ProtocolConnectionStatusConnected, /**< A successful connection was made */
ProtocolConnectionStatusAlreadyConnected, /**< The protocol is already connected */
ProtocolConnectionStatusBatteryDepleted, /**< The protocol is unable to be connected due to low battery */
ProtocolConnectionStatusUnableToConnectIncompatiableSledFirmware, /**< The protocol was unable to be connected due to an error */
ProtocolConnectionStatusUnableToConnect, /**< The protocol was unable to be connected due to an error */
} ProtocolConnectionStatus;
/*
@brief Enumeration for HID status
*/
typedef enum {
HIDActiveLock, /**<HID Active and locked */
HIDActiveUnlock, /**<HID Active and Unlocked */
HIDUnactiveLock, /**<HID UnActive and Locked */
HIDUnactiveUnlock /**<HID UnActive and Unlocked */
}HIDCurStatus;
/*
@brief Enumeration for Scan Key status
*/
typedef enum
{
ScanKeyPressing, /** Scan Key pressed */
ScanKeyReleased, /** Scan Key released */
}ScanKeyStatus;
/**
@brief Enumeration for beeper volume
*/
typedef enum {
BeeperVolumeLow, /**< Low volume */
BeeperVolumeMedium, /**< Medium volume */
BeeperVolumeHigh, /**< High volume */
BeeperVolumeOff /**< Volume off */
} BeeperVolume;
/**
@brief Enumeration for beeper pitch
*/
typedef enum {
BeeperPitchLow, /**< Low pitch */
BeeperPitchMedium, /**< Medium pitch */
BeeperPitchHigh /**< High pitch */
} BeeperPitch;
/**
@brief Enumeration for beeper pitch on error
*/
typedef enum {
BeeperErrorPitchRazz, /**< Very Low pitch */
BeeperErrorPitchMedium, /**< Medium pitch */
BeeperErrorPitchHigh /**< High pitch */
} BeeperErrorPitch;
/**
@brief Enumeration for beeper duration
*/
typedef enum {
BeeperDurationShort, /**< Short duration */
BeeperDurationNormal /**< Normal duration */
} BeeperDuration;
/**
@brief Enumeration for selecting what tracts the MSR should read
*/
typedef enum {
TrackSelectionAnyTrack, /**< Any Track */
TrackSelectionRequire1, /**< Require Track 1 Only */
TrackSelectionRequire2, /**< Require Track 2 Only */
TrackSelectionRequire1and2, /**< Require Track 1 & Track 2 */
TrackSelectionRequire3, /**< Require Track 3 Only */
TrackSelectionRequire1and3, /**< Require Track 1 & Track 3 */
TrackSelectionRequire2and3, /**< Require Track 2 & Track 3 */
TrackSelectionRequireAllTracks, /**< Require All Three Tracks */
TrackSelectionAnyTrack1or2, /**< Any Track 1 & 2 */
TrackSelectionAnyTrack2or3, /**< Any Track 2 & 3 */
TrackSelectionUndefined /**< Error state */
} TrackSelection;
/**
@brief Enumeration representing the current security level of the MSR
*/
typedef enum{
SecurityLevel0,
SecurityLevel1,
SecurityLevel2,
SecurityLevel3,
SecurityLevel4,
SecurityLevelUndefined
}SecurityLevel;
/**
@brief Enumeration for selecting symbologies
*/
typedef enum {
SymbologyAll,
SymbologyAustralianPost,
SymbologyAztecCode,
SymbologyBritishPost,
SymbologyCanadianPost,
SymbologyChinaPost,
SymbologyChineseSensibleCode,
SymbologyCodabar,
SymbologyCodablockA,
SymbologyCodablockF,
SymbologyCode11,
SymbologyCode128,
SymbologyGS1_128,
SymbologyCode32Pharmaceutical,
SymbologyCode39,
SymbologyCode49,
SymbologyCode93And93i,
SymbologyDataMatrix,
SymbologyEAN13,
SymbologyEAN13WithAddOn,
SymbologyEAN13WithExtendedCouponCode,
SymbologyEAN8,
SymbologyEAN8WithAddOn,
SymbologyGS1Composite,
SymbologyGS1DataBar,
SymbologyInfoMail,
SymbologyIntelligentMailBarcode,
SymbologyInterleaved2Of5,
SymbologyJapanesePost,
SymbologyKIXPost,
SymbologyKoreaPost,
SymbologyMatrix2Of5,
SymbologyMaxiCode,
SymbologyMicroPDF417,
SymbologyMSI,
SymbologyNEC2Of5,
SymbologyOCRMICR,
SymbologyOCRSEMIFont,
SymbologyOCRA,
SymbologyOCRB,
SymbologyPDF417,
SymbologyPlanetCode,
SymbologyPostal4i,
SymbologyPostnet,
SymbologyQRCodeAndMicroQRCode,
SymbologyStraight2Of5IATA,
SymbologyStraight2Of5Industrial,
SymbologyTCIFLinkedCode39,
SymbologyTelepen,
SymbologyUPCA,
SymbologyUPCAWithAddOn,
SymbologyUPCAWithExtendedCouponCode,
SymbologyUPCE,
SymbologyUPCEWithAddOn,
SymbologyUPCE1,
SymbologyUndefined
} Symbology;
/**
@brief Enumeration for the state of the battery and charging
*/
typedef enum {
ChargeStatusNotCharging, /**< The battery is not connected to external power. */
ChargeStatusCharging, /**< Device is connected to an external power source and is charging. */
ChargeStatusChargeComplete, /**< Device is connected to an external power but is not charing becuase the battery is full. */
ChargeStatusUndefined /**< The status of the battery can not be determined. This is often an error state. */
} ChargeStatus;
/**
@brief Enumeration for the charge remaining in the battery.
*/
typedef enum {
BatteryStatusPowerSourceConnected, /**< Device is connected to a power source */
BatteryStatus4Of4Bars, /**< Battery indicator should read 4 of 4 bars */
BatteryStatus3Of4Bars, /**< Battery indicator should read 3 of 4 bars */
BatteryStatus2Of4Bars, /**< Battery indicator should read 2 of 4 bars */
BatteryStatus1Of4Bars, /**< Battery indicator should read 1 of 4 bars */
BatteryStatus0Of4Bars, /**< Battery indicator should read 0 of 4 bars */
BatteryStatusUndefined /**< Unable to determine the battery level */
} BatteryStatus;
#pragma mark -
#pragma mark Symbology Configuration Objects
/**
@brief Enumeration of the UPC-A extended coupon code settings
*/
typedef enum {
UPCA_EAN13_ExtendedCouponCodeOff, /**< Extended coupon code off */
UPCA_EAN13_ExtendedCouponCodeAllowConcatenation, /**< Allow concatenation of the extended coupon code */
UPCA_EAN13_ExtendedCouponCodeRequireConcatenation /**< Require concatenation of the extended coupon code */
} UPCA_EAN13_ExtendedCouponCode;
/**
@brief Enumeration of the PartNumber configuration number serial number
*/
typedef struct
{
Byte mfgSignature[4];
Byte partNumber[18];
Byte configurationNumber[20];
Byte serialNumber[10];
Byte finalAssemblyDate[8];
Byte odmTrackingNumber[8];
} MfgBlockData;
/**
@brief UPCA is the object used to configure the UPC-A symbology
*/
@interface UPCA : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) BOOL enableCheckDigit;
@property (assign,nonatomic) BOOL enableNumberSystem;
@property (assign,nonatomic) BOOL enable2DigitAddenda;
@property (assign,nonatomic) BOOL enable5DigitAddenda;
@property (assign,nonatomic) BOOL requireAddenda;
@property (assign,nonatomic) BOOL enableAddendaSeparator;
@property UPCA_EAN13_ExtendedCouponCode extendedCouponCode;
@end
/**
@brief UPCE0 is the object used to configure the UPC-E0 symbology
*/
@interface UPCE0 : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) BOOL enableExpand;
@property (assign,nonatomic) BOOL requireAddenda;
@property (assign,nonatomic) BOOL enableAddendaSeparator;
@property (assign,nonatomic) BOOL enableCheckDigit;
@property (assign,nonatomic) BOOL enableNumberSystem;
@property (assign,nonatomic) BOOL enable2DigitAddenda;
@property (assign,nonatomic) BOOL enable5DigitAddenda;
@property (assign,nonatomic) BOOL enableUPCE1;
@end
/**
@brief EAN13 is the object used to configure the EAN 13 symbology
*/
@interface EAN13 : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) BOOL enableCheckDigit;
@property (assign,nonatomic) BOOL enable2DigitAddenda;
@property (assign,nonatomic) BOOL enable5DigitAddenda;
@property (assign,nonatomic) BOOL requireAddenda;
@property (assign,nonatomic) BOOL enableAddendaSeparator;
@property (assign,nonatomic) BOOL enableISBNtranslate;
@end
/**
@brief EAN8 is the object used to configure the EAN 8 symbology
*/
@interface EAN8 : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) BOOL enableCheckDigit;
@property (assign,nonatomic) BOOL enable2DigitAddenda;
@property (assign,nonatomic) BOOL enable5DigitAddenda;
@property (assign,nonatomic) BOOL requireAddenda;
@property (assign,nonatomic) BOOL enableAddendaSeparator;
@end
/**
@brief Enumeration of the Codabar checks character settings
*/
typedef enum {
CodabarCheckCharNoCheckChar, /**< Disable the check character */
CodabarCheckCharValidateNotTransmitted, /**< validate the check character but do not send it with the barcode data */
CodabarCheckCharValidateAndTransmit /**< validate the check character and send it with the barcode data */
} CodabarCheckChar;
/**
@brief Enumeration of the Codabar concatenation settings
*/
typedef enum {
CodabarConcatenationOn, /**< Concatenation on */
CodabarConcatenationOff, /**< Concatenation off */
CodabarConcatenationRequired /**< Concatenation required */
} CodabarConcatenation;
/**
@brief Codabar is the object used to configure the Codabar symbology
*/
@interface Codabar : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) BOOL transmitStatStopChar;
@property (assign,nonatomic) CodabarCheckChar checkCharStatus;
@property (assign,nonatomic) CodabarConcatenation concatenationStatus;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@end
/**
@brief Enumeration of the Code 39 check character settings
*/
typedef enum {
Code39CheckCharNoCheckChar, /**< Disable the check character */
Code39CheckCharValidateNotTransmitted, /**< Vaildate the check character but do not send it with the barcode data */
Code39CheckCharValidateAndTransmit /**< Vaildate the check character and send it with the barcode data */
} Code39CheckChar;
/**
@brief Code39 is the object used to configure the Code 39 symbology
*/
@interface Code39 : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) BOOL transmitStatStopChar;
@property (assign,nonatomic) Code39CheckChar checkCharStatus;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@property (assign,nonatomic) BOOL enableAppendMode;
@property (assign,nonatomic) BOOL enableCode32Pharmaceutical;
@property (assign,nonatomic) BOOL enableFullASCII;
@end
/**
@brief Enumeration of the Interleaved2of5 object's check character settings
*/
typedef enum {
Interleaved2of5CheckCharNoCheckChar, /**< Disable the check character */
Interleaved2of5CheckCharValidateNotTransmitted, /**< validate the check character but do not send it with the barcode data */
Interleaved2of5CheckCharValidateAndTransmit /**< validate the check character and send it with the barcode data */
} Interleaved2of5CheckChar;
/**
@brief Interleaved2of5 is the object used to configure the Interleaved 2 of 5 symbology
*/
@interface Interleaved2of5 : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) Interleaved2of5CheckChar checkCharStatus;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@end
/**
@brief Enumeration of the NEC2of5CheckChar object's check character settings
*/
typedef enum {
NEC2of5CheckCharNoCheckChar, /**< Disable the check character */
NEC2of5CheckCharValidateNotTransmitted, /**< validate the check character but do not send it with the barcode data */
NEC2of5CheckCharValidateAndTransmit /**< validate the check character and send it with the barcode data */
} NEC2of5CheckChar;
/**
@brief NEC2of5 is the object used to configure the NEC 2 of 5 symbology
*/
@interface NEC2of5 : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) NEC2of5CheckChar checkCharStatus;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@end
/**
@brief Code93 is the object used to configure the Code 93 symbology
*/
@interface Code93 : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@end
/**
@brief Straight2of5Industrial is the object used to configure the Straight 2 of 5 Industrial symbology
*/
@interface Straight2of5Industrial : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@end
/**
@brief Straight2of5IATA is the object used to configure the Straight 2 of 5 IATA symbology
*/
@interface Straight2of5IATA : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@end
/**
@brief Matrix2of5 is the object used to configure the Matrix 2 of 5 symbology
*/
@interface Matrix2of5 : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@end
/**
@brief Enumeration of the Code11 object's check digit settings
*/
typedef enum {
Code11CheckDigit1, /**< Check digit one */
Code11CheckDigit2 /**< Check digit two */
} Code11CheckDigit;
/**
@brief Code11 is the object used to configure the Code 11 symbology
*/
@interface Code11 : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@property (assign,nonatomic) Code11CheckDigit checkDigit;
@end
/**
@brief Code128 is the object used to configure the Code 128 symbology
*/
@interface Code128 : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@property (assign,nonatomic) BOOL enableISBTconcatenation;
@end
/**
@brief GS1_128 is the object used to configure the GS1-128 symbology
*/
@interface GS1_128 : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@end
/**
@brief Enumeration of the Telepen object's output settings
*/
typedef enum {
TelepenOutputAIM, /**< AIM Telepen output */
TelepenOutputOriginal /**< Original Telepen output */
} TelepenOutput;
/**
@brief Telepen is the object used to configure the Telepen symbology
*/
@interface Telepen : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@property (assign,nonatomic) TelepenOutput output;
@end
/**
@brief Enumeration of the MIS object's check character settings
*/
typedef enum {
MSICheckCharValidateType10NotTransmitted, /**< Validate type 10 but do not transmit with barcode data */
MSICheckCharValidateType10AndTransmit, /**< Validate type 10 and transmit with barcode data */
MSICheckCharValidate2Type10NotTransmitted, /**< Validate 2 type 10 characters but do not transmit with barcode data */
MSICheckCharValidate2Type10AndTransmit, /**< Validate 2 type 10 characters and transmit with barcode data */
MSICheckCharValidateType10And11NotTransmitted, /**< Validate type 10 then they 11 characters but do not transmit with barcode data */
MSICheckCharValidateType10And11AndTransmit, /**< Validate type 10 then they 11 characters and transmit with barcode data */
MSICheckCharDisableCeckChar /**< Disasble check characters */
} MSICheckChar;
/**
@brief MSI is the object used to configure the MSI symbology
*/
@interface MSI : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@property (assign,nonatomic) MSICheckChar checkChar;
@end
/**
@brief Enumeration of the GS1 global emulation settings
*/
typedef enum {
GS1Emulation128, /**< GS1-128 emulation */
GS1EmulationdDatabar, /**< GS1 DataBar emulation */
GS1EmulationdExpansionCodeOff, /**< GS1 Code Expansion off */
GS1EmulationdEAN8toEAN13Conversion, /**< EAN8 to EAN13 conversion */
GS1EmulationdOff /**< Emulation off */
} GS1Emulation;
/**
@brief GS1DataBarOmnidirectional is the object used to configure the GS1 DataBar Omnidirectional symbology
*/
@interface GS1DataBarOmnidirectional : NSObject
@property (assign,nonatomic) BOOL enabled;
//Global GS1 parameters
@property (assign,nonatomic) BOOL enableGS1CompositeCodes;
@property (assign,nonatomic) BOOL enableUPC_EANversion;
@property (assign,nonatomic) int compositeCodeMinMessageLength;
@property (assign,nonatomic) int compositeCodeMaxMessageLength;
@property (assign,nonatomic) GS1Emulation emulationMode;
@end
/**
@brief GS1DataBarLimited is the object used to configure the GS1 DataBar Limited symbology
*/
@interface GS1DataBarLimited : NSObject
@property (assign,nonatomic) BOOL enabled;
//Global GS1 parameters
@property (assign,nonatomic) BOOL enableGS1CompositeCodes;
@property (assign,nonatomic) BOOL enableUPC_EANversion;
@property (assign,nonatomic) int compositeCodeMinMessageLength;
@property (assign,nonatomic) int compositeCodeMaxMessageLength;
@property (assign,nonatomic) GS1Emulation emulationMode;
@end
/**
@brief GS1DataBarExpanded is the object used to configure the GS1 DataBar Expanded symbology
*/
@interface GS1DataBarExpanded : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
//Global GS1 parameters
@property (assign,nonatomic) BOOL enableGS1CompositeCodes;
@property (assign,nonatomic) BOOL enableUPC_EANversion;
@property (assign,nonatomic) int compositeCodeMinMessageLength;
@property (assign,nonatomic) int compositeCodeMaxMessageLength;
@property (assign,nonatomic) GS1Emulation emulationMode;
@end
/**
@brief CodablockA is the object used to configure the Codablock A symbology
*/
@interface CodablockA : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@end
/**
@brief CodablockF is the object used to configure the Codablock F symbology
*/
@interface CodablockF : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@end
/**
@brief PDF417 is the object used to configure the PDF417 symbology
*/
@interface PDF417 : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;
@end
/**
@brief ChineseSensible is the object used to configure the Chinese Sensible symbology
*/
@interface ChineseSensible : NSObject
@property (assign,nonatomic) BOOL enabled;
@property (assign,nonatomic) int minMessageLength;
@property (assign,nonatomic) int maxMessageLength;