| IDTech Universal SDK 1.0.35.027 API reference for C++

Macros | Typedefs | Functions
libIDT_Device.h File Reference

Windows C++ API. More...

`#include "IDTDef.h"`

Go to the source code of this file.

## Macros
#define | IN
#define | OUT
#define | IN_OUT

## Typedefs
typedef void(* | pMessageHotplug) (int, int)
typedef void(* | pSendDataLog) (BYTE *, int)
typedef void(* | pReadDataLog) (BYTE *, int)
typedef void(* | pEMV_callBack) (int, int, BYTE *, int, IDTTransactionData *, EMV_Callback *, int)
typedef void(* | pWP_callBack) (char *, int, int)
typedef void(* | pMSR_callBack) (int, IDTMSRData)
typedef void(* | pMSR_callBackp) (int, IDTMSRData *)
typedef void(* | pPIN_callBack) (int, IDTPINData *)
typedef void(* | pLCD_callBack) (int, IDTLCDItem *)
typedef void(* | pCMR_callBack) (int, IDTCMRData *)
typedef void(* | pCSFS_callBack) (BYTE status)
typedef void(* | pFW_callBack) (int, int, int, int, int)
typedef void(* | pRKI_callBack) (int, char *)
typedef void(* | httpComm_callBack) (BYTE *, int)
typedef void(* | v4Comm_callBack) (BYTE, BYTE, BYTE *, int)
typedef void(* | ftpComm_callBack) (int, int, int)
typedef void(* | pLog_callback) (BYTE, char *)

## Functions
void | registerHotplugCallBk (pMessageHotplug pMsgHotplug)
void | registerLogCallBk (pSendDataLog pFSend, pReadDataLog pFRead)
void | emv_registerCallBk (pEMV_callBack pEMVf)
void | loyalty_registerCallBk (pEMV_callBack pEMVf)
void | msr_registerCallBk (pMSR_callBack pMSRf)
void | msr_registerCallBkp (pMSR_callBackp pMSRf)
void | ctls_registerCallBkp (pMSR_callBackp pMSRf)
void | pin_registerCallBk (pPIN_callBack pPINf)
void | lcd_registerCallBk (pLCD_callBack pLCDf)
void | device_registerCameraCallBk (pCMR_callBack pCMRf)
void | device_registerCardStatusFrontSwitchCallBk (pCSFS_callBack pCSFSf)
void | device_registerFWCallBk (pFW_callBack pFWf)
void | device_registerRKICallBk (pRKI_callBack pRKIf)
char * | SDK_Version ()
int | setAbsoluteLibraryPath (const char *absoluteLibraryPath)
int | device_setConfigPath (const char *path)
int | device_setNEO2DevicesConfigs (IN const char *configs, IN int len)
int | device_init ()
int | rs232_device_init (int deviceType, int port_number, int brate)
void | set_open_com_port_timeout (int timeout)
int | device_setCurrentDevice (int deviceType)
int | device_close ()
void | device_getResponseCodeString (IN int returnCode, OUT char *despcrition)
void | device_getIDGStatusCodeString (IN int returnCode, OUT char *despcrition)
int | device_isConnected ()
int | device_isAttached (int deviceType)
int | device_startTransaction (IN double amount, IN double amtOther, IN int type, IN const int _timeout, IN BYTE *tags, IN int tagsLen)
int | loyalty_startTransaction (IN double amount, IN double amtOther, IN int type, IN const int _timeout, IN BYTE *tags, IN int tagsLen, IN const int cardType, IN const int iccReadType)
void | device_setTransactionExponent (int exponent)
int | device_activateTransaction (IN const int _timeout, IN BYTE *tags, IN int tagsLen)
int | device_cancelTransaction ()
int | loyalty_cancelTransaction ()
int | device_setCancelTransactionMode (int mode)
int | device_cancelTransactionSilent (int enable)
int | loyalty_cancelTransactionSilent (int enable)
int | device_getDriveFreeSpace (OUT int *free, OUT int *used)
int | device_listDirectory (IN char *directoryName, IN int directoryNameLen, IN int recursive, IN int onSD, OUT char *directory, IN_OUT int *directoryLen)
int | device_createDirectory (IN char *directoryName, IN int directoryNameLen)
int | device_deleteDirectory (IN char *dirName, IN int dirNameLen)
int | device_transferFile (IN char *fileName, IN int fileNameLen, IN BYTE *file, IN int fileLen)
int | device_deleteFile (IN char *fileName, IN int fileNameLen)
int | device_queryFile (IN char *directoryName, IN int directoryNameLen, IN char *fileName, IN int fileNameLen, OUT int *isExist, OUT BYTE *timeStamp, IN_OUT int *timeStampLen, OUT char *fileSize, IN_OUT int *fileSizeLen)
int | device_readFileFromSD (IN char *directoryName, IN int directoryNameLen, IN char *fileName, IN int fileNameLen, IN int startingOffset, IN int numBytes, OUT BYTE *fileData, IN_OUT int *fileDataLen)
int | device_startListenNotifications ()
int | device_stopListenNotifications ()
int | device_getFirmwareVersion (OUT char *firmwareVersion)
int | device_getFirmwareVersion_Len (OUT char *firmwareVersion, IN_OUT int *firmwareVersionLen)
int | device_getDateTime (OUT BYTE *dateTime)
int | device_getDateTime_Len (OUT BYTE *dateTime, IN_OUT int *dateTimeLen)
int | device_controlLED (byte indexLED, byte control, int intervalOn, int intervalOff)
int | device_controlLED_ICC (int controlMode, int interval)
int | device_controlLED_MSR (byte control, int intervalOn, int intervalOff)
int | device_controlBeep (int index, int frequency, int duration)
int | device_getDRS (BYTE *codeDRS, int *codeDRSLen)
int | device_setCoreDumpLogFile (IN char *filename, IN int filenameLen)
int | device_outputLog (IN char *filename, IN int filenameLen)
int | device_getKeyStatus (int *newFormat, BYTE *status, int *statusLen)
int | device_enterStopMode ()
int | device_setSleepModeTime (int time)
int | device_verifyBackdoorKey ()
int | device_selfCheck ()
int | device_pingDevice ()
int | device_controlUserInterface (IN BYTE *values)
int | device_controlIndicator (IN int indicator, IN int enable)
int | device_getCurrentDeviceType ()
int | device_SendDataCommandNEO (IN int cmd, IN int subCmd, IN BYTE *data, IN int dataLen, OUT BYTE *response, IN_OUT int *respLen)
int | device_SendDataCommand (IN BYTE *cmd, IN int cmdLen, IN BYTE *data, IN int dataLen, OUT BYTE *response, IN_OUT int *respLen)
int | device_SendDataCommandITP (IN BYTE *cmd, IN int cmdLen, IN BYTE *data, IN int dataLen, OUT BYTE *response, IN_OUT int *respLen)
int | device_rebootDevice ()
int | device_updateFirmware (IN BYTE *firmwareData, IN int firmwareDataLen, IN char *firmwareName, IN int encryptionType, IN BYTE *keyBlob, IN int keyBlobLen)
int | device_getDeviceMemoryUsageInfo (OUT int *freeHeapSize, OUT int *notFreedBlockCnt, OUT int *minEverFreeHeapSize)
int | felica_authentication (IN BYTE *key, IN int keyLen)
int | felica_readWithMac (IN int blockCnt, IN BYTE *blockList, IN int blockListLen, OUT BYTE *blockData, OUT int *blockDataLen)
int | felica_writeWithMac (IN BYTE blockNum, IN BYTE *blockData, IN int blockDataLen)
int | felica_read (IN BYTE *serviceCodeList, IN int serviceCodeListLen, IN int blockCnt, IN BYTE *blockList, IN int blockListLen, OUT BYTE *blockData, OUT int *blockDataLen)
int | felica_write (IN BYTE *serviceCodeList, IN int serviceCodeListLen, IN int blockCnt, IN BYTE *blockList, IN int blockListLen, IN BYTE *blockData, IN int blockDataLen, OUT BYTE *statusFlag, OUT int *statusFlagLen)
int | felica_poll (IN BYTE *systemCode, IN int systemCodeLen, OUT BYTE *respData, OUT int *respDataLen)
int | felica_SendCommand (IN BYTE *command, IN int commandLen, OUT BYTE *respData, OUT int *respDataLen)
int | felica_requestService (IN BYTE *nodeCode, IN int nodeCodeLen, OUT BYTE *respData, OUT int *respDataLen)
int | felica_getCode ()
int | felica_cancelCodeEntry ()
int | config_getModelNumber (OUT char *sNumber)
int | config_getModelNumber_Len (OUT char *sNumber, IN_OUT int *sNumberLen)
int | device_setSystemLanguage (char *language)
int | config_getSerialNumber (OUT char *sNumber)
int | config_getSerialNumber_Len (OUT char *sNumber, IN_OUT int *sNumberLen)
int | config_setCmdTimeOutDuration (IN int millisecond)
int | config_setLEDController (int firmwareControlMSRLED, int firmwareControlICCLED)
int | config_getLEDController (int *firmwareControlMSRLED, int *firmwareControlICCLED)
int | config_setBeeperController (int firmwareControlBeeper)
int | config_getBeeperController (int *firmwareControlBeeper)
int | config_setEncryptionControl (int msr, int icc)
int | config_getEncryptionControl (int *msr, int *icc)
int | device_startRKI (const char *caPath, int isProduction)
int | device_enablePassThrough (int enablePassThrough)
int | device_enableL80PassThrough (int enableL80PassThrough)
int | device_enableL100PassThrough (int enableL100PassThrough)
int | device_getL80PassThroughMode ()
int | device_getL100PassThroughMode ()
int | device_enhancedPassthrough (IN BYTE *data, IN int dataLen)
int | device_setBurstMode (IN BYTE mode)
int | device_setPollMode (IN BYTE mode)
int | device_pollForToken (IN int timeout, OUT BYTE *respData, IN_OUT int *respDataLen)
int | device_setMerchantRecord (int index, int enabled, char *merchantID, char *merchantURL)
int | device_getMerchantRecord (IN int index, OUT BYTE *record)
int | device_getMerchantRecord_Len (IN int index, OUT BYTE *record, IN_OUT int *recordLen)
int | device_pollCardReader (OUT BYTE *status)
int | device_pollCardReader_Len (OUT BYTE *status, IN_OUT int *statusLen)
int | device_getSpectrumProKSN (IN int type, OUT BYTE *KSN)
int | device_getSpectrumProKSN_Len (IN int type, OUT BYTE *KSN, IN_OUT int *KSNLen)
int | device_calibrateParameters (BYTE delta)
int | device_getRTCDateTime (IN BYTE *dateTime, IN_OUT int *dateTimeLen)
int | device_setRTCDateTime (IN BYTE *dateTime, IN int dateTimeLen)
int | device_configureButtons (IN BYTE done, IN BYTE swipe, IN BYTE delay)
int | device_getButtonConfiguration (OUT BYTE *done, OUT BYTE *swipe, OUT BYTE *delay)
int | device_disableBlueLED ()
int | device_enableBlueLED (IN BYTE *data, IN int dataLen)
int | device_lcdDisplayClear ()
int | device_enableExternalLCDMessages (IN int enableExtLCDMsg)
int | device_enableRFAntenna (IN int enableAntenna)
int | device_turnOffYellowLED ()
int | device_turnOnYellowLED ()
int | device_buzzerOnOff ()
int | device_lcdDisplayLine1Message (IN BYTE *message, IN int messageLen)
int | device_lcdDisplayLine2Message (IN BYTE *message, IN int messageLen)
int | device_startQRCodeScan (IN int _timeout)
int | device_startQRCodeScanWithDisplayWindowInfo (IN int _timeout, IN int x, IN int y, IN int width, IN int height)
int | device_stopQRCodeScan ()
int | device_startTakingPhoto (IN int _timeout)
int | device_stopTakingPhoto ()
int | device_stopAudio ()
int | device_playAudio (IN char *fileName, IN int fileNameLen, IN int onSD)
int | device_getAudioVolume (OUT BYTE *volume)
int | device_setAudioVolume (IN BYTE volume)
int | device_getCameraParameters (OUT BYTE *isAutoFocus, OUT BYTE *focalLength)
int | device_setCameraParameters (IN BYTE isAutoFocus, IN BYTE focalLength)
int | device_getSDKWaitTime ()
void | device_setSDKWaitTime (int waitTime)
int | device_getThreadStackSize ()
void | device_setThreadStackSize (int threadSize)
void | device_toSDCard (int forSDCard)
int | device_getTamperStatus (OUT int *isTampered)
int | icc_enable (IN int withNotification)
int | icc_disable ()
int | icc_powerOnICC (OUT BYTE *ATR, IN_OUT int *inLen)
int | icc_powerOffICC ()
int | icc_exchangeAPDU (IN BYTE *c_APDU, IN int cLen, OUT BYTE *reData, IN_OUT int *reLen)
int | icc_exchangeEncryptedAPDU (IN BYTE *c_APDU, IN int cLen, OUT BYTE *reData, IN_OUT int *reLen)
int | icc_getAPDU_KSN (OUT BYTE *KSN, IN_OUT int *inLen)
int | icc_getFunctionStatus (OUT int *enabled, OUT int *withNotification)
int | icc_getICCReaderStatus (OUT BYTE *status)
int | icc_getKeyFormatForICCDUKPT (OUT BYTE *format)
int | icc_getKeyTypeForICCDUKPT (OUT BYTE *type)
int | icc_setKeyFormatForICCDUKPT (IN BYTE format)
int | icc_setKeyTypeForICCDUKPT (IN BYTE type)
int | iso8583_get1987Handler (OUT DL_ISO8583_HANDLER *ISOHandler)
int | iso8583_get1993Handler (OUT DL_ISO8583_HANDLER *ISOHandler)
int | iso8583_get2003Handler (OUT DL_ISO8583_HANDLER *ISOHandler)
int | iso8583_getField (IN DL_UINT16 dataField, IN DL_ISO8583_HANDLER *ISOHandler, OUT DL_ISO8583_FIELD_DEF *field)
int | iso8583_initializeMessage (OUT DL_ISO8583_MSG *ISOMessage)
int | iso8583_getMessageField (IN DL_UINT16 dataField, IN DL_ISO8583_MSG *ISOMessage, OUT DL_ISO8583_MSG_FIELD *messageField)
int | iso8583_setMessageField (IN DL_UINT16 dataField, IN const DL_UINT8 *data, OUT DL_ISO8583_MSG *ISOMessage)
int | iso8583_removeMessageField (IN DL_UINT16 dataField, OUT DL_ISO8583_MSG *ISOMessage)
int | iso8583_packMessage (IN const DL_ISO8583_HANDLER *ISOHandler, IN const DL_ISO8583_MSG *ISOMessage, OUT DL_UINT8 *packedData, OUT DL_UINT16 *packedDataLength)
int | iso8583_unpackMessage (IN const DL_ISO8583_HANDLER *ISOHandler, IN const DL_UINT8 *packedData, IN DL_UINT16 packedDataLength, OUT DL_ISO8583_MSG *ISOMessage)
int | iso8583_freeMessage (IN DL_ISO8583_MSG *ISOMessage)
int | iso8583_serializeToXML (IN DL_ISO8583_HANDLER *ISOHandler, IN DL_ISO8583_MSG *ISOMessage, OUT BYTE *serializedMessage, OUT int *serializedMessageLength)
int | iso8583_deserializeFromXML (IN BYTE *serializedMessage, IN int serializedMessageLength, OUT DL_ISO8583_HANDLER *ISOHandler, OUT DL_ISO8583_MSG *ISOMessage)
int | iso8583_displayMessage (IN DL_ISO8583_HANDLER *ISOHandler, IN DL_ISO8583_MSG *ISOMessage)
int | lcd_resetInitialState ()
int | lcd_customDisplayMode (IN int enable)
int | lcd_setForeBackColor (IN BYTE *foreRGB, IN int foreRGBLen, IN BYTE *backRGB, IN int backRGBLen)
int | lcd_clearDisplay (IN BYTE control)
int | lcd_captureSignature (IN int timeout)
int | lcd_startSlideShow (IN char *files, IN int filesLen, IN int posX, IN int posY, IN int posMode, IN int touchEnable, IN int recursion, IN int touchTerminate, IN int delay, IN int loops, IN int clearScreen)
int | lcd_cancelSlideShow (OUT BYTE *statusCode, IN_OUT int *statusCodeLen)
int | lcd_setDisplayImage (IN char *file, IN int fileLen, IN int posX, IN int posY, IN int posMode, IN int touchEnable, IN int clearScreen)
int | lcd_setBackgroundImage (IN char *file, IN int fileLen, IN int enable)
int | lcd_displayText (IN int posX, IN int posY, IN int displayWidth, IN int displayHeight, IN int fontDesignation, IN int fontID, IN int screenPosition, IN char *displayText, OUT BYTE *graphicsID)
int | lcd_displayText_Len (IN int posX, IN int posY, IN int displayWidth, IN int displayHeight, IN int fontDesignation, IN int fontID, IN int screenPosition, IN char *displayText, OUT BYTE *graphicsID, IN_OUT int *graphicsIDLen)
int | lcd_displayParagraph (IN int posX, IN int posY, IN int displayWidth, IN int displayHeight, IN int fontDesignation, IN int fontID, IN int displayProperties, IN char *displayText)
int | lcd_displayButton (IN int posX, IN int posY, IN int buttonWidth, IN int buttonHeight, IN int fontDesignation, IN int fontID, IN int displayPosition, IN char *buttonLabel, IN int buttonTextColorR, IN int buttonTextColorG, IN int buttonTextColorB, IN int buttonBackgroundColorR, IN int buttonBackgroundColorG, IN int buttonBackgroundColorB, OUT BYTE *graphicsID)
int | lcd_displayButton_Len (IN int posX, IN int posY, IN int buttonWidth, IN int buttonHeight, IN int fontDesignation, IN int fontID, IN int displayPosition, IN char *buttonLabel, IN int buttonTextColorR, IN int buttonTextColorG, IN int buttonTextColorB, IN int buttonBackgroundColorR, IN int buttonBackgroundColorG, IN int buttonBackgroundColorB, OUT BYTE *graphicsID, IN_OUT int *graphicsIDLen)
int | lcd_createList (IN int posX, IN int posY, IN int numOfColumns, IN int numOfRows, IN int fontDesignation, IN int fontID, IN int verticalScrollArrowsVisible, IN int borderedListItems, IN int borderdScrollArrows, IN int touchSensitive, IN int automaticScrolling, OUT BYTE *graphicsID)
int | lcd_createList_Len (IN int posX, IN int posY, IN int numOfColumns, IN int numOfRows, IN int fontDesignation, IN int fontID, IN int verticalScrollArrowsVisible, IN int borderedListItems, IN int borderdScrollArrows, IN int touchSensitive, IN int automaticScrolling, OUT BYTE *graphicsID, IN_OUT int *graphicsIDLen)
int | lcd_addItemToList (IN BYTE *listGraphicsID, IN char *itemName, IN char *itemID, IN int selected)
int | lcd_getSelectedListItem (IN BYTE *listGraphicsID, OUT char *itemID)
int | lcd_getSelectedListItem_Len (IN BYTE *listGraphicsID, OUT char *itemID, IN_OUT int *itemIDLen)
int | lcd_clearEventQueue ()
int | lcd_getInputEvent (IN int timeout, OUT int *dataReceived, OUT BYTE *eventType, OUT BYTE *graphicsID, OUT BYTE *eventData)
int | lcd_getInputEvent_Len (IN int timeout, OUT int *dataReceived, OUT BYTE *eventType, IN_OUT int *eventTypeLen, OUT BYTE *graphicsID, IN_OUT int *graphicsIDLen, OUT BYTE *eventData, IN_OUT int *eventDataLen)
int | lcd_createInputField (IN BYTE *specs, IN int specsLen, OUT BYTE *graphicId)
int | lcd_createInputField_Len (IN BYTE *specs, IN int specsLen, OUT BYTE *graphicId, IN_OUT int *graphicIdLen)
int | lcd_getInputFieldValue (IN BYTE *graphicId, OUT BYTE *retData, IN_OUT int *retDataLen)
int | lcd_createScreen (IN char *screenName, IN int screenNameLen, OUT int *ScreenID)
int | lcd_destroyScreen (IN char *screenName, IN int screenNameLen)
int | lcd_getActiveScreen (OUT char *screenName, IN_OUT int *screenNameLen)
int | lcd_showScreen (IN char *screenName, IN int screenNameLen)
int | lcd_getButtonEvent (OUT int *screenID, OUT int *objectID, OUT char *screenName, IN_OUT int *screenNameLen, OUT char *objectName, IN_OUT int *objectNameLen, OUT int *isLongPress)
int | lcd_addButton (IN char *screenName, IN int screenNameLen, IN char *buttonName, IN int buttonNameLen, IN BYTE type, IN BYTE alignment, IN int xCord, IN int yCord, IN char *label, IN int labelLen, OUT IDTLCDItem *returnItem)
int | lcd_addEthernet (IN char *screenName, IN int screenNameLen, IN char *objectName, IN int objectNameLen, IN BYTE alignment, IN int xCord, IN int yCord, OUT IDTLCDItem *returnItem)
int | lcd_addLED (IN char *screenName, IN int screenNameLen, IN char *objectName, IN int objectNameLen, IN BYTE alignment, IN int xCord, IN int yCord, OUT IDTLCDItem *returnItem, IN BYTE *LED, IN int LEDLen)
int | lcd_addText (IN char *screenName, IN int screenNameLen, IN char *objectName, IN int objectNameLen, IN BYTE alignment, IN int xCord, IN int yCord, IN int width, IN int height, IN BYTE fontID, IN BYTE *color, IN int colorLen, IN char *label, IN int labelLen, OUT IDTLCDItem *returnItem)
int | lcd_addImage (IN char *screenName, IN int screenNameLen, IN char *objectName, IN int objectNameLen, IN BYTE alignment, IN int xCord, IN int yCord, IN char *filename, IN int filenameLen, OUT IDTLCDItem *returnItem)
int | lcd_addVideo (IN char *screenName, IN int screenNameLen, IN char *objectName, IN int objectNameLen, IN BYTE alignment, IN int xCord, IN int yCord, IN char *filename, IN int filenameLen, OUT IDTLCDItem *returnItem)
int | lcd_addExtVideo (IN char *screenName, IN int screenNameLen, IN char *objectName, IN int objectNameLen, IN BYTE alignment, IN int xCord, IN int yCord, IN BYTE loop, IN BYTE numVideos, IN char *filenames, IN int filenamesLen, OUT IDTLCDItem *returnItem)
int | lcd_cloneScreen (IN char *screenName, IN int screenNameLen, IN char *cloneName, IN int cloneNameLen, OUT int *cloneID)
int | lcd_updateLabel (IN char *screenName, IN int screenNameLen, IN char *objectName, IN int objectNameLen, IN char *label, IN int labelLen)
int | lcd_updateColor (IN char *screenName, IN int screenNameLen, IN char *objectName, IN int objectNameLen, IN BYTE *color, IN int colorLen)
int | lcd_updatePosition (IN char *screenName, IN int screenNameLen, IN char *objectName, IN int objectNameLen, IN BYTE alignment, IN int new_xCord, IN int new_yCord)
int | lcd_removeItem (IN char *screenName, IN int screenNameLen, IN char *objectName, IN int objectNameLen)
int | lcd_storeScreenInfo ()
int | lcd_loadScreenInfo ()
int | lcd_clearScreenInfo ()
int | lcd_getAllScreens (IN_OUT int *screenNumbers, OUT IDTScreenInfo *screenInfo)
int | lcd_getAllObjects (IN char *screenName, IN int screenNameLen, IN_OUT int *objectNumbers, OUT IDTObjectInfo *objectInfo)
int | lcd_queryScreenbyName (IN char *screenName, IN int screenNameLen, OUT int *result)
int | lcd_linkUIWithTransactionMessageId (IN BYTE MessageId, IN char *screenName, IN int screenNameLen)
int | lcd_queryObjectbyName (IN char *objectName, IN int objectNameLen, IN_OUT int *objectNumbers, OUT IDTScreenInfo *screenInfo)
int | lcd_queryScreenbyID (IN int screenID, OUT int *result, OUT int *screenName, IN_OUT int *screenNameLen)
int | lcd_queryObjectbyID (IN int objectID, OUT int *objectNumbers, OUT IDTScreenInfo *screenInfo)
int | lcd_setBacklight (IN BYTE isBacklightOn, IN BYTE backlightVal)
int | emv_getEMVKernelVersion (OUT char *version)
int | emv_getEMVKernelVersion_Len (OUT char *version, IN_OUT int *versionLen)
int | emv_getEMVKernelCheckValue (OUT BYTE *checkValue, IN_OUT int *checkValueLen)
int | emv_getEMVConfigurationCheckValue (OUT BYTE *checkValue, IN_OUT int *checkValueLen)
void | emv_setAutoAuthenticateTransaction (IN int authenticate)
void | emv_setAutoCompleteTransaction (IN int complete)
int | emv_getAutoAuthenticateTransaction ()
int | emv_getAutoCompleteTransaction ()
void | emv_allowFallback (IN int allow)
void | emv_setTransactionParameters (IN double amount, IN double amtOther, IN int type, IN int timeout, IN BYTE *tags, IN int tagsLen)
int | emv_startTransaction (IN double amount, IN double amtOther, IN int exponent, IN int type, IN int timeout, IN BYTE *tags, IN int tagsLen, IN int forceOnline)
int | emv_activateTransaction (IN int timeout, IN BYTE *tags, IN int tagsLen, IN int forceOnline)
int | emv_authenticateTransaction (IN BYTE *updatedTLV, IN int updatedTLVLen)
int | emv_authenticateTransactionWithTimeout (IN int timeout, IN BYTE *updatedTLV, IN int updatedTLVLen)
int | emv_completeTransaction (IN int commError, IN BYTE *authCode, IN int authCodeLen, IN BYTE *iad, IN int iadLen, IN BYTE *tlvScripts, IN int tlvScriptsLen, IN BYTE *tlv, IN int tlvLen)
int | emv_cancelTransaction ()
int | emv_retrieveTransactionResult (IN BYTE *tags, IN int tagsLen, IDTTransactionData *cardData)
int | emv_callbackResponseLCD (IN int type, byte selection)
int | emv_callbackResponseMSR (IN BYTE *MSR, IN_OUT int MSRLen)
int | emv_retrieveApplicationData (IN BYTE *AID, IN int AIDLen, OUT BYTE *tlv, IN_OUT int *tlvLen)
int | emv_setApplicationData (IN BYTE *name, IN int nameLen, IN BYTE *tlv, IN int tlvLen)
int | emv_setApplicationDataTLV (IN BYTE *tlv, IN int tlvLen)
int | emv_removeApplicationData (IN BYTE *AID, IN int AIDLen)
int | emv_removeAllApplicationData ()
int | emv_retrieveAIDList (OUT BYTE *AIDList, IN_OUT int *AIDListLen)
int | emv_retrieveTerminalData (OUT BYTE *tlv, IN_OUT int *tlvLen)
int | emv_setTerminalData (IN BYTE *tlv, IN int tlvLen)
int | emv_setTerminalMajorConfiguration (IN int configuration)
int | emv_removeTerminalData ()
int | emv_retrieveCAPK (IN BYTE *capk, IN int capkLen, OUT BYTE *key, IN_OUT int *keyLen)
int | emv_setCAPK (IN BYTE *capk, IN int capkLen)
int | emv_removeCAPK (IN BYTE *capk, IN int capkLen)
int | emv_removeAllCAPK ()
int | emv_retrieveCAPKList (OUT BYTE *keys, IN_OUT int *keysLen)
int | emv_retrieveTerminalID (OUT char *terminalID)
int | emv_retrieveTerminalID_Len (OUT char *terminalID, IN_OUT int *terminalIDLen)
int | emv_setTerminalID (IN char *terminalID)
int | emv_retrieveCRL (OUT BYTE *list, IN_OUT int *lssLen)
int | emv_setCRL (IN BYTE *list, IN int lsLen)
int | emv_removeCRL (IN BYTE *list, IN int lsLen)
int | emv_removeAllCRL ()
int | msr_clearMSRData ()
int | msr_getMSRData (OUT BYTE *reData, IN_OUT int *reLen)
int | msr_cancelMSRSwipe ()
int | msr_startMSRSwipe (IN int _timeout)
int | executeTransaction (WorldPayData *data, pWP_callBack wpCallback, int requestOnly)
int | cancelWorldPay ()
void | printfChar (BYTE *data, int dataLen)
void | parseMSRData (IN BYTE *resData, IN int resLen, IN_OUT IDTMSRData *cardData)
int | msr_getKeyFormatForICCDUKPT (OUT BYTE *format)
int | msr_getKeyTypeForICCDUKPT (OUT BYTE *type)
int | msr_setKeyFormatForICCDUKPT (IN BYTE format)
int | msr_setKeyTypeForICCDUKPT (IN BYTE type)
int | msr_captureMode (int isBufferMode, int withNotification)
int | msr_flushTrackData ()
int | msr_setExpirationMask (int mask)
int | msr_getExpirationMask (BYTE *value)
int | msr_setClearPANID (BYTE val)
int | msr_getClearPANID (BYTE *value)
int | msr_setSwipeForcedEncryptionOption (int track1, int track2, int track3, int track3card0)
int | msr_getSwipeForcedEncryptionOption (BYTE *option)
int | msr_setSwipeMaskOption (int track1, int track2, int track3)
int | msr_getSwipeMaskOption (BYTE *option)
int | msr_disable ()
int | msr_getFunctionStatus (int *enable, int *isBufferMode, int *withNotification)
int | pin_getPIN (IN int mode, IN int PANSource, IN char *iccPAN, IN int iccPANLen, IN int startTimeout, IN int entryTimeout, IN char *language, IN int languageLen)
int | pin_cancelPINEntry ()
int | pin_setKeyValues (int mode)
int | pin_getEncryptedOnlinePIN (IN int keyType, IN int timeout)
int | pin_getPAN (IN int getCSC, IN int timeout)
int | pin_promptCreditDebit (IN char *currencySymbol, IN int currencySymbolLen, IN char *displayAmount, IN int displayAmountLen, IN int timeout, OUT BYTE *retData, IN_OUT int *retDataLen)
int | pin_getEncryptedPIN (int keyType, char *PAN, int PANLen, char *message, int messageLen, int timeout)
int | pin_promptForKeyInput (int messageID, int languageID, int maskInput, int minLen, int maxLen, int timeout)
int | pin_promptForAmountInput (int messageID, int languageID, int minLen, int maxLen, int timeout)
int | pin_getFunctionKey (int timeout)
int | pin_sendBeep (int frequency, int duration)
int | pin_capturePin (IN int timeout, IN int type, IN char *PAN, IN int PANLen, IN int minPIN, IN int maxPIN, IN char *message, IN int messageLen)
int | pin_capturePinExt (IN int type, IN char *PAN, IN int PANLen, IN int minPIN, IN int maxPIN, IN char *message, IN int messageLen, IN char *verify, IN int verifyLen)
int | pin_promptForNumericKeyWithSwipe (IN int timeout, IN BYTE function, IN int minLen, IN int maxLen, IN char *line1, IN int line1Len, IN char *line2, IN int line2Len, BYTE *signature, IN int signatureLen)
int | pin_promptForNumericKey (IN int timeout, IN int maskInput, IN int minLen, IN int maxLen, IN char *message, IN int messageLen, BYTE *signature, IN int signatureLen)
int | pin_inputFromPrompt (BYTE mask, BYTE preClearText, BYTE postClearText, int minLen, int maxLen, char *lang, BYTE promptID, char *defaultResponse, int defaultResponseLen, int timeout)
int | pin_promptForAmount (IN int timeout, IN int minLen, IN int maxLen, IN char *message, IN int messageLen, BYTE *signature, IN int signatureLen)
int | pin_getPanEntry (IN int csc, IN int expDate, IN int ADR, IN int ZIP, IN int mod10CK, IN int timeout, IN int encPANOnly)
int | lcd_savePrompt (int promptNumber, char *prompt, int promptLen)
int | lcd_displayPrompt (int promptNumber, int lineNumber)
int | lcd_displayMessage (int lineNumber, char *message, int messageLen)
int | lcd_enableBacklight (int enable)
int | lcd_getBacklightStatus (int *enabled)
int | ws_requestCSR (OUT RequestCSR *csr)
int | ws_loadSSLCert (IN char *name, IN int nameLen, IN char *dataDER, IN int dataDERLen)
int | ws_revokeSSLCert (IN char *name, IN int nameLen)
int | ws_deleteSSLCert (IN char *name, IN int nameLen)
int | ws_getCertChainType (OUT int *type)
int | ws_updateRootCertificate (IN char *name, IN int nameLen, IN char *dataDER, IN int dataDERLen, IN char *signature, IN int signatureLen)
int | ctls_startTransaction (IN double amount, IN double amtOther, IN int type, IN const int _timeout, IN BYTE *tags, IN int tagsLen)
int | ctls_activateTransaction (IN const int _timeout, IN BYTE *tags, IN int tagsLen)
int | ctls_cancelTransaction ()
int | ctls_retrieveApplicationData (IN BYTE *AID, IN int AIDLen, OUT BYTE *tlv, IN_OUT int *tlvLen)
int | ctls_setApplicationData (IN BYTE *tlv, IN int tlvLen)
int | ctls_removeApplicationData (IN BYTE *AID, IN int AIDLen)
int | ctls_removeAllApplicationData ()
int | ctls_retrieveAIDList (OUT BYTE *AIDList, IN_OUT int *AIDListLen)
int | ctls_retrieveTerminalData (OUT BYTE *tlv, IN_OUT int *tlvLen)
int | ctls_setTerminalData (IN BYTE *tlv, IN int tlvLen)
int | ctls_retrieveCAPK (IN BYTE *capk, IN int capkLen, OUT BYTE *key, IN_OUT int *keyLen)
int | ctls_setCAPK (IN BYTE *capk, IN int capkLen)
int | ctls_removeCAPK (IN BYTE *capk, IN int capkLen)
int | ctls_removeAllCAPK ()
int | ctls_retrieveCAPKList (OUT BYTE *keys, IN_OUT int *keysLen)
int | ctls_setConfigurationGroup (IN BYTE *tlv, IN int tlvLen)
int | ctls_getConfigurationGroup (IN int group, OUT BYTE *tlv, OUT int *tlvLen)
int | ctls_getAllConfigurationGroups (OUT BYTE *tlv, IN_OUT int *tlvLen)
int | ctls_removeConfigurationGroup (int group)
int | ctls_displayOnlineAuthResult (IN int statusCode, IN BYTE *TLV, IN int TLVLen)
void | parsePINBlockData (IN BYTE *resData, IN int resLen, IN_OUT IDTPINData *cardData)
void | parsePINData (IN BYTE *resData, IN int resLen, IN_OUT IDTPINData *cardData)

## Detailed Description

Windows C++ API.

Windows C++ Global API methods.

## Macro Definition Documentation

## ◆ IN

#define IN

INPUT parameter.

## ◆ IN_OUT

#define IN_OUT

INPUT / OUTPUT PARAMETER.

## ◆ OUT

#define OUT

OUTPUT parameter.

## Typedef Documentation

## ◆ ftpComm_callBack

typedef void(* ftpComm_callBack) (int, int, int)

Define the comm callback function to get FTP file transfer status
It should be passed as a parameter in a FTP request, Signature (int, int, int) = response code, current block, total blocks RESPONSE CODES: 100 = FILE DOWNLOAD STARTED 101 = FILE BLOCK XX OF XX RECEIVED 102 = FILE DOWNLOAD COMPLETED 103 = FILE DOWNLOAD TERMINATED PREMATURELY

## ◆ httpComm_callBack

typedef void(* httpComm_callBack) (BYTE *, int)

Define the comm callback function to get the async url data
It should be registered using the comm_registerHTTPCallback,

## ◆ pCMR_callBack

typedef void(* pCMR_callBack) (int, IDTCMRData *)

Define the camera callback function to get the image data
It should be registered using the device_registerCameraCallBk,

## ◆ pCSFS_callBack

typedef void(* pCSFS_callBack) (BYTE status)

Define the card status and front switch callback function to get card and front switch status
It should be registered using the device_registerCardStatusFrontSwitchCallBk,

## ◆ pEMV_callBack

typedef void(* pEMV_callBack) (int, int, BYTE *, int, IDTTransactionData *, EMV_Callback *, int)

Define the EMV callback function to get the transaction message/data/result.
It should be registered using the emv_registerCallBk,

## ◆ pFW_callBack

typedef void(* pFW_callBack) (int, int, int, int, int)

Define the FW callback function to get the status of the firmware update
It should be registered using the device_registerFWCallBk,

## ◆ pLCD_callBack

typedef void(* pLCD_callBack) (int, IDTLCDItem *)

Define the LCD callback function to get the input LCDItem
It should be registered using the lcd_registerCallBk,

## ◆ pLog_callback

typedef void(* pLog_callback) (BYTE, char *)

Define the log callback function to receive log messages.

## ◆ pMessageHotplug

typedef void(* pMessageHotplug) (int, int)

Define the USB hot-plug callback function to monitor the info when plug in/out the reader.
It should be registered using the registerHotplugCallBk, The first integer parameter is device type, and the second integer parameter is either 0: Device Plugged Out or 1: Device Plugged In

## ◆ pMSR_callBack

typedef void(* pMSR_callBack) (int, IDTMSRData)

Define the MSR callback function to get the MSR card data
It should be registered using the msr_registerCallBk, this callback function is for backward compatibility

## ◆ pMSR_callBackp

typedef void(* pMSR_callBackp) (int, IDTMSRData *)

Define the MSR callback function to get pointer to the MSR card data
It should be registered using the msr_registerCallBk, this callback function is recommended instead of pMSR_callBack

## ◆ pPIN_callBack

typedef void(* pPIN_callBack) (int, IDTPINData *)

Define the PINPad callback function to get the input PIN Pad data
It should be registered using the pin_registerCallBk,

## ◆ pReadDataLog

typedef void(* pReadDataLog) (BYTE *, int)

Define the read response callback function to monitor the reading response from the reader.
It should be registered using the registerLogCallBk,

## ◆ pRKI_callBack

typedef void(* pRKI_callBack) (int, char *)

Define the RKI callback function to get the status of the RKI
It should be registered using the device_registerRKICallBk,

## ◆ pSendDataLog

typedef void(* pSendDataLog) (BYTE *, int)

Define the send command callback function to monitor the sending command into the reader.
It should be registered using the registerLogCallBk,

## ◆ pWP_callBack

typedef void(* pWP_callBack) (char *, int, int)

Define the Worldpay callback function to get the transaction message/data/result.

## ◆ v4Comm_callBack

typedef void(* v4Comm_callBack) (BYTE, BYTE, BYTE *, int)

Define the comm callback function to receive the V4 Protocol packets received by the device from an external source (IP/USB/RS-232) It should be registered using the comm_registerV4Callback, Data callback will contain command, sub-command, and data from V4 packet

## Function Documentation

## ◆ cancelWorldPay()

int cancelWorldPay | ( |  | ) |

Cancels WorldPay transaction.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ config_getBeeperController()

int config_getBeeperController | ( | int * | firmwareControlBeeper | ) |

Get the Beeper Controller Status - AUGUSTA Set the Beeper controlled Status by software or firmware

Parameters

  firmwareControlBeeper | 1 means firmware control the beeper, 0 means software control beeper.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ config_getEncryptionControl()

int config_getEncryptionControl | ( | int * | msr,
|  | int * | icc
| ) |  |

Get Encryption Control - AUGUSTA

Get Encryption Control to switch status between MSR and ICC/EMV function. Following Encryption status supported:

- MSR ON, ICC/EMV ON,
- MSR ON, ICC/EMV OFF,
- MSR OFF, ICC/EMV OFF,

Parameters

  msr | 1: enabled MSR with Encryption, 0: disabled MSR with Encryption,
  icc | 1: enabled ICC with Encryption, 0: disabled ICC with Encryption,

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ config_getLEDController()

int config_getLEDController | ( | int * | firmwareControlMSRLED,
|  | int * | firmwareControlICCLED
| ) |  |

Get the LED Controller Status - AUGUSTA Get the MSR / ICC LED controlled status by software or firmware NOTE: The ICC LED always controlled by software.

Parameters

  firmwareControlMSRLED | 1: firmware control the MSR LED 0: software control the MSR LED
  firmwareControlICCLED | 1: firmware control the ICC LED 0: software control the ICC LED

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ config_getModelNumber()

int config_getModelNumber | ( | OUT char * | sNumber | ) |

DEPRECATED : please use config_getModelNumber_Len(OUT char* sNumber, IN_OUT int *sNumberLen)

Polls device for Model Number

Parameters

  sNumber | Returns Model Number; needs to have at least 64 bytes of memory

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ config_getModelNumber_Len()

int config_getModelNumber_Len | ( | OUT char * | sNumber,
|  | IN_OUT int * | sNumberLen
| ) |  |

Polls device for Model Number

Parameters

  sNumber | Returns Model Number
  sNumber | length of Model Number

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ config_getSerialNumber()

int config_getSerialNumber | ( | OUT char * | sNumber | ) |

DEPRECATED : please use config_getSerialNumber_Len(OUT char* sNumber, IN_OUT int *sNumberLen)

Polls device for Serial Number

Parameters

  sNumber | Returns Serial Number; needs to have at least 64 bytes of memory

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ config_getSerialNumber_Len()

int config_getSerialNumber_Len | ( | OUT char * | sNumber,
|  | IN_OUT int * | sNumberLen
| ) |  |

Polls device for Serial Number

Parameters

  sNumber | Returns Serial Number
  sNumberLen | Length of Serial Number

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ config_setBeeperController()

int config_setBeeperController | ( | int | firmwareControlBeeper | ) |

Set the Beeper Controller - AUGUSTA Set the Beeper controlled by software or firmware

Parameters

  firmwareControlBeeper | 1 means firmware control the beeper, 0 means software control beeper.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ config_setCmdTimeOutDuration()

int config_setCmdTimeOutDuration | ( | IN int | millisecond | ) |

Set the timeout duration for regular commands The new timeout value will affect all the functions actually send (sync) commands that doesn’t need to wait for a callback function, such as device_getFirmwareVersion(), device_pingDevice(), device_SendDataCommandNEO(), device_enablePassThrough(), device_setBurstMode(), device_setPollMode(), device_updateFirmware() …etc.

Parameters

  millisecond | timeout value in milliseconds. Please consult the firmware team for the proper value.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString

## ◆ config_setEncryptionControl()

int config_setEncryptionControl | ( | int | msr,
|  | int | icc
| ) |  |

Set Encryption Control - AUGUSTA

Set Encryption Control to switch status between MSR and ICC/EMV function. Following Encryption status supported:

- MSR ON, ICC/EMV ON,
- MSR ON, ICC/EMV OFF,
- MSR OFF, ICC/EMV OFF,

Parameters

  msr | 1: enable MSR with Encryption, 0: disable MSR with Encryption,
  icc | 1: enable ICC with Encryption, 0: disable ICC with Encryption,

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ config_setLEDController()

int config_setLEDController | ( | int | firmwareControlMSRLED,
|  | int | firmwareControlICCLED
| ) |  |

Set the LED Controller - AUGUSTA Set the MSR / ICC LED controlled by software or firmware NOTE: The ICC LED always controlled by software.

Parameters

  firmwareControlMSRLED | 1: firmware control the MSR LED 0: software control the MSR LED
  firmwareControlICCLED | 1: firmware control the ICC LED 0: software control the ICC LED

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ ctls_activateTransaction()

int ctls_activateTransaction | ( | IN const int | _timeout,
|  | IN BYTE * | tags,
|  | IN int | tagsLen
| ) |  |

Start CTLS Transaction Request

Authorizes the CTLS transaction for an ICC card

The tags will be returned in the callback routine.

Parameters

  timeout | Timeout value in seconds.
  tags | The tags to be included in the request. Passed as TLV stream. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100
  tagsLen | The length of tags data buffer.

>>>>>IMPORTANT: parameters for amount and amtOther MUST BE PASSED AS A DOUBLE VALUE WITH DECIMAL POINT. Example, do not pass 1, but instead pass 1.0 or 1.00. Otherwise, results will be unpredictable

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString() Note: if auto poll is on, it will returm the error IDG_P2_STATUS_CODE_COMMAND_NOT_ALLOWED

NOTE ON APPLEPAY VAS: To enable ApplePay VAS, first a merchant record must be defined in one of the six available index positions (1-6) using device_setMerchantRecord, then container tag FFEE06 must be sent as part of the additional tags parameter of ctls_startTransaction. Tag FFEE06 must contain tag 9F26 and 9F22, and can optionanally contain tags 9F2B and DF01. Example FFEE06189F220201009F2604000000009F2B050100000000DF010101 9F22 = two bytes = ApplePay Terminal Applicaiton Version Number. Hard defined as 0100 for now. (required) 9F26 = four bytes = ApplePay Terminal Capabilities Information (required)

- Byte 1 = RFU
- Byte 2 = Terminal Type
- - Bit 8 = VAS Support (1=on, 0 = off)
- - Bit 7 = Touch ID Required (1=on, 0 = off)
- - Bit 6 = RFU
- - Bit 5 = RFU
- - Bit 1, 2, 3, 4
- - - 0 = Payment Terminal
- - - 1 = Transit Terminal
- - - 2 = Access Terminal
- - - 3 = Wireless Handoff Terminal
- - - 4 = App Handoff Terminal
- - - 15 = Other Terminal
- Byte 3 = RFU
- Byte 4 = Terminal Mode
- - 0 = ApplePay VAS OR ApplePay
- - 1 = ApplePay VAS AND ApplePay
- - 2 = ApplePay VAS ONLY
- - 3 = ApplePay ONLY 9F2B = 5 bytes = ApplePay VAS Filter. Each byte filters for that specific merchant index (optional) DF01 = 1 byte = ApplePay VAS Protocol. (optional)
- - Bit 1 : 1 = URL VAS, 0 = Full VAS
- - Bit 2 : 1 = VAS Beeps, 0 = No VAS Beeps
- - Bit 3 : 1 = Silent Comm Error, 2 = EMEA Comm Error
- - Bit 4-8 : RFU

## ◆ ctls_cancelTransaction()

int ctls_cancelTransaction | ( |  | ) |

Cancel EMV Transaction

Cancels the currently executing EMV transaction.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_displayOnlineAuthResult()

int ctls_displayOnlineAuthResult | ( | IN int | statusCode,
|  | IN BYTE * | TLV,
|  | IN int | TLVLen
| ) |  |

Display Online Authorization Result Use this command to display the status of an online authorization request on the reader's display (OK or NOT OK). Use this command after the reader sends an online request to the issuer. The SDK timeout of the command is set to 7 seconds.

Parameters

  statusCode | 1 = OK, 0 = NOT OK, 2 = ARC response 89 for Interac
  TLV | Optional TLV for AOSA
  TLVLen | TLV Length

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_getAllConfigurationGroups()

int ctls_getAllConfigurationGroups | ( | OUT BYTE * | tlv,
|  | IN_OUT int * | tlvLen
| ) |  |

Retrieve All Configuration Groups

Returns all the Configuration Groups installed on the terminal for CTLS

Parameters

  tlv | The TLV elements data
  tlvLen | the length of tlv data buffer.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_getConfigurationGroup()

int ctls_getConfigurationGroup | ( | IN int | group,
|  | OUT BYTE * | tlv,
|  | OUT int * | tlvLen
| ) |  |

Get Configuration Group

Retrieves the Configuration for the specified Group.

Parameters

  group | Configuration Group
  tlv | return data
  tlvLen | the length of tlv data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_registerCallBkp()

void ctls_registerCallBkp | ( | pMSR_callBackp | pMSRf | ) |

To register the ctls callback function to get the CTLS card data pointer. It's the same as msr_registerCallBkp(). (Pass NULL to disable the callback.)

## ◆ ctls_removeAllApplicationData()

int ctls_removeAllApplicationData | ( |  | ) |

Remove All Application Data

Removes all the Application Data

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_removeAllCAPK()

int ctls_removeAllCAPK | ( |  | ) |

Remove All Certificate Authority Public Key

Removes all the CAPK

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_removeApplicationData()

int ctls_removeApplicationData | ( | IN BYTE * | AID,
|  | IN int | AIDLen
| ) |  |

Remove Application Data by AID Removes the Application Data for CTLS as specified by the AID name passed as a parameter

Parameters

  AID | Name of ApplicationID Must be between 5 and 16 bytes
  AIDLen | the length of AID data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_removeCAPK()

int ctls_removeCAPK | ( | IN BYTE * | capk,
|  | IN int | capkLen
| ) |  |

Remove Certificate Authority Public Key

Removes the CAPK as specified by the RID/Index

Parameters

  capk | 6 byte CAPK = 5 bytes RID + 1 byte INDEX
  capkLen | the length of capk data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_removeConfigurationGroup()

int ctls_removeConfigurationGroup | ( | int | group | ) |

Remove Configuration Group

Removes the Configuration as specified by the Group. Must not by group 0

Parameters

  group | Configuration Group

Return values

  RETURN_CODE | Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_retrieveAIDList()

int ctls_retrieveAIDList | ( | OUT BYTE * | AIDList,
|  | IN_OUT int * | AIDListLen
| ) |  |

Retrieve AID list

Returns all the AID names installed on the terminal for CTLS. .

Parameters

  AIDList | array of AID name byte arrays
  AIDListLen | the length of AIDList array buffer

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_retrieveApplicationData()

int ctls_retrieveApplicationData | ( | IN BYTE * | AID,
|  | IN int | AIDLen,
|  | OUT BYTE * | tlv,
|  | IN_OUT int * | tlvLen
| ) |  |

Retrieve Application Data by AID

Retrieves the Application Data as specified by the AID name passed as a parameter.

Parameters

  AID | Name of ApplicationID. Must be between 5 and 16 bytes
  AIDLen | the length of AID data buffer.
  tlv | The TLV elements of the requested AID
  tlvLen | the length of tlv data buffer.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_retrieveCAPK()

int ctls_retrieveCAPK | ( | IN BYTE * | capk,
|  | IN int | capkLen,
|  | OUT BYTE * | key,
|  | IN_OUT int * | keyLen
| ) |  |

Retrieve Certificate Authority Public Key

Retrieves the CAPK for CTLS as specified by the RID/Index passed as a parameter.

Parameters

  capk | 6 bytes CAPK = 5 bytes RID + 1 byte Index
  capkLen | the length of capk data buffer
  key | Response returned as a CAKey format: [5 bytes RID][1 byte Index][1 byte Hash Algorithm][1 byte Encryption Algorithm] [20 bytes HashValue][4 bytes Public Key Exponent][2 bytes Modulus Length][Variable bytes Modulus] Where: Hash Algorithm: The only algorithm supported is SHA-1.The value is set to 0x01 Encryption Algorithm: The encryption algorithm in which this key is used. Currently support only one type: RSA. The value is set to 0x01. HashValue: Which is calculated using SHA-1 over the following fields: RID & Index & Modulus & Exponent Public Key Exponent: Actually, the real length of the exponent is either one byte or 3 bytes. It can have two values: 3 (Format is 0x00 00 00 03), or 65537 (Format is 0x00 01 00 01) Modulus Length: LenL LenH Indicated the length of the next field. Modulus: This is the modulus field of the public key. Its length is specified in the field above.
  keyLen | the length of key data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_retrieveCAPKList()

int ctls_retrieveCAPKList | ( | OUT BYTE * | keys,
|  | IN_OUT int * | keysLen
| ) |  |

Retrieve the Certificate Authority Public Key list

Returns all the CAPK RID and Index installed on the terminal.

Parameters

  keys | [key1][key2]...[keyn], each key 6 bytes where key = 5 bytes RID + 1 byte index
  keysLen | the length of keys data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_retrieveTerminalData()

int ctls_retrieveTerminalData | ( | OUT BYTE * | tlv,
|  | IN_OUT int * | tlvLen
| ) |  |

Retrieve Terminal Data

Retrieves the Terminal Data for CTLS. This is configuration group 0 (Tag FFEE - > FFEE0100). The terminal data can also be retrieved by ctls_getConfigurationGroup(0).

Parameters

  tlv | Response returned as a TLV
  tlvLen | the length of tlv data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_setApplicationData()

int ctls_setApplicationData | ( | IN BYTE * | tlv,
|  | IN int | tlvLen
| ) |  |

Set Application Data by AID

Sets the Application Data for CTLS as specified by TLV data

Parameters

  tlv | Application data in TLV format The first tag of the TLV data must be the group number (FFE4). The second tag of the TLV data must be the AID (9F06)

Example valid TLV, for Group #2, AID a0000000035010: "ffe401029f0607a0000000051010ffe10101ffe50110ffe30114ffe20106"

Parameters

  tlvLen | the length of tlv data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_setCAPK()

int ctls_setCAPK | ( | IN BYTE * | capk,
|  | IN int | capkLen
| ) |  |

Set Certificate Authority Public Key

Sets the CAPK as specified by the CAKey structure

Parameters

  capk | CAKey format: [5 bytes RID][1 byte Index][1 byte Hash Algorithm][1 byte Encryption Algorithm][20 bytes HashValue][4 bytes Public Key Exponent][2 bytes Modulus Length][Variable bytes Modulus] Where: Hash Algorithm: The only algorithm supported is SHA-1.The value is set to 0x01 Encryption Algorithm: The encryption algorithm in which this key is used. Currently support only one type: RSA. The value is set to 0x01. HashValue: Which is calculated using SHA-1 over the following fields: RID & Index & Modulus & Exponent Public Key Exponent: Actually, the real length of the exponent is either one byte or 3 bytes. It can have two values: 3 (Format is 0x00 00 00 03), or 65537 (Format is 0x00 01 00 01) Modulus Length: LenL LenH Indicated the length of the next field. Modulus: This is the modulus field of the public key. Its length is specified in the field above.
  capkLen | the length of capk data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_setConfigurationGroup()

int ctls_setConfigurationGroup | ( | IN BYTE * | tlv,
|  | IN int | tlvLen
| ) |  |

Set Configuration Group

Sets the Configuration Group for CTLS as specified by the TLV data

Parameters

  tlv | Configuration Group Data in TLV format The first tag of the TLV data must be the group number (FFE4 or DFEE2D). A second tag must exist
  tlvLen | the length of tlv data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_setTerminalData()

int ctls_setTerminalData | ( | IN BYTE * | tlv,
|  | IN int | tlvLen
| ) |  |

Set Terminal Data

Sets the Terminal Data for CTLS as specified by the TLV. The first TLV must be Configuration Group Number (Tag FFE4). The terminal global data is group 0, so the first TLV would be FFE40100. Other groups can be defined using this method (1 or greater), and those can be retrieved with ctls_getConfigurationGroup(int group), and deleted with ctls_removeConfigurationGroup(int group). You cannot delete group 0

Parameters

  tlv | TerminalData configuration file
  tlvLen | the length of tlv data buffer

Return values

  RETURN_CODE | Values can be parsed with device_getIDGStatusCodeString()

## ◆ ctls_startTransaction()

int ctls_startTransaction | ( | IN double | amount,
|  | IN double | amtOther,
|  | IN int | type,
|  | IN const int | _timeout,
|  | IN BYTE * | tags,
|  | IN int | tagsLen
| ) |  |

Start CTLS Transaction Request

Authorizes the CTLS transaction for an ICC card

The tags will be returned in the callback routine.

Parameters

  amount | Transaction amount value (tag value 9F02) - SEE IMPORTANT NOTE BELOW
  amtOther | Other amount value, if any (tag value 9F03) - SEE IMPORTANT NOTE BELOW
  type | Transaction type (tag value 9C).
  timeout | Timeout value in seconds.
  tags | Any other tags to be included in the request. Passed as TLV stream. Example, tag 9F0C with amount 0x000000000100 would be 0x9F0C06000000000100 If tags 9F02 (amount), 9F03 (other amount), or 9C (transaction type) are included, they will take priority over these values supplied as individual parameters to this method.
  tagsLen | The length of tags data buffer.

>>>>>IMPORTANT: parameters for amount and amtOther MUST BE PASSED AS A DOUBLE VALUE WITH DECIMAL POINT. Example, do not pass 1, but instead pass 1.0 or 1.00. Otherwise, results will be unpredictable

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString() Note: if auto poll is on, it will returm the error IDG_P2_STATUS_CODE_COMMAND_NOT_ALLOWED

NOTE ON APPLEPAY VAS: To enable ApplePay VAS, first a merchant record must be defined in one of the six available index positions (1-6) using device_setMerchantRecord, then container tag FFEE06 must be sent as part of the additional tags parameter of ctls_startTransaction. Tag FFEE06 must contain tag 9F26 and 9F22, and can optionanally contain tags 9F2B and DF01. Example FFEE06189F220201009F2604000000009F2B050100000000DF010101 9F22 = two bytes = ApplePay Terminal Applicaiton Version Number. Hard defined as 0100 for now. (required) 9F26 = four bytes = ApplePay Terminal Capabilities Information (required)

- Byte 1 = RFU
- Byte 2 = Terminal Type
- - Bit 8 = VAS Support (1=on, 0 = off)
- - Bit 7 = Touch ID Required (1=on, 0 = off)
- - Bit 6 = RFU
- - Bit 5 = RFU
- - Bit 1, 2, 3, 4
- - - 0 = Payment Terminal
- - - 1 = Transit Terminal
- - - 2 = Access Terminal
- - - 3 = Wireless Handoff Terminal
- - - 4 = App Handoff Terminal
- - - 15 = Other Terminal
- Byte 3 = RFU
- Byte 4 = Terminal Mode
- - 0 = ApplePay VAS OR ApplePay
- - 1 = ApplePay VAS AND ApplePay
- - 2 = ApplePay VAS ONLY
- - 3 = ApplePay ONLY 9F2B = 5 bytes = ApplePay VAS Filter. Each byte filters for that specific merchant index (optional) DF01 = 1 byte = ApplePay VAS Protocol. (optional)
- - Bit 1 : 1 = URL VAS, 0 = Full VAS
- - Bit 2 : 1 = VAS Beeps, 0 = No VAS Beeps
- - Bit 3 : 1 = Silent Comm Error, 2 = EMEA Comm Error
- - Bit 4-8 : RFU

## ◆ device_activateTransaction()

int device_activateTransaction | ( | IN const int | _timeout,
|  | IN BYTE * | tags,
|  | IN int | tagsLen
| ) |  |

Start Transaction Request

Authorizes the transaction for an MSR/CTLS/ICC card

The tags will be returned in the callback routine.

Parameters

  timeout | Timeout value in seconds.
  tags | The tags to be included in the request. Passed as a TLV. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100 Be sure to include 9F02 (amount)and9C (transaction type).
  tagsLen | The length of tags data buffer.

>>>>>IMPORTANT: parameters for amount and amtOther MUST BE PASSED AS A DOUBLE VALUE WITH DECIMAL POINT. Example, do not pass 1, but instead pass 1.0 or 1.00. Otherwise, results will be unpredictable

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString() Note: if auto poll is on, it will returm the error IDG_P2_STATUS_CODE_COMMAND_NOT_ALLOWED

NOTE ON APPLEPAY VAS: To enable ApplePay VAS, first a merchant record must be defined in one of the six available index positions (1-6) using device_setMerchantRecord, then container tag FFEE06 must be sent as part of the additional tags parameter of device_startTransaction. Tag FFEE06 must contain tag 9F26 and 9F22, and can optionanally contain tags 9F2B and DF01. Example FFEE06189F220201009F2604000000009F2B050100000000DF010101

9F22 = two bytes = ApplePay Terminal Applicaiton Version Number. Hard defined as 0100 for now. (required) 9F26 = four bytes = ApplePay Terminal Capabilities Information (required)

- Byte 1 = RFU
- Byte 2 = Terminal Type
- - Bit 8 = VAS Support (1=on, 0 = off)
- - Bit 7 = Touch ID Required (1=on, 0 = off)
- - Bit 6 = RFU
- - Bit 5 = RFU
- - Bit 1, 2, 3, 4
- - - 0 = Payment Terminal
- - - 1 = Transit Terminal
- - - 2 = Access Terminal
- - - 3 = Wireless Handoff Terminal
- - - 4 = App Handoff Terminal
- - - 15 = Other Terminal
- Byte 3 = RFU
- Byte 4 = Terminal Mode
- - 0 = ApplePay VAS OR ApplePay
- - 1 = ApplePay VAS AND ApplePay
- - 2 = ApplePay VAS ONLY
- - 3 = ApplePay ONLY 9F2B = 5 bytes = ApplePay VAS Filter. Each byte filters for that specific merchant index (optional) DF01 = 1 byte = ApplePay VAS Protocol. (optional)
- - Bit 1 : 1 = URL VAS, 0 = Full VAS
- - Bit 2 : 1 = VAS Beeps, 0 = No VAS Beeps
- - Bit 3 : 1 = Silent Comm Error, 2 = EMEA Comm Error
- - Bit 4-8 : RFU

## ◆ device_buzzerOnOff()

int device_buzzerOnOff | ( |  | ) |

Use this function to make the buzzer beep once

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_calibrateParameters()

int device_calibrateParameters | ( | BYTE | delta | ) |

Calibrate reference parameters

Parameters

  delta | Delta value (0x02 standard default value)

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ device_cancelTransaction()

int device_cancelTransaction | ( |  | ) |

Cancel Transaction

Cancels the currently executing transaction.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_cancelTransactionSilent()

int device_cancelTransactionSilent | ( | int | enable | ) |

Cancel Transaction Silent

Cancel transaction with or without showing the LCD message

Parameters

  enable | 0: With LCD message 1: Without LCD message

Returns
  success or error code. Values can be parsed with device_getIDGStatusCodeString

## ◆ device_close()

int device_close | ( |  | ) |

Close the device

Returns
  RETURN_CODE: 0: success, 0x0A: failed

## ◆ device_configureButtons()

int device_configureButtons | ( | IN BYTE | done,
|  | IN BYTE | swipe,
|  | IN BYTE | delay
| ) |  |

Configures the buttons on the ViVOpay Vendi reader

Parameters

  done | 0x01: the Done switch is enabled 0x00: the Done switch is disabled
  swipe | 0x01: the Swipe Card switch is enabled 0x00: the Swipe Card switch is disabled
  delay | an unsigned delay value (<= 30) in seconds

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_controlBeep()

int device_controlBeep | ( | int | index,
|  | int | frequency,
|  | int | duration
| ) |  |

Control Beep - AUGUSTA

Controls the Beeper

Parameters

  index | For Augusta, must be set to 1 (only one beeper)
  frequency | Frequency, range 1000-20000 (suggest minimum 3000)
  duration | Duration, in milliseconds (range 1 - 65525)

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ device_controlIndicator()

int device_controlIndicator | ( | IN int | indicator,
|  | IN int | enable
| ) |  |

Control Indicators

Control the reader. If connected, returns success. Otherwise, returns timeout.

Parameters

  indicator | description as follows: 00h: ICC LED 01h: Blue MSR 02h: Red MSR 03h: Green MSR
  enable | TRUE = ON, FALSE = OFF

Returns
  success or error code. Values can be parsed with device_getResponseCodeString

See also
  ErrorCode

## ◆ device_controlLED()

int device_controlLED | ( | byte | indexLED,
|  | byte | control,
|  | int | intervalOn,
|  | int | intervalOff
| ) |  |

Control MSR LED - AUGUSTA

Controls the LED for the MSR

Parameters

  indexLED | For Augusta, must be set to 1 (MSR LED)
  control | LED Status: 00: OFF 01: RED Solid 02: RED Blink 11: GREEN Solid 12: GREEN Blink 21: BLUE Solid 22: BLUE Blink
  intervalOn | Blink interval ON, in ms (Range 200 - 2000)
  intervalOff | Blink interval OFF, in ms (Range 200 - 2000)

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

intervalOn = 500, int intervalOff = 500

## ◆ device_controlLED_ICC()

int device_controlLED_ICC | ( | int | controlMode,
|  | int | interval
| ) |  |

Control ICC LED - AUGUSTA

Controls the LED for the ICC card slot

Parameters

  controlMode | 0 = off, 1 = solid, 2 = blink
  interval | Blink interval, in ms (500 = 500 ms)

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ device_controlLED_MSR()

int device_controlLED_MSR | ( | byte | control,
|  | int | intervalOn,
|  | int | intervalOff
| ) |  |

Control the MSR LED - AUGUSTA

Controls the MSR / ICC LED This API not recommended to control ICC LED

Parameters

  control | 0x00 = off, 0x01 = RED Solid, 0x02 = RED Blink, 0x11 = GREEN Solid, 0x12 = GREEN Blink, 0x21 = BLUE Solid, 0x22 = BLUE Blink,
  intervalOn | Blink interval on time last, in ms (500 = 500 ms, valid from 200 to 2000)
  intervalOff | Blink interval off time last, in ms (500 = 500 ms, valid from 200 to 2000)

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

int intervalOn = 500, int intervalOff = 500)

## ◆ device_controlUserInterface()

int device_controlUserInterface | ( | IN BYTE * | values | ) |

Control User Interface - NEO only

Controls the User Interface: Display, Beep, LED

Parameters

  values | Four bytes to control the user interface Byte[0] = LCD Message Messages 00-07 are normally controlled by the reader. 00h: Idle Message (Welcome) 01h: Present card (Please Present Card) 02h: Time Out or Transaction cancel (No Card) 03h: Transaction between reader and card is in the middle (Processing...) 04h: Transaction Pass (Thank You) 05h: Transaction Fail (Fail) 06h: Amount (Amount $ 0.00 Tap Card) 07h: Balance or Offline Available funds (Balance $ 0.00) Messages 08-0B are controlled by the terminal 08h: Insert or Swipe card (Use Chip & PIN) 09h: Try Again(Tap Again) 0Ah: Tells the customer to present only one card (Present 1 card only) 0Bh: Tells the customer to wait for authentication/authorization (Wait) FFh: indicates the command is setting the LED/Buzzer only. Byte[1] = Beep Indicator 00h: No beep 01h: Single beep 02h: Double beep 03h: Three short beeps 04h: Four short beeps 05h: One long beep of 200 ms 06h: One long beep of 400 ms 07h: One long beep of 600 ms 08h: One long beep of 800 ms Byte[2] = LED Number 00h: LED 0 (Power LED) 01h: LED 1 02h: LED 2 03h: LED 3 FFh: All LEDs Byte[3] = LED Status 00h: LED Off 01h: LED On

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_createDirectory()

int device_createDirectory | ( | IN char * | directoryName,
|  | IN int | directoryNameLen
| ) |  |

Create Directory This command adds a subdirectory to the indicated path.

Parameters

  directoryName | Directory Name. The data for this command is ASCII string with the complete path and directory name you want to create. You do not need to specify the root directory. Indicate subdirectories with a forward slash (/).
  directoryNameLen | Directory Name Length.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_deleteDirectory()

int device_deleteDirectory | ( | IN char * | dirName,
|  | IN int | dirNameLen
| ) |  |

Delete Directory This command deletes an empty directory. For NEO 2 devices, it will delete the directory even the directory is not empty.

Parameters

  dirName | Complete path of the directory you want to delete. You do not need to specify the root directory. Indicate subdirectories with a forward slash (/). For NEO 2 devices, to delete the root directory, simply pass "" with 0 for dirNameLen.
  dirNameLen | Directory Name Length.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_deleteFile()

int device_deleteFile | ( | IN char * | fileName,
|  | IN int | fileNameLen
| ) |  |

Delete File This command deletes a file or group of files.

Parameters

  filename | Complete path and file name of the file you want to delete. You do not need to specify the root directory. Indicate subdirectories with a forward slash (/).
  filenameLen | File Name Length.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_disableBlueLED()

int device_disableBlueLED | ( |  | ) |

Stops the blue LEDs on the ViVOpay Vendi reader from flashing in left to right sequence and turns the LEDs off, and contactless function is disable at the same time

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_enableBlueLED()

int device_enableBlueLED | ( | IN BYTE * | data,
|  | IN int | dataLen
| ) |  |

Use this function to control the blue LED behavior on the Vendi reader

Parameters

  data | Sequence data Byte 0 (Cycle): 0 = Cycle once, 1 = Repeat Byte 1 (LEDs): LED State Bitmap Byte 2-3 (Duration): Given in multiples of 10 millisecond Byte 4 (LED): LED State Bitmap Byte 5-6 (Duration): Given in multiples of 10 millisecond Byte 7-24 (Additional LED/Durations): Define up to 8 LED and duration pairs

LED State Bitmap: Bit 8: Left blue LED, 0 = off, 1 = on Bit 7: Center Blue LED, 0 = off, 1 = on Bit 6: Right Blue LED0 = off, 1 = on Bit 5: Yellow LED, 0 = off, 1 = on Bit 4: Reserved for future use Bit 3: Reserved for future use Bit 2: Reserved for future use Bit 1: Reserved for future use

Parameters

  dataLen | Length of the sequence data: 0 or 4 to 25 bytes

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_enableExternalLCDMessages()

int device_enableExternalLCDMessages | ( | IN int | enableExtLCDMsg | ) |

Enable or disable the external LCD message It will turn off the external LCD messages including EMV transactions. (For the users who only need MSR and/or CTLS transactions.) The function only works for VP5300

Parameters

  enableExtLCDMsg | 1 = ON, 0 = OFF

Returns
  success or error code. Values can be parsed with device_getIDGStatusCodeString

See also
  ErrorCode

## ◆ device_enableL100PassThrough()

int device_enableL100PassThrough | ( | int | enableL100PassThrough | ) |

Enable L100 Pass Through

Enables Pass Through Mode for direct communication to L100 hook up to NEO II device

Parameters

  enableL100PassThrough | 1 = pass through ON, 0 = pass through OFF

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ device_enableL80PassThrough()

int device_enableL80PassThrough | ( | int | enableL80PassThrough | ) |

Enable L80 Pass Through

Enables Pass Through Mode for direct communication to L80 hook up to NEO II device

Parameters

  enableL80PassThrough | 1 = pass through ON, 0 = pass through OFF

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ device_enablePassThrough()

int device_enablePassThrough | ( | int | enablePassThrough | ) |

Enable Pass Through - NEO

Enables Pass Through Mode for direct communication with L1 interface (power on icc, send apdu, etc).

Parameters

  enablePassThrough | 1 = pass through ON, 0 = pass through OFF

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_enableRFAntenna()

int device_enableRFAntenna | ( | IN int | enableAntenna | ) |

Enable or disable the RF Antenna

Parameters

  enableAntenna | 1 = ON, 0 = OFF

Returns
  success or error code. Values can be parsed with device_getIDGStatusCodeString

See also
  ErrorCode

## ◆ device_enhancedPassthrough()

int device_enhancedPassthrough | ( | IN BYTE * | data,
|  | IN int | dataLen
| ) |  |

Enables pass through mode for ICC. Required when direct ICC commands are required (power on/off ICC, exchange APDU)

Parameters

  data | The data includes Poll Timeout, Flags, Contact Interface to Use, Beep Indicator, LED Status, and Display Strings.
  dataLen | length of data

Returns
  success or error code. Values can be parsed with device_getIDGStatusCodeString

See also
  ErrorCode

## ◆ device_enterStopMode()

int device_enterStopMode | ( |  | ) |

Enter Stop Mode

Set device enter to stop mode. In stop mode, LCD display and backlight is off. Stop mode reduces power consumption to the lowest possible level. A unit in stop mode can only be woken up by a physical key press.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ device_getAudioVolume()

int device_getAudioVolume | ( | OUT BYTE * | volume | ) |

Get Audio Volume This command retrieves the reader’s audio volume.

Parameters

  volume | Value 0-20, where 0 is silent and 20 is full volume

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_getButtonConfiguration()

int device_getButtonConfiguration | ( | OUT BYTE * | done,
|  | OUT BYTE * | swipe,
|  | OUT BYTE * | delay
| ) |  |

Reads the button configuration from the ViVOpay Vendi reader

Parameters

  done | 0x01: the Done switch is enabled 0x00: the Done switch is disabled
  swipe | 0x01: the Swipe Card switch is enabled 0x00: the Swipe Card switch is disabled
  delay | an unsigned delay value in seconds

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_getCameraParameters()

int device_getCameraParameters | ( | OUT BYTE * | isAutoFocus,
|  | OUT BYTE * | focalLength
| ) |  |

Get Camera Parameters This command is used to get the camera parameters (e.g., auto/fixed focal length as focus).

Parameters

  isAutoFocus | 0: fixed focus, 1: auto focus
  focalLength | focal length Value 0x00-0xFF, where 0x00 is the farthest, 0xFF is nearest. Not used for auto focus.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_getCurrentDeviceType()

int device_getCurrentDeviceType | ( |  | ) |

Get current active device type

Returns
  : return the device type defined as DEVICE_TYPE in the IDTDef.h

## ◆ device_getDateTime()

int device_getDateTime | ( | OUT BYTE * | dateTime | ) |

DEPRECATED : please use device_getDateTime_Len(OUT BYTE* dateTime, IN_OUT int *dateTimeLen)

Polls device for Date and Time

Parameters

  dateTime | Response returned of Date and Time; needs to have at least 6 bytes of memory

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ device_getDateTime_Len()

int device_getDateTime_Len | ( | OUT BYTE * | dateTime,
|  | IN_OUT int * | dateTimeLen
| ) |  |

Polls device for Date and Time

Parameters

  dateTime | Response returned of Date and Time
  dateTime | Length of Date and Time

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ device_getDeviceMemoryUsageInfo()

int device_getDeviceMemoryUsageInfo | ( | OUT int * | freeHeapSize,
|  | OUT int * | notFreedBlockCnt,
|  | OUT int * | minEverFreeHeapSize
| ) |  |

Update Firmware with zip file Updates the firmware of NEO 2 devices.

Parameters

  firmwareZipFilename | Firmware zip file name. For example "package_VP6300 FW v1.01.003.0432.T.zip"
  firmwareZipFilenameLen | Firmware zip file name length

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

Firmware update status is returned in the callback with the following values: sender = device type state = DEVICE_FIRMWARE_UPDATE current block total blocks ResultCode:

- RETURN_CODE_DO_SUCCESS = Firmware Update Completed Successfully
- Any other return code represents an error condition Note: to call this function under Windows, the executable file "unzip.exe" is required Get Device Memory Usage Information
  Parameters

    freeHeapSize | Free Heap Size: Available heap size
    notFreedBlockCnt | Memory Not Freed Block Count: Memory in use block count
    minEverFreeHeapSize | Minimum Ever Free Heap Size: The lowest ever available heap size

  Returns
    RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_getDriveFreeSpace()

int device_getDriveFreeSpace | ( | OUT int * | free,
|  | OUT int * | used
| ) |  |

Drive Free Space This command returns the free and used disk space on the flash drive.

Parameters

  free | Free bytes available on device
  used | Used bytes on on device

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_getDRS()

int device_getDRS | ( | BYTE * | codeDRS,
|  | int * | codeDRSLen
| ) |  |

Get DRS Status

Gets the status of DRS(Destructive Reset).

Parameters

  codeDRS | the data format is [DRS SourceBlk Number] [SourceBlk1] ... [SourceBlkN] [DRS SourceBlk Number] is 2 bytes, format is NumL NumH. It is Number of [SourceBlkX] [SourceBlkX] is n bytes, Format is [SourceID] [SourceLen] [SourceData] [SourceID] is 1 byte [SourceLen] is 1 byte, it is length of [SourceData]

[SourceID] [SourceLen] [SourceData] 00 1 01 - Application Error 01 1 01 - Application Error 02 1 0x01 - EMV L2 Configuration Check Value Error 0x02 - Future Key Check Value Error 10 1 01 - Battery Error 11 1 Bit 0 - Tamper Switch 1 (0-No, 1-Error) Bit 1 - Tamper Switch 2 (0-No, 1-Error) Bit 2 - Tamper Switch 3 (0-No, 1-Error) Bit 3 - Tamper Switch 4 (0-No, 1-Error) Bit 4 - Tamper Switch 5 (0-No, 1-Error) Bit 5 - Tamper Switch 6 (0-No, 1-Error)

12 1 01 - TemperatureHigh or Low 13 1 01 - Voltage High or Low 1F 4 Reg31~24bits, Reg23~16bits, Reg15~8bits, Reg7~0bits

Parameters

  codeDRSLen | the length of codeDRS

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString() Note: Only support TTK devices

## ◆ device_getFirmwareVersion()

int device_getFirmwareVersion | ( | OUT char * | firmwareVersion | ) |

DEPRECATED : please use device_getFirmwareVersion_Len(OUT char* firmwareVersion, IN_OUT int *firmwareVersionLen)

Polls device for Firmware Version

Parameters

  firmwareVersion | Response returned of Firmware Version; needs to have at least 128 bytes of memory

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ device_getFirmwareVersion_Len()

int device_getFirmwareVersion_Len | ( | OUT char * | firmwareVersion,
|  | IN_OUT int * | firmwareVersionLen
| ) |  |

Polls device for Firmware Version

Parameters

  firmwareVersion | Response returned of Firmware Version
  firmwareVersionLen | Length of Firmware Version

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ device_getIDGStatusCodeString()

void device_getIDGStatusCodeString | ( | IN int | returnCode,
|  | OUT char * | despcrition
| ) |  |

Review the return code description.

Parameters

  returnCode | the response result.
  description |

Return values

  the | string for description of response result

- 0: "no error, beginning task";
- 1: "no response from reader";
- 2: "invalid response data";
- 01: " Incorrect Header Tag";
- 02: " Unknown Command";
- 03: " Unknown Sub-Command";
- 04: " CRC Error in Frame";
- 05: " Incorrect Parameter";
- 06: " Parameter Not Supported";
- 07: " Mal-formatted Data";
- 08: " Timeout";
- 0A: " Failed / NACK";
- 0B: " Command not Allowed";
- 0C: " Sub-Command not Allowed";
- 0D: " Buffer Overflow (Data Length too large for reader buffer)";
- 0E: " User Interface Event";
- 10: " Need clear firmware(apply in boot loader only)";
- 11: " Communication type not supported, VT-1, burst, etc. Need encrypted firmware (apply in boot loader only)";
- 12: " Secure interface is not functional or is in an intermediate state.";
- 13: " Data field is not mod 8";
- 14: " Pad 0x80 not found where expected";
- 15: " Specified key type is invalid";
- 16: " Could not retrieve key from the SAM (InitSecureComm)";
- 17: " Hash code problem";
- 18: " Could not store the key into the SAM (InstallKey)";
- 19: " Frame is too large";
- 1A: " Unit powered up in authentication state but POS must resend the InitSecureComm command";
- 1B: " The EEPROM may not be initialized because SecCommInterface does not make sense";
- 1C: " Problem encoding APDU Module-Specific Status Codes ";
- 20: " Unsupported Index (ILM) SAM Transceiver error - problem communicating with the SAM (Key Mgr)";
- 21: " Unexpected Sequence Counter in multiple frames for single bitmap (ILM)Length error in data returned from the SAM (Key Mgr) - 22: " Improper bit map (ILM)"; - 23: " Request Online Authorization"; - 24: " ViVOCard3 raw data read successful"; - 25: " Message index not available (ILM) ViVOcomm activate transaction card type (ViVOcomm)"; - 26: " Version Information Mismatch (ILM)"; - 27: " Not sending commands in correct index message index (ILM)"; - 28: " Time out or next expected message not received (ILM)"; - 29: " ILM languages not available for viewing (ILM)"; - 2A: " Other language not supported (ILM)"; - 41: " from 41 to 4F, Module-specific errors for Key Manager";
- 50: " Auto-Switch OK";
- 51: " Auto-Switch failed";
- 70: " Antenna Error 80h Use another card";
- 81: " Insert or swipe card";
- 90: " Data encryption Key does not exist";
- 91: " Data encryption Key KSN exhausted";

## ◆ device_getKeyStatus()

int device_getKeyStatus | ( | int * | newFormat,
|  | BYTE * | status,
|  | int * | statusLen
| ) |  |

Get Key Status

Gets the status of loaded keys

Parameters

  status | newFormat for Augusta and miniSmartII only 1: new format of key status 0: reserved format for support previous device
  status | For L80, L100, Augusta and miniSmartII: When the newFormat is 0, data format as follows. For Augusta and miniSmartII: byte 0: PIN DUKPT Key, Does not support, always 0 byte 1: PIN Master Key, Does not support, always 0 byte 2: PIN Session Key, Does not support, always 0 byte 3: Account/MSR DUKPT Key, 1 Exists, 0 None, 0xFF STOP byte 4: Account/ICC DUKPT Key, 1 Exists, 0 None, 0xFF STOP byte 5: Admin DUKPT Key, 1 Exists, 0 None, 0xFF STOP For L80 and L100: byte 0: PIN DUKPT Key byte 1: PIN Master Key byte 2: Standard PIN Session Key byte 3: Desjardins PIN Session Key byte 4: Account/MSR DUKPT Key, 1 Exists, 0 None, 0xFF STOP, Does not support, always 0 byte 5: Account/ICC DUKPT Key, 1 Exists, 0 None, 0xFF STOP, Does not support, always 0 byte 6: Admin DUKPT Key, 1 Exists, 0 None, 0xFF STOP byte 7: Data DUKPT Key, 1 Exists, 0 None, 0xFF STOP byte 8: MAC DUKPT Key, 1 Exists, 0 None, 0xFF STOP

when the newFormat is 1, data format as follows. [Block Length] [KeyStatusBlock1] [KeyStatusBlock2]...[KeyStatusBlockN] Where: [Block Length] is 2 bytes, format is Len_L Len_H, is KeyStatusBlock Number [KeyStatusBlockX> is 4 bytes, format is [Key Index and Key Name] [key slot] [key status]: [Key Index and Key Name] is 1 byte. Please refer to following table 0x14 LCL-KEK to Encrypt Other Keys 0x02 Data encryption Key to Encrypt ICC/MSR 0x05 MAC DUKPT Key for Host-Device - MAC Verification 0x05 MTK DUKPT Key for TTK Self-Test 0x0C RKI-KEK for Remote Key Injection [key slot] is 2 bytes. Range is 0 - 9999 the MTK DUKPT Key slot is 16, the others are all 0 [key status] is 1 byte. 0 - Not Exist 1 - Exist 0xFF - (Stop. Only Valid for DUKPT Key) For NEO2 and SREDKey2: Each unit of three bytes represents one key's parameters (index and slot). Key Name Index (1 byte): 0x14 - LCL-KEK 0x01 - Pin encryption Key (NEO2 only) 0x02 - Data encryption Key 0x05 - MAC DUKPT Key 0x0A - PCI Pairing Key (NEO2 only) Key Slot (2 bytes): Indicate different slots of a certain Key Name Example: slot =5 (0x00 0x05), slot=300 (0x01 0x2C) For BTPay380, slot is always 0 For example, 0x14 0x00 0x00 0x02 0x00 0x00 0x0A 0x00 0x00 will represent [KeyNameIndex=0x14,KeySlot=0x0000], [KeyNameIndex=0x02,KeySlot=0x0000] and [KeyNameIndex=0x0A,KeySlot=0x0000]

Parameters

  statusLen | the length of status

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ device_getL100PassThroughMode()

int device_getL100PassThroughMode | ( |  | ) |

Get L100 Pass Through Mode

Get current Pass Through Mode for direct communication to L100 hook up to NEO II device

Returns
  RETURN_CODE: return 1 if L100 Pass Through Mode is TRUE, 0 if L100 Pass Through Mode is FALSE

## ◆ device_getL80PassThroughMode()

int device_getL80PassThroughMode | ( |  | ) |

Get L80 Pass Through Mode

Get current Pass Through Mode for direct communication to L80 hook up to NEO II device

Returns
  RETURN_CODE: return 1 if L80 Pass Through Mode is TRUE, 0 if L80 Pass Through Mode is FALSE

## ◆ device_getMerchantRecord()

int device_getMerchantRecord | ( | IN int | index,
|  | OUT BYTE * | record
| ) |  |

DEPRECATED : please use device_getMerchantRecord_Len(IN int index, OUT BYTE * record, IN_OUT int *recordLen)

Get Merchant Record

Gets the merchant record for the device.

Parameters

  index | Merchant Record index, valid values 1-6
  record; | needs to have at least 99 bytes of memory response data from reader. Merchant Record Index: 1 byte enabled: 1 byte Merchant ID: 32 bytes Length of Merchant URL: 1 byte Merchant URL: 64 bytes

Returns
  success or error code. Values can be parsed with device_getIDGStatusCodeString()

See also
  ErrorCode

## ◆ device_getMerchantRecord_Len()

int device_getMerchantRecord_Len | ( | IN int | index,
|  | OUT BYTE * | record,
|  | IN_OUT int * | recordLen
| ) |  |

Get Merchant Record

Gets the merchant record for the device.

Parameters

  index | Merchant Record index, valid values 1-6
  record | response data from reader. Merchant Record Index: 1 byte enabled: 1 byte Merchant ID: 32 bytes Length of Merchant URL: 1 byte Merchant URL: 64 bytes
  recordLen | Length of record

Returns
  success or error code. Values can be parsed with device_getIDGStatusCodeString()

See also
  ErrorCode

## ◆ device_getResponseCodeString()

void device_getResponseCodeString | ( | IN int | returnCode,
|  | OUT char * | despcrition
| ) |  |

Review the return code description.

Parameters

  returnCode | the response result.
  description |

Return values

  the | string for description of response result

- 0: "no error, beginning task";
- 1: "no response from reader";
- 2: "invalid response data";
- 3: "time out for task or CMD";
- 4: "wrong parameter";
- 5: "SDK is doing MSR or ICC task";
- 6: "SDK is doing PINPad task";
- 7: "SDK is doing CTLS task";
- 8: "SDK is doing EMV task";
- 9: "SDK is doing Other task";
- 10: "err response or data";
- 11: "no reader attached";
- 12: "mono audio is enabled";
- 13: "did connection";
- 14: "audio volume is too low";
- 15: "task or CMD be canceled";
- 16: "UF wrong string format";
- 17: "UF file not found";
- 18: "UF wrong file format";
- 19: "Attempt to contact online host failed";
- 20: "Attempt to perform RKI failed";
- 22: "Buffer size is not enough";
- 0X300: "Key Type(TDES) of Session Key is not same as the related Master Key.";
- 0X400: "Related Key was not loaded.";
- 0X500: "Key Same.";
- 0X501: "Key is all zero";
- 0X502: "TR-31 format error";
- 0X702: "PAN is Error Key.";
- 0X705: "No Internal MSR PAN (or Internal MSR PAN is erased timeout)";
- 0X0C01: "Incorrect Frame Tag";
- 0X0C02: "Incorrect Frame Type";
- 0X0C03: "Unknown Frame Type";
- 0X0C04: "Unknown Command";
- 0X0C05: "Unknown Sub-Command";
- 0X0C06: "CRC Error";
- 0X0C07: "Failed";
- 0X0C08: "Timeout";
- 0X0C0A: "Incorrect Parameter";
- 0X0C0B: "Command Not Supported";
- 0X0C0C: "Sub-Command Not Supported";
- 0X0C0D: "Parameter Not Supported / Status Abort Command";
- 0X0C0F: "Sub-Command Not Allowed";
- 0X0D01: "Incorrect Header Tag";
- 0X0D02: "Unknown Command";
- 0X0D03: "Unknown Sub-Command";
- 0X0D04: "CRC Error in Frame";
- 0X0D05: "Incorrect Parameter";
- 0X0D06: "Parameter Not Supported";
- 0X0D07: "Mal-formatted Data";
- 0X0D08: "Timeout";
- 0X0D0A: "Failed / NACK";
- 0X0D0B: "Command not Allowed";
- 0X0D0C: "Sub-Command not Allowed";
- 0X0D0D: "Buffer Overflow (Data Length too large for reader buffer)";
- 0X0D0E: "User Interface Event";
- 0X0D11: "Communication type not supported, VT-1, burst, etc.";
- 0X0D12: "Secure interface is not functional or is in an intermediate state.";
- 0X0D13: "Data field is not mod 8";
- 0X0D14: "Pad - 0X80 not found where expected";
- 0X0D15: "Specified key type is invalid";
- 0X0D1: "Could not retrieve key from the SAM(InitSecureComm)";
- 0X0D17: "Hash code problem";
- 0X0D18: "Could not store the key into the SAM(InstallKey)";
- 0X0D19: "Frame is too large";
- 0X0D1A: "Unit powered up in authentication state but POS must resend the InitSecureComm command";
- 0X0D1B: "The EEPROM may not be initialized because SecCommInterface does not make sense";
- 0X0D1C: "Problem encoding APDU";
- 0X0D20: "Unsupported Index(ILM) SAM Transceiver error - problem communicating with the SAM(Key Mgr)";
- 0X0D2: "Unexpected Sequence Counter in multiple frames for single bitmap(ILM) Length error in data returned from the SAM(Key Mgr)";
- 0X0D22: "Improper bit map(ILM)";
- 0X0D23: "Request Online Authorization";
- 0X0D24: "ViVOCard3 raw data read successful";
- 0X0D25: "Message index not available(ILM) ViVOcomm activate transaction card type(ViVOcomm)";
- 0X0D26: "Version Information Mismatch(ILM)";
- 0X0D27: "Not sending commands in correct index message index(ILM)";
- 0X0D28: "Time out or next expected message not received(ILM)";
- 0X0D29: "ILM languages not available for viewing(ILM)";
- 0X0D2A: "Other language not supported(ILM)";
- 0X0D41: "Unknown Error from SAM";
- 0X0D42: "Invalid data detected by SAM";
- 0X0D43: "Incomplete data detected by SAM";
- 0X0D44: "Reserved";
- 0X0D45: "Invalid key hash algorithm";
- 0X0D46: "Invalid key encryption algorithm";
- 0X0D47: "Invalid modulus length";
- 0X0D48: "Invalid exponent";
- 0X0D49: "Key already exists";
- 0X0D4A: "No space for new RID";
- 0X0D4B: "Key not found";
- 0X0D4C: "Crypto not responding";
- 0X0D4D: "Crypto communication error";
- 0X0D4E: "Module-specific error for Key Manager";
- 0X0D4F: "All key slots are full (maximum number of keys has been installed)";
- 0X0D50: "Auto-Switch OK";
- 0X0D51: "Auto-Switch failed";
- 0X0D90: "Account DUKPT Key not exist";
- 0X0D91: "Account DUKPT Key KSN exausted";
- 0X0D00: "This Key had been loaded.";
- 0X0E00: "Base Time was loaded.";
- 0X0F00: "Encryption Or Decryption Failed.";
- 0X1000: "Battery Low Warning (It is High Priority Response while Battery is Low.)";
- 0X1800: "Send 'Cancel Command' after send 'Get Encrypted PIN' & 'Get Numeric' & 'Get Amount'; - 0X1900: "Press 'Cancel' key after send 'Get Encrypted PIN' & 'Get Numeric' & 'Get Amount';
- 0X30FF: "Security Chip is not connect";
- 0X3000: "Security Chip is deactivation & Device is In Removal Legally State.";
- 0X3101: "Security Chip is activation & Device is In Removal Legally State.";
- 0X5500: "No Admin DUKPT Key.";
- 0X5501: "Admin DUKPT Key STOP.";
- 0X5502: "Admin DUKPT Key KSN is Error.";
- 0X5503: "Get Authentication Code1 Failed.";
- 0X5504: "Validate Authentication Code Error.";
- 0X5505: "Encrypt or Decrypt data failed.";
- 0X5506: "Not Support the New Key Type.";
- 0X5507: "New Key Index is Error.";
- 0X5508: "Step Error.";
- 0X5509: "KSN Error";
- 0X550A: "MAC Error.";
- 0X550B: "Key Usage Error.";
- 0X550C: "Mode Of Use Error.";
- 0X550F: "Other Error.";
- 0X6000: "Save or Config Failed / Or Read Config Error.";
- 0X6200: "No Serial Number.";
- 0X6900: "Invalid Command - Protocol is right, but task ID is invalid.";
- 0X6A01: "Unsupported Command - Protocol and task ID are right, but command is invalid - In this State";
- 0X6A00: "Unsupported Command - Protocol and task ID are right, but command is invalid.";
- 0X6B00: "Unknown parameter in command - Protocol task ID and command are right, but parameter is invalid.";
- 0X6C00: "Unknown parameter in command - Protocol task ID and command are right, but length is out of the requirement.";
- 0X7200: "Device is suspend (MKSK suspend or press password suspend).";
- 0X7300: "PIN DUKPT is STOP (21 bit 1).";
- 0X7400: "Device is Busy.";
- 0XE100: "Can not enter sleep mode";
- 0XE200: "File has existed";
- 0XE300: "File has not existed";
- 0XE313: "IO line low -- Card error after session start";
- 0XE400: "Open File Error";
- 0XE500: "SmartCard Error";
- 0XE600: "Get MSR Card data is error";
- 0XE700: "Command time out";
- 0XE800: "File read or write is error";
- 0XE900: "Active 1850 error!";
- 0XEA00: "Load bootloader error";
- 0XEF00: "Protocol Error- STX or ETX or check error.";
- 0XEB00: "Picture is not exist";
- 0X2C02: "No Microprocessor ICC seated";
- 0X2C06: "no card seated to request ATR";
- 0X2D01: "Card Not Supported, ";
- 0X2D03: "Card Not Supported, wants CRC";
- 0X690D: "Command not supported on reader without ICC support";
- 0X8100: "ICC error time out on power-up";
- 0X8200: "invalid TS character received - Wrong operation step";
- 0X8300: "Decode MSR Error";
- 0X8400: "TriMagII no Response";
- 0X8500: "No Swipe MSR Card";
- 0X8510: "No Financial Card";
- 0X8600: "Unsupported F, D, or combination of F and D";
- 0X8700: "protocol not supported EMV TD1 out of range";
- 0X8800: "power not at proper level";
- 0X8900: "ATR length too long";
- 0X8B01: "EMV invalid TA1 byte value";
- 0X8B02: "EMV TB1 required";
- 0X8B03: "EMV Unsupported TB1 only 00 allowed";
- 0X8B04: "EMV Card Error, invalid BWI or CWI";
- 0X8B06: "EMV TB2 not allowed in ATR";
- 0X8B07: "EMV TC2 out of range";
- 0X8B08: "EMV TC2 out of range";
- 0X8B09: "per EMV96 TA3 must be > - 0XF";
- 0X8B10: "ICC error on power-up";
- 0X8B11: "EMV T=1 then TB3 required";
- 0X8B12: "Card Error, invalid BWI or CWI";
- 0X8B13: "Card Error, invalid BWI or CWI";
- 0X8B17: "EMV TC1/TB3 conflict-";
- 0X8B20: "EMV TD2 out of range must be T=1";
- 0X8C00: "TCK error";
- 0XA304: "connector has no voltage setting";
- 0XA305: "ICC error on power-up invalid (SBLK(IFSD) exchange";
- 0XE301: "ICC error after session start";
- 0XFF00: "Request to go online";
- 0XFF01: "EMV: Accept the offline transaction";
- 0XFF02: "EMV: Decline the offline transaction";
- 0XFF03: "EMV: Accept the online transaction";
- 0XFF04: "EMV: Decline the online transaction";
- 0XFF05: "EMV: Application may fallback to magstripe technology";
- 0XFF06: "EMV: ICC detected tah the conditions of use are not satisfied";
- 0XFF07: "EMV: ICC didn't accept transaction";
- 0XFF08: "EMV: Transaction was cancelled";
- 0XFF09: "EMV: Application was not selected by kernel or ICC format error or ICC missing data error";
- 0XFF0A: "EMV: Transaction is terminated";
- 0XFF0B: "EMV: Other EMV Error";
- 0XFFFF: "NO RESPONSE";
- 0XF002: "ICC communication timeout";
- 0XF003: "ICC communication Error";
- 0XF00F: "ICC Card Seated and Highest Priority, disable MSR work request";
- 0XF200: "AID List / Application Data is not exist";
- 0XF201: "Terminal Data is not exist";
- 0XF202: "TLV format is error";
- 0XF203: "AID List is full";
- 0XF204: "Any CA Key is not exist";
- 0XF205: "CA Key RID is not exist";
- 0XF206: "CA Key Index it not exist";
- 0XF207: "CA Key is full";
- 0XF208: "CA Key Hash Value is Error";
- 0XF209: "Transaction format error";
- 0XF20A: "The command will not be processing";
- 0XF20B: "CRL is not exist";
- 0XF20C: "CRL number exceed max number";
- 0XF20D: "Amount, Other Amount, Trasaction Type are missing";
- 0XF20E: "The Identification of algorithm is mistake";
- 0XF20F: "No Financial Card";
- 0XF210: "In Encrypt Result state, TLV total Length is greater than Max Length";
- 0X1001: "INVALID ARG";
- 0X1002: "FILE_OPEN_FAILED";
- 0X1003: "FILE OPERATION_FAILED";
- 0X2001: "MEMORY_NOT_ENOUGH";
- 0X3002: "SMARTCARD_FAIL";
- 0X3003: "SMARTCARD_INIT_FAILED";
- 0X3004: "FALLBACK_SITUATION";
- 0X3005: "SMARTCARD_ABSENT";
- 0X3006: "SMARTCARD_TIMEOUT";
- 0X3012: "EMV_RESULT_CODE_MSR_CARD_ERROR_FALLBACK";
- 0X5001: "EMV_PARSING_TAGS_FAILED";
- 0X5002: "EMV_DUPLICATE_CARD_DATA_ELEMENT";
- 0X5003: "EMV_DATA_FORMAT_INCORRECT";
- 0X5004: "EMV_NO_TERM_APP";
- 0X5005: "EMV_NO_MATCHING_APP";
- 0X5006: "EMV_MISSING_MANDATORY_OBJECT";
- 0X5007: "EMV_APP_SELECTION_RETRY";
- 0X5008: "EMV_GET_AMOUNT_ERROR";
- 0X5009: "EMV_CARD_REJECTED";
- 0X5010: "EMV_AIP_NOT_RECEIVED";
- 0X5011: "EMV_AFL_NOT_RECEIVED";
- 0X5012: "EMV_AFL_LEN_OUT_OF_RANGE";
- 0X5013: "EMV_SFI_OUT_OF_RANGE";
- 0X5014: "EMV_AFL_INCORRECT";
- 0X5015: "EMV_EXP_DATE_INCORRECT";
- 0X5016: "EMV_EFF_DATE_INCORRECT";
- 0X5017: "EMV_ISS_COD_TBL_OUT_OF_RANGE";
- 0X5018: "EMV_CRYPTOGRAM_TYPE_INCORRECT";
- 0X5019: "EMV_PSE_NOT_SUPPORTED_BY_CARD";
- 0X5020: "EMV_USER_SELECTED_LANGUAGE";
- 0X5021: "EMV_SERVICE_NOT_ALLOWED";
- 0X5022: "EMV_NO_TAG_FOUND";
- 0X5023: "EMV_CARD_BLOCKED";
- 0X5024: "EMV_LEN_INCORRECT";
- 0X5025: "CARD_COM_ERROR";
- 0X5026: "EMV_TSC_NOT_INCREASED";
- 0X5027: "EMV_HASH_INCORRECT";
- 0X5028: "EMV_NO_ARC";
- 0X5029: "EMV_INVALID_ARC";
- 0X5030: "EMV_NO_ONLINE_COMM";
- 0X5031: "TRAN_TYPE_INCORRECT";
- 0X5032: "EMV_APP_NO_SUPPORT";
- 0X5033: "EMV_APP_NOT_SELECT";
- 0X5034: "EMV_LANG_NOT_SELECT";
- 0X5035: "EMV_NO_TERM_DATA";
- 0X5039: "EMV_PIN_ENTRY_TIMEOUT";
- 0X6001: "CVM_TYPE_UNKNOWN";
- 0X6002: "CVM_AIP_NOT_SUPPORTED";
- 0X6003: "CVM_TAG_8E_MISSING";
- 0X6004: "CVM_TAG_8E_FORMAT_ERROR";
- 0X6005: "CVM_CODE_IS_NOT_SUPPORTED";
- 0X6006: "CVM_COND_CODE_IS_NOT_SUPPORTED";
- 0X6007: "NO_MORE_CVM";
- 0X6008: "PIN_BYPASSED_BEFORE";
- 0X7001: "PK_BUFFER_SIZE_TOO_BIG";
- 0X7002: "PK_FILE_WRITE_ERROR";
- 0X7003: "PK_HASH_ERROR";
- 0X8001: "NO_CARD_HOLDER_CONFIRMATION";
- 0X8002: "GET_ONLINE_PIN";
- 0XD000: "Data not exist";
- 0XD001: "Data access error";
- 0XD100: "RID not exist";
- 0XD101: "RID existed";
- 0XD102: "Index not exist";
- 0XD200: "Maximum exceeded";
- 0XD201: "Hash error";
- 0XD205: "System Busy";
- 0X0E01: "Unable to go online";
- 0X0E02: "Technical Issue";
- 0X0E03: "Declined";
- 0X0E04: "Issuer Referral transaction";
- 0X0F01: "Decline the online transaction";
- 0X0F02: "Request to go online";
- 0X0F03: "Transaction is terminated";
- 0X0F05: "Application was not selected by kernel or ICC format error or ICC missing data error";
- 0X0F07: "ICC didn't accept transaction";
- 0X0F0A: "Application may fallback to magstripe technology";
- 0X0F0C: "Transaction was cancelled";
- 0X0F0D: "Timeout";
- 0X0F0F: "Other EMV Error";
- 0X0F10: "Accept the offline transaction";
- 0X0F11: "Decline the offline transaction";
- 0X0F21: "ICC detected tah the conditions of use are not satisfied";
- 0X0F22: "No app were found on card matching terminal configuration";
- 0X0F23: "Terminal file does not exist";
- 0X0F24: "CAPK file does not exist";
- 0X0F25: "CRL Entry does not exist";
- 0X0FFE: "code when blocking is disabled";
- 0X0FFF: "code when command is not applicable on the selected device";
- 0XF005: "ICC Encrypted C-APDU Data Structure Length Error Or Format Error.";
- 0XBBE0: "CM100 Success";
- 0XBBE1: "CM100 Parameter Error";
- 0XBBE2: "CM100 Low Output Buffer";
- 0XBBE3: "CM100 Card Not Found";
- 0XBBE4: "CM100 Collision Card Exists";
- 0XBBE5: "CM100 Too Many Cards Exist";
- 0XBBE6: "CM100 Saved Data Does Not Exist";
- 0XBBE8: "CM100 No Data Available";
- 0XBBE9: "CM100 Invalid CID Returned";
- 0XBBEA: "CM100 Invalid Card Exists";
- 0XBBEC: "CM100 Command Unsupported";
- 0XBBED: "CM100 Error In Command Process";
- 0XBBEE: "CM100 Invalid Command";
- 0X9031: "Unknown command";
- 0X9032: "Wrong parameter (such as the length of the command is incorrect)";
- 0X9038: "Wait (the command couldnt be finished in BWT)";
- 0X9039: "Busy (a previously command has not been finished)";
- 0X903A: "Number of retries over limit";
- 0X9040: "Invalid Manufacturing system data";
- 0X9041: "Not authenticated";
- 0X9042: "Invalid Master DUKPT Key";
- 0X9043: "Invalid MAC Key";
- 0X9044: "Reserved for future use";
- 0X9045: "Reserved for future use";
- 0X9046: "Invalid DATA DUKPT Key";
- 0X9047: "Invalid PIN Pairing DUKPT Key";
- 0X9048: "Invalid DATA Pairing DUKPT Key";
- 0X9049: "No nonce generated";
- 0X9949: "No GUID available. Perform getVersion first.";
- 0X9950: "MAC Calculation unsuccessful. Check BDK value.";
- 0X904A: "Not ready";
- 0X904B: "Not MAC data";
- 0X9050: "Invalid Certificate";
- 0X9051: "Duplicate key detected";
- 0X9052: "AT checks failed";
- 0X9053: "TR34 checks failed";
- 0X9054: "TR31 checks failed";
- 0X9055: "MAC checks failed";
- 0X9056: "Firmware download failed";
- 0X9060: "Log is full";
- 0X9061: "Removal sensor unengaged";
- 0X9062: "Any hardware problems";
- 0X9070: "ICC communication timeout";
- 0X9071: "ICC data error (such check sum error)";
- 0X9072: "Smart Card not powered up";

## ◆ device_getRTCDateTime()

int device_getRTCDateTime | ( | IN BYTE * | dateTime,
|  | IN_OUT int * | dateTimeLen
| ) |  |

get RTC date and time of the device

Parameters

  dateTime | <dateTime data>=""> is: 6 byte data for YYMMDDHHMMSS in hex. For example 0x171003102547 stands for 2017 Oct 3rd 10:25:47
  dateTimeLen | return 6 bytes if successful

Returns
  success or error code. Values can be parsed with device_getResponseCodeString

See also
  ErrorCode

## ◆ device_getSDKWaitTime()

int device_getSDKWaitTime | ( |  | ) |

Get SDK Wait Time

Get the SDK wait time for transactions

Returns
  SDK wait time in seconds

## ◆ device_getSpectrumProKSN()

int device_getSpectrumProKSN | ( | IN int | type,
|  | OUT BYTE * | KSN
| ) |  |

DEPRECATED : please use device_getSpectrumProKSN_Len(IN int type, OUT BYTE * KSN, IN_OUT int *KSNLen)

Get DUKPT KSN

Returns the KSN for the provided key index

Parameters

  type | Key type: 0: Key Encryption Key (Master Key or KEK) 2: Data Encryption Key (DEK) 5: MAC Key (MAK) 10: RKL Key Encryption Key (REK) 20: HSM DUKPT Key
  KSN | Key Serial Number; needs to have at least 10 bytes of memory

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ device_getSpectrumProKSN_Len()

int device_getSpectrumProKSN_Len | ( | IN int | type,
|  | OUT BYTE * | KSN,
|  | IN_OUT int * | KSNLen
| ) |  |

Get DUKPT KSN

Returns the KSN for the provided key index

Parameters

  type | Key type: 0: Key Encryption Key (Master Key or KEK) 2: Data Encryption Key (DEK) 5: MAC Key (MAK) 10: RKL Key Encryption Key (REK) 20: HSM DUKPT Key
  KSN | Key Serial Number
  KSNLen | Length of KSN

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ device_getTamperStatus()

int device_getTamperStatus | ( | OUT int * | isTampered | ) |

Get Tamper Status This command check the tamper status for NEO 2 readers.

Parameters

  isTampered | 1: the reader is tampered. 0: the reader is not tampered.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_getThreadStackSize()

int device_getThreadStackSize | ( |  | ) |

Get Thread Stack Size

Get the stack size setting for newly created threads

Returns
  Thread Stack Size

## ◆ device_init()

int device_init | ( |  | ) |

Initial the device by USB
It will detect the device and trying connect.
The connect status can be checked by device_isConnected().
Note: after the function returns success, the function device_setCurrentDevice() has to be called to set the device type.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_isAttached()

int device_isAttached | ( | int | deviceType | ) |

Check if the device is attached to the USB port The function device_init() must be called before this function.

Parameters

  deviceType,the | device type of the USB device

Returns
  1 if the device is attached, or 0 if the device is not attached

## ◆ device_isConnected()

int device_isConnected | ( |  | ) |

Check the device conntected status

Returns
  DEVICE_DISCONNECT=0, or DEVICE_CONNECTED = 1

## ◆ device_lcdDisplayClear()

int device_lcdDisplayClear | ( |  | ) |

Use this function to clear the LCD display

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_lcdDisplayLine1Message()

int device_lcdDisplayLine1Message | ( | IN BYTE * | message,
|  | IN int | messageLen
| ) |  |

Use this function to display text on the LCD display. On the Vendi reader the LCD is a 2-line character display.

Parameters

  message | Valid messages for the first line of text are between 1 and 16 printable characters long. If the text message is greater than 16 bytes but not more than 32 bytes, byte 17 and onward are displayed as a second row of text. All messages are left justified on the LCD display.
  messageLen | Length of the message: 1 to 32 bytes

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_lcdDisplayLine2Message()

int device_lcdDisplayLine2Message | ( | IN BYTE * | message,
|  | IN int | messageLen
| ) |  |

Use this function to display the message on line 2 of the LCD display. On the Vendi reader the LCD is a 2-line character display.

Parameters

  message | Valid messages are between 1 and 16 printable characters long. All messages are left justified on the LCD display.
  messageLen | Length of the message: 1 to 16 bytes

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_listDirectory()

int device_listDirectory | ( | IN char * | directoryName,
|  | IN int | directoryNameLen,
|  | IN int | recursive,
|  | IN int | onSD,
|  | OUT char * | directory,
|  | IN_OUT int * | directoryLen
| ) |  |

List Directory This command retrieves a directory listing of user accessible files from the reader.

Parameters

  directoryName | Directory Name. If null, root directory is listed
  directoryNameLen | Directory Name Length. If null, root directory is listed
  recursive | Included sub-directories
  onSD | 0: use internal memory, 1: use SD card The returned directory information The returned directory information length

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_outputLog()

int device_outputLog | ( | IN char * | filename,
|  | IN int | filenameLen
| ) |  |

Output Log

Save the log to a file

Parameters

  filename | the file name including the path
  filenameLen | the length of filename

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_pingDevice()

int device_pingDevice | ( |  | ) |

Ping Device - NEO only

Pings the reader. If connected, returns success. Otherwise, returns timeout.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_playAudio()

int device_playAudio | ( | IN char * | fileName,
|  | IN int | fileNameLen,
|  | IN int | onSD
| ) |  |

Play Audio This command command plays an audio file loaded from the inserted SD card. The VP6800 supports 16bit PCM format .WAV files.

Parameters

  filename | Complete path and file name of the wav file you want to play. You do not need to specify the root directory. Indicate subdirectories with a forward slash (/).
  filenameLen | File Name Length. Maximum file name length is 30.
  onSD | 0: use internal memory (the Maximum audio file in Flash is 5M and only 2 audio file is supported), 1: use SD card

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_pollCardReader()

int device_pollCardReader | ( | OUT BYTE * | status | ) |

DEPRECATED : please use device_pollCardReader_Len(OUT BYTE * status, IN_OUT int *statusLen)

Poll Card Reader

Provides information about the state of the Card Reader

Parameters

  status | Six bytes indicating card reader information Byte 0: Bit 0: Device Manufacturing CA data valid Bit 1: Device Manufacturing Secure data valid Bit 2: HOST_CR_MASTER_DUKPT Key valid Bit 3: HOST_CR_MAC Keys valid (Authenticated) Bit 4: RFU Bit 5: RFU Bit 6: DATA_DUKPT Key Valid Bit 7: Key is initialized (MFK and RSA Key pairs)

Byte 1:

- Bit 0: Firmware Key Valid
- Bit 1: RFU
- Bit 2: CR_PINPAD_MASTER_DUKPT Key valid
- Bit 3: CR_PINPAD_MAC Keys valid (Authenticated)
- Bit 4: DATA Pairing DUKPT Key valid
- Bit 5: PIN Pairing DUKPT Key Valid
- Bit 6: RFU
- Bit 7: RFU

Byte 2:

- Bit 0: RFU
- Bit 1: Tamper Switch #1 Error
- Bit 2: Battery Backup Error
- Bit 3: Temperature Error
- Bit 4: Voltage Sensor Error
- Bit 5: Firmware Authentication Error
- Bit 6: Tamper Switch #2 Error
- Bit 7: Removal Tamper Error

Byte 3:

- Battery Voltage (example 0x32 = 3.2V, 0x24 = 2.4V)

Byte 4:

- Bit 0: Log is Full
- Bit 1: Mag Data Present
- Bit 2: Card Insert
- Bit 3: Removal Sensor connected
- Bit 4: Card Seated
- Bit 5: Latch Mechanism Active
- Bit 6: Removal Sensor Active
- Bit 7: Tamper Detector Active

Byte 5:

- Bit 0: SAM Available
- Bit 1: Chip Card Reader Available
- Bit 2: Host Connected
- Bit 3: Contactless Available
- Bit 4: PINPAD connected
- Bit 5: MSR Header connected
- Bit 6: RFU
- Bit 7: Production Unit

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ device_pollCardReader_Len()

int device_pollCardReader_Len | ( | OUT BYTE * | status,
|  | IN_OUT int * | statusLen
| ) |  |

Poll Card Reader

Provides information about the state of the Card Reader

Parameters

  status | Six bytes indicating card reader information Byte 0: Bit 0: Device Manufacturing CA data valid Bit 1: Device Manufacturing Secure data valid Bit 2: HOST_CR_MASTER_DUKPT Key valid Bit 3: HOST_CR_MAC Keys valid (Authenticated) Bit 4: RFU Bit 5: RFU Bit 6: DATA_DUKPT Key Valid Bit 7: Key is initialized (MFK and RSA Key pairs)

Byte 1:

- Bit 0: Firmware Key Valid
- Bit 1: RFU
- Bit 2: CR_PINPAD_MASTER_DUKPT Key valid
- Bit 3: CR_PINPAD_MAC Keys valid (Authenticated)
- Bit 4: DATA Pairing DUKPT Key valid
- Bit 5: PIN Pairing DUKPT Key Valid
- Bit 6: RFU
- Bit 7: RFU

Byte 2:

- Bit 0: RFU
- Bit 1: Tamper Switch #1 Error
- Bit 2: Battery Backup Error
- Bit 3: Temperature Error
- Bit 4: Voltage Sensor Error
- Bit 5: Firmware Authentication Error
- Bit 6: Tamper Switch #2 Error
- Bit 7: Removal Tamper Error

Byte 3:

- Battery Voltage (example 0x32 = 3.2V, 0x24 = 2.4V)

Byte 4:

- Bit 0: Log is Full
- Bit 1: Mag Data Present
- Bit 2: Card Insert
- Bit 3: Removal Sensor connected
- Bit 4: Card Seated
- Bit 5: Latch Mechanism Active
- Bit 6: Removal Sensor Active
- Bit 7: Tamper Detector Active

Byte 5:

- Bit 0: SAM Available
- Bit 1: Chip Card Reader Available
- Bit 2: Host Connected
- Bit 3: Contactless Available
- Bit 4: PINPAD connected
- Bit 5: MSR Header connected
- Bit 6: RFU
- Bit 7: Production Unit

Parameters

  statusLen | Length of status

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ device_pollForToken()

int device_pollForToken | ( | IN int | timeout,
|  | OUT BYTE * | respData,
|  | IN_OUT int * | respDataLen
| ) |  |

Poll for Token

Polls for a PICC

Parameters

  timeout | timeout in milliseconds, must be multiple of 10 milliseconds. 30, 120, 630, or 1150 for example.
  respData | Response data will be stored in respData. 1 byte of card type, and the Serial Number (or the UID) of the PICC if available.
  respDataLen | Length of systemCode.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_queryFile()

int device_queryFile | ( | IN char * | directoryName,
|  | IN int | directoryNameLen,
|  | IN char * | fileName,
|  | IN int | fileNameLen,
|  | OUT int * | isExist,
|  | OUT BYTE * | timeStamp,
|  | IN_OUT int * | timeStampLen,
|  | OUT char * | fileSize,
|  | IN_OUT int * | fileSizeLen
| ) |  |

Query File This command checks if the specified file exists in NAND Flash..

Parameters

  directoryName | Directory name string. No longer than 32 bytes. ASCII string, terminated by 0x00.
  directoryNameLen | Directory Name Length.
  fileName | File name string. No longer than 32 bytes. ASCII string, terminated by 0x00.
  fileNameLen | File Name Length.
  isExist | File exists: 1, File not exists 0.
  timeStamp | Latest time stamp of the file. 6 bytes BCD code if the file exists.
  timeStampLen | Length of timeStamp. 6 if the file exists, 0 if the file does not exist.
  fileSize | Zero-terminated ASCII string of the file size.
  fileSizeLen | Length of filesSize.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_readFileFromSD()

int device_readFileFromSD | ( | IN char * | directoryName,
|  | IN int | directoryNameLen,
|  | IN char * | fileName,
|  | IN int | fileNameLen,
|  | IN int | startingOffset,
|  | IN int | numBytes,
|  | OUT BYTE * | fileData,
|  | IN_OUT int * | fileDataLen
| ) |  |

Read Out File from SD Card This command retrieves a file from the SD card of the reader.

Parameters

  directoryName | Directory name string. No longer than 32 bytes. ASCII string, terminated by 0x00.
  directoryNameLen | Directory Name Length.
  fileName | File name string. No longer than 32 bytes. ASCII string, terminated by 0x00.
  fileNameLen | File Name Length.
  startingOffset | Starting offset in the file to retrieve
  numBytes | Number of bytes of file data to retrieve
  fileData | the file data read from the SD card
  fileDataLen | Length of fileData.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_rebootDevice()

int device_rebootDevice | ( |  | ) |

Reboot Device - NGA Executes a command to restart the device.

- Card data is cleared, resetting card status bits.
- Response data of the previous command is cleared.
- Resetting firmware.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ device_registerCameraCallBk()

void device_registerCameraCallBk | ( | pCMR_callBack | pCMRf | ) |

To register the camera callback function to get the image data. (Pass NULL to disable the callback.)

## ◆ device_registerCardStatusFrontSwitchCallBk()

void device_registerCardStatusFrontSwitchCallBk | ( | pCSFS_callBack | pCSFSf | ) |

To register the card status and front switch callback function to get status. (Pass NULL to disable the callback.)

## ◆ device_registerFWCallBk()

void device_registerFWCallBk | ( | pFW_callBack | pFWf | ) |

To register the firmware update callback function to get the firmware update status. (Pass NULL to disable the callback.)

## ◆ device_registerRKICallBk()

void device_registerRKICallBk | ( | pRKI_callBack | pRKIf | ) |

To register the RKI callback function to get the RKI status. (Pass NULL to disable the callback.)

## ◆ device_selfCheck()

int device_selfCheck | ( |  | ) |

Self check for TTK If Self-Test function Failed, then work into De-activation State. If device work into De-activation State, All Sensitive Data will be erased and it need be fixed in Manufacture.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ device_SendDataCommand()

int device_SendDataCommand | ( | IN BYTE * | cmd,
|  | IN int | cmdLen,
|  | IN BYTE * | data,
|  | IN int | dataLen,
|  | OUT BYTE * | response,
|  | IN_OUT int * | respLen
| ) |  |

Send a Command to NGA device

Sends a command to the device .

Parameters

  cmd | buffer of command to execute.
  cmdLen,the | length of the buffer cmd.
  data | buffer of IDG command data.
  dataLen,the | length of the buffer data.
  response | Response data
  respLen,the | length of Response data

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ device_SendDataCommandITP()

int device_SendDataCommandITP | ( | IN BYTE * | cmd,
|  | IN int | cmdLen,
|  | IN BYTE * | data,
|  | IN int | dataLen,
|  | OUT BYTE * | response,
|  | IN_OUT int * | respLen
| ) |  |

Send a Command to ITP device

Sends a command to the device .

Parameters

  cmd | buffer of command to execute.
  cmdLen,the | length of the buffer cmd.
  data | buffer of ITP command data.
  dataLen,the | length of the buffer data.
  response | Response data
  respLen,the | length of Response data

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ device_SendDataCommandNEO()

int device_SendDataCommandNEO | ( | IN int | cmd,
|  | IN int | subCmd,
|  | IN BYTE * | data,
|  | IN int | dataLen,
|  | OUT BYTE * | response,
|  | IN_OUT int * | respLen
| ) |  |

Send a Command to NEO device

Sends a command to the NEO device .

Parameters

  cmd | command to execute.
  subCmd,sub | command to execute.
  data | buffer of NEO command data.
  dataLen,the | length of the buffer data.
  response | Response data
  respLen,the | length of Response data

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_setAudioVolume()

int device_setAudioVolume | ( | IN BYTE | volume | ) |

Set Audio Volume This command sets the reader’s audio volume.

Parameters

  Value | 0-20, where 0 is silent and 20 is full volume

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_setBurstMode()

int device_setBurstMode | ( | IN BYTE | mode | ) |

Send Burst Mode - NEO

Sets the burst mode for the device.

Parameters

  mode | 0 = OFF, 1 = Always On, 2 = Auto Exit

Returns
  success or error code. Values can be parsed with device_getIDGStatusCodeString

See also
  ErrorCode

## ◆ device_setCameraParameters()

int device_setCameraParameters | ( | IN BYTE | isAutoFocus,
|  | IN BYTE | focalLength
| ) |  |

Set Camera Parameters This command is used to set the camera parameters (e.g., auto/fixed focal length as focus).

Parameters

  isAutoFocus | 0: fixed focus, 1: auto focus
  focalLength | focal length Value 0x00-0xFF, where 0x00 is the farthest, 0xFF is nearest. Not used for auto focus.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_setCancelTransactionMode()

int device_setCancelTransactionMode | ( | int | mode | ) |

Set Cancel Transaction Mode

Set the cancel transaction mode to be with or without LCD message

Parameters

  mode | 0: With LCD message 1: Without LCD message

Returns
  success or error code. 1: Success, 0: Failed

## ◆ device_setConfigPath()

int device_setConfigPath | ( | const char * | path | ) |

Set the path to the config xml file(s) if any

Parameters

  path | The path to the config xml files (such as "NEO2_Devices.xml" which contains the information of NEO2 devices). Only need to specify the path to the folder which contains the config files. File names are not needed. The maximum length of path is 200 characters including the '\0' at the end.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_setCoreDumpLogFile()

int device_setCoreDumpLogFile | ( | IN char * | filename,
|  | IN int | filenameLen
| ) |  |

Set the Core Dump Log File Name

Set the file name of the log file when the core dump occurs for the firmware

Parameters

  filename | the file name including the path
  filenameLen | the length of filename; the maximum length is 99 bytes not including the null character

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_setCurrentDevice()

int device_setCurrentDevice | ( | int | deviceType | ) |

Sets the current device to talk to
The connect status can be checked by device_isConnected().
Note: the file "NEO2_Devices.xml" is required for NEO 2 readers

Parameters

  deviceType | Device to connect to enum DEVICE_TYPE { IDT_DEVICE_UNKNOWN=0, IDT_DEVICE_AUGUSTA_HID, IDT_DEVICE_AUGUSTA_KB, IDT_DEVICE_AUGUSTA_S_HID, IDT_DEVICE_AUGUSTA_S_KB, IDT_DEVICE_AUGUSTA_S_TTK_HID, IDT_DEVICE_SPECTRUM_PRO, IDT_DEVICE_MINISMART_II, IDT_DEVICE_L80, IDT_DEVICE_L100, IDT_DEVICE_UNIPAY, IDT_DEVICE_UNIPAY_I_V, IDT_DEVICE_VP3300_AJ, IDT_DEVICE_KIOSK_III, IDT_DEVICE_KIOSK_III_S, IDT_DEVICE_PIP_READER, IDT_DEVICE_VENDI, IDT_DEVICE_VP3300_USB, IDT_DEVICE_UNIPAY_I_V_TTK, IDT_DEVICE_VP3300_BT, IDT_DEVICE_VP8800, IDT_DEVICE_SREDKEY2_HID, IDT_DEVICE_SREDKEY2_KB, IDT_DEVICE_NEO2, IDT_DEVICE_MINISMART_II_COM = IDT_DEVICE_NEO2+5, IDT_DEVICE_SPECTRUM_PRO_COM, IDT_DEVICE_KIOSK_III_COM, IDT_DEVICE_KIOSK_III_S_COM, IDT_DEVICE_VP3300_COM, IDT_DEVICE_NEO2_COM, IDT_DEVICE_MAX_DEVICES = IDT_DEVICE_NEO2_COM+5 };

Returns
  RETURN_CODE: 1: success, 0: failed

## ◆ device_setMerchantRecord()

int device_setMerchantRecord | ( | int | index,
|  | int | enabled,
|  | char * | merchantID,
|  | char * | merchantURL
| ) |  |

Set Merchant Record - NEO Sets the merchant record for ApplePay VAS

Parameters

  index | Merchant Record index, valid values 1-6
  enabled | Merchant Enabled/Valid flag
  merchantID | Merchant unique identifer registered with Apple. Example com.idtechproducts.applePay
  merchantURL | Merchant URL, when applicable

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_setNEO2DevicesConfigs()

int device_setNEO2DevicesConfigs | ( | IN const char * | configs,
|  | IN int | len
| ) |  |

Pass the content of the config xml file ("NEO2_Devices.xml") as a string to the SDK instead of reading the config xml file by the SDK It needs to be called before device_init(), otherwise the SDK will try to read the config xml file.

Parameters

  configs | The content read from the config xml file ("NEO2_Devices.xml" which contains the information of NEO2 devices).
  len | The length of the string configs. The maximum length is 5000 bytes.

## ◆ device_setPollMode()

int device_setPollMode | ( | IN BYTE | mode | ) |

Set Poll Mode - NEO

Sets the poll mode forthe device. Auto Poll keeps reader active, Poll On Demand only polls when requested by terminal

Parameters

  mode | 0 = Auto Poll, 1 = Poll On Demand

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_setRTCDateTime()

int device_setRTCDateTime | ( | IN BYTE * | dateTime,
|  | IN int | dateTimeLen
| ) |  |

set RTC date and time of the device

Parameters

  dateTime | <dateTime data>=""> is: 6 byte data for YYMMDDHHMMSS in hex. For example 0x171003102547 stands for 2017 Oct 3rd 10:25:47
  dateTimeLen | should be always 6 bytes

Returns
  success or error code. Values can be parsed with device_getResponseCodeString

See also
  ErrorCode

## ◆ device_setSDKWaitTime()

void device_setSDKWaitTime | ( | int | waitTime | ) |

Set SDK Wait Time

Set the SDK wait time for transactions

Parameters

  waitTime | The SDK wait time for transaction in seconds

## ◆ device_setSleepModeTime()

int device_setSleepModeTime | ( | int | time | ) |

Set Sleep Mode Timer

Set device enter to sleep mode after the given time. In sleep mode, LCD display and backlight is off. Sleep mode reduces power consumption to the lowest possible level. A unit in Sleep mode can only be woken up by a physical key press.

Parameters

  time | Enter sleep time value, in second.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ device_setSystemLanguage()

int device_setSystemLanguage | ( | char * | language | ) |

Set Model Number for the device

Parameters

  sNumber | Model Number

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString Set System Language Sets the language for the message displayed in the LCD screen

Parameters

  language | 2-byte ASCII code, can be "EN" or "JP"

Returns
  success or error code. Values can be parsed with device_getIDGStatusCodeString

See also
  ErrorCode

## ◆ device_setThreadStackSize()

void device_setThreadStackSize | ( | int | threadSize | ) |

Set Thread Stack Size

Set the stack size setting for newly created threads

## ◆ device_setTransactionExponent()

void device_setTransactionExponent | ( | int | exponent | ) |

Sets the transaction exponent to be used with device_startTransaction. Default value is 2

Parameters

  exponent,The | exponent to use when calling device_startTransaction

## ◆ device_startListenNotifications()

int device_startListenNotifications | ( |  | ) |

Start Listen Notifications This function enables Card Status and Front Switch notifications.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_startQRCodeScan()

int device_startQRCodeScan | ( | IN int | _timeout | ) |

Start QR Code Scanning

Enables QR Code scanning with the default window, waiting for the QR code.

Parameters

  timeout | QR Code Scan Timeout Value. Between 30 and 65536 seconds.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString() Note: if auto poll mode is on, it will return command not allowed error

## ◆ device_startQRCodeScanWithDisplayWindowInfo()

int device_startQRCodeScanWithDisplayWindowInfo | ( | IN int | _timeout,
|  | IN int | x,
|  | IN int | y,
|  | IN int | width,
|  | IN int | height
| ) |  |

Start QR Code Scanning with Display Window Info

Enables QR Code scanning, waiting for the QR code.

Parameters

  timeout | QR Code Scan Timeout Value. Between 30 and 65536 seconds.
  x | the x-coordinate of the display window.
  y | the y-coordinate of the display window.
  width | the width of the display window.
  height | the height of the display window.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString() Note: if auto poll mode is on, it will return command not allowed error

## ◆ device_startRKI()

int device_startRKI | ( | const char * | caPath,
|  | int | isProduction
| ) |  |

Start remote key injection.

Parameters

  caPath | The path to ca-certificates.crt
  isProduction | 1: The reader is a production unit, 0: The reader is not a production unit

Returns
  success or error code.

See also
  ErrorCode

## ◆ device_startTakingPhoto()

int device_startTakingPhoto | ( | IN int | _timeout | ) |

Start Taking Photo

Enables the camera to take a photo.

Parameters

  timeout | Photo taking Timeout Value. Between 30 and 65536 seconds.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString() Note: if auto poll mode is on, it will return command not allowed error

## ◆ device_startTransaction()

int device_startTransaction | ( | IN double | amount,
|  | IN double | amtOther,
|  | IN int | type,
|  | IN const int | _timeout,
|  | IN BYTE * | tags,
|  | IN int | tagsLen
| ) |  |

Start Transaction Request

Authorizes the transaction for an MSR/CTLS/ICC card

The tags will be returned in the callback routine.

Parameters

  amount | Transaction amount value (tag value 9F02) SEE IMPORTANT NOTE BELOW
  amtOther | Other amount value, if any (tag value 9F03) SEE IMPORTANT NOTE BELOW
  type | Transaction type (tag value 9C).
  timeout | Timeout value in seconds.
  tags | Any other tags to be included in the request. Passed as TLV. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100. If tags 9F02 (amount), 9F03 (other amount), or 9C (transaction type) are included, they will take priority over these values supplied as individual parameters to this method.
  tagsLen | The length of tags data buffer.

>>>>>IMPORTANT: parameters for amount and amtOther MUST BE PASSED AS A DOUBLE VALUE WITH DECIMAL POINT. Example, do not pass 1, but instead pass 1.0 or 1.00. Otherwise, results will be unpredictable

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString() Note: if auto poll is on, it will returm the error IDG_P2_STATUS_CODE_COMMAND_NOT_ALLOWED

NOTE ON APPLEPAY VAS: To enable ApplePay VAS, first a merchant record must be defined in one of the six available index positions (1-6) using device_setMerchantRecord, then container tag FFEE06 must be sent as part of the additional tags parameter of device_startTransaction. Tag FFEE06 must contain tag 9F26 and 9F22, and can optionanally contain tags 9F2B and DF01. Example FFEE06189F220201009F2604000000009F2B050100000000DF010101 9F22 = two bytes = ApplePay Terminal Applicaiton Version Number. Hard defined as 0100 for now. (required) 9F26 = four bytes = ApplePay Terminal Capabilities Information (required)

- Byte 1 = RFU
- Byte 2 = Terminal Type
- - Bit 8 = VAS Support (1=on, 0 = off)
- - Bit 7 = Touch ID Required (1=on, 0 = off)
- - Bit 6 = RFU
- - Bit 5 = RFU
- - Bit 1, 2, 3, 4
- - - 0 = Payment Terminal
- - - 1 = Transit Terminal
- - - 2 = Access Terminal
- - - 3 = Wireless Handoff Terminal
- - - 4 = App Handoff Terminal
- - - 15 = Other Terminal
- Byte 3 = RFU
- Byte 4 = Terminal Mode
- - 0 = ApplePay VAS OR ApplePay
- - 1 = ApplePay VAS AND ApplePay
- - 2 = ApplePay VAS ONLY
- - 3 = ApplePay ONLY 9F2B = 5 bytes = ApplePay VAS Filter. Each byte filters for that specific merchant index (optional) DF01 = 1 byte = ApplePay VAS Protocol. (optional)
- - Bit 1 : 1 = URL VAS, 0 = Full VAS
- - Bit 2 : 1 = VAS Beeps, 0 = No VAS Beeps
- - Bit 3 : 1 = Silent Comm Error, 2 = EMEA Comm Error
- - Bit 4-8 : RFU

## ◆ device_stopAudio()

int device_stopAudio | ( |  | ) |

Stop Audio This command stops the audio the reader is playing.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_stopListenNotifications()

int device_stopListenNotifications | ( |  | ) |

Stop Listen Notifications This function disables Card Status and Front Switch notifications.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_stopQRCodeScan()

int device_stopQRCodeScan | ( |  | ) |

Stop QR Code Scanning Cancels QR Code scanning request.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_stopTakingPhoto()

int device_stopTakingPhoto | ( |  | ) |

Stop Taking Photo Cancels Photo Taking request.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_toSDCard()

void device_toSDCard | ( | int | forSDCard | ) |

To SD Card

Set the destination of the file or directory function

Parameters

  forSDCard | 0: for internal memory, 1: for SD card

## ◆ device_transferFile()

int device_transferFile | ( | IN char * | fileName,
|  | IN int | fileNameLen,
|  | IN BYTE * | file,
|  | IN int | fileLen
| ) |  |

Transfer File This command transfers a data file to the reader.

Parameters

  fileName | Filename. The data for this command is a ASCII string with the complete path and file name you want to create. You do not need to specify the root directory. Indicate subdirectories with a forward slash (/)
  filenameLen | File Name Length.
  file | The data file.
  fileLen | File Length.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_turnOffYellowLED()

int device_turnOffYellowLED | ( |  | ) |

Use this function to turn off the ViVOpay Vendi reader yellow LED. This LED is located below the three blue LEDs

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_turnOnYellowLED()

int device_turnOnYellowLED | ( |  | ) |

Use this function to turn on the ViVOpay Vendi reader yellow LED. This LED is located below the three blue LEDs

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ device_updateFirmware()

int device_updateFirmware | ( | IN BYTE * | firmwareData,
|  | IN int | firmwareDataLen,
|  | IN char * | firmwareName,
|  | IN int | encryptionType,
|  | IN BYTE * | keyBlob,
|  | IN int | keyBlobLen
| ) |  |

Update Firmware - NGA Updates the firmware of the Spectrum Pro K21 HUB or Maxq1050.

Parameters

  firmwareData | Signed binary data of a firmware file provided by IDTech
  firmwareDataLen | Length of firmwareData
  firmwareName | Firmware name. Must be one of the following two strings (with appropriate version information) "SP K21 APP Vx.xx.xxx" "SP MAX APP Vx.xx.xxx"
  encryptionType | Encryption type 0 : Plaintext 1 : TDES ECB, PKCS#5 padding 2 : TDES CBC, PKCS#5, IV is all 0
  keyBlob | Encrypted firmware session key blob, TR-31 Rev B, wrapped by FW Key (Optional, none if firmware is plaintext)
  keyBlobLen | Length of keyBlob

Returns
  RETURN_CODE: Values can be parsed with errorCode.getErrorString()

Firmware update status is returned in the callback with the following values: sender = SPECTRUM_PRO state = DeviceState.FirmwareUpdate data = File Progress. Two bytes, with byte[0] = current block, and byte[1] = total blocks. 0x0310 = block 3 of 16 transactionResultCode:

- RETURN_CODE_DO_SUCCESS = Firmware Update Completed Successfully
- RETURN_CODE_BLOCK_TRANSFER_SUCCESS = Current block transferred successfully
- Any other return code represents an error condition

## ◆ device_verifyBackdoorKey()

int device_verifyBackdoorKey | ( |  | ) |

Verify Backdoor Key to Unlock Security

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

Note: The function is only for TTK devices.

## ◆ emv_activateTransaction()

int emv_activateTransaction | ( | IN int | timeout,
|  | IN BYTE * | tags,
|  | IN int | tagsLen,
|  | IN int | forceOnline
| ) |  |

Start EMV Transaction Request

Authorizes the EMV transaction for an ICC card

The tags will be returned in the callback routine.

Parameters

  timeout | Timeout value in seconds.
  tags | Tags to be included in the request. Passed as a TLV stream. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100
  tagsLen | Length of tags
  forceOnline | TRUE = do not allow offline approval, FALSE = allow ICC to approve offline if terminal capable Note: To request tags to be included in default response, use tag DFEE1A, and specify tag list. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F36959F37

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString >>>>>IMPORTANT: parameters for amount and amtOther MUST BE PASSED AS A DOUBLE VALUE WITH DECIMAL POINT. Example, do not pass 1, but instead pass 1.0 or 1.00. Otherwise, results will be unpredictable.

## ◆ emv_allowFallback()

void emv_allowFallback | ( | IN int | allow | ) |

Allow fallback for EMV transactions. Default is TRUE

Parameters

  allow | TRUE = allow fallback, FALSE = don't allow fallback

## ◆ emv_authenticateTransaction()

int emv_authenticateTransaction | ( | IN BYTE * | updatedTLV,
|  | IN int | updatedTLVLen
| ) |  |

Authenticate EMV Transaction Request

Authenticates the EMV transaction for an ICC card. Execute this after receiving response with result code 0x10 to emv_startTransaction

The tags will be returned in the callback routine.

Parameters

  updatedTLV | TLV stream that can be used to update the following values: 9F02: Amount 9F03: Other amount 9C: Transaction type 5F57: Account type In addition tag DFEE1A can be sent to specify tag list to include in results. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F36959F37
  updatedTLVLen |

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ emv_authenticateTransactionWithTimeout()

int emv_authenticateTransactionWithTimeout | ( | IN int | timeout,
|  | IN BYTE * | updatedTLV,
|  | IN int | updatedTLVLen
| ) |  |

Authenticate EMV Transaction Request with Timeout

Authenticates the EMV transaction for an ICC card. Execute this after receiving response with result code 0x10 to emv_startTransaction

The tags will be returned in the callback routine.

Parameters

  timeout | Timeout value in seconds.
  updatedTLV | TLV stream that can be used to update the following values: 9F02: Amount 9F03: Other amount 9C: Transaction type 5F57: Account type In addition tag DFEE1A can be sent to specify tag list to include in results. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F36959F37
  updatedTLVLen |

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ emv_callbackResponseLCD()

int emv_callbackResponseLCD | ( | IN int | type,
|  | byte | selection
| ) |  |

Callback Response LCD Display

Provides menu selection responses to the kernel after a callback was received with DeviceState.EMVCallback, and callbackType = EMV_CALLBACK_TYPE.EMV_CALLBACK_TYPE_LCD, and lcd_displayMode = EMV_LCD_DISPLAY_MODE_MENU, EMV_LCD_DISPLAY_MODE_PROMPT, or EMV_LCD_DISPLAY_MODE_LANGUAGE_SELECT

Parameters

  type | If Cancel key pressed during menu selection, then value is EMV_LCD_DISPLAY_MODE_CANCEL. Otherwise, value can be EMV_LCD_DISPLAY_MODE_MENU, EMV_LCD_DISPLAY_MODE_PROMPT, or EMV_LCD_DISPLAY_MODE_LANGUAGE_SELECT
  selection | If type = EMV_LCD_DISPLAY_MODE_MENU or EMV_LCD_DISPLAY_MODE_LANGUAGE_SELECT, provide the selection ID line number. Otherwise, if type = EMV_LCD_DISPLAY_MODE_PROMPT supply either 0x43 ('C') for Cancel, or 0x45 ('E') for Enter/accept

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_callbackResponseMSR()

int emv_callbackResponseMSR | ( | IN BYTE * | MSR,
|  | IN_OUT int | MSRLen
| ) |  |

Callback Response MSR Entry

Provides MSR information to kernel after a callback was received with DeviceState.EMVCallback, and callbackType = EMV_CALLBACK_MSR

Parameters

  MSR | Swiped track data
  MSRLen | the length of Swiped track data

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_cancelTransaction()

int emv_cancelTransaction | ( |  | ) |

Cancel EMV Transaction

Cancels the currently executing EMV transaction.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_completeTransaction()

int emv_completeTransaction | ( | IN int | commError,
|  | IN BYTE * | authCode,
|  | IN int | authCodeLen,
|  | IN BYTE * | iad,
|  | IN int | iadLen,
|  | IN BYTE * | tlvScripts,
|  | IN int | tlvScriptsLen,
|  | IN BYTE * | tlv,
|  | IN int | tlvLen
| ) |  |

Complete EMV Transaction Request

Completes the EMV transaction for an ICC card when online authorization request is received from emv_authenticateTransaction

The tags will be returned in the callback routine.

Parameters

  commError | Communication error with host. Set to TRUE(1) if host was unreachable, or FALSE(0) if host response received. If Communication error, authCode, iad, tlvScripts can be null.
  authCode | Authorization code from host. Two bytes. Example 0x3030. (Tag value 8A). Required
  authCodeLen | the length of authCode
  iad | Issuer Authentication Data, if any. Example 0x11223344556677883030 (tag value 91).
  iadLen | the length of iadLen
  tlvScripts | 71/72 scripts, if any
  tlvScriptsLen | the length of tlvScriptsLen
  tlv | Additional TLV data to return with transaction results (if any)
  tlvLen | the length of tlv

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ emv_getAutoAuthenticateTransaction()

int emv_getAutoAuthenticateTransaction | ( |  | ) |

Gets auto authenticate value for EMV transactions.

Returns
  RETURN_CODE: TRUE = auto authenticate, FALSE = manually authenticate

## ◆ emv_getAutoCompleteTransaction()

int emv_getAutoCompleteTransaction | ( |  | ) |

Gets auto complete value for EMV transactions.

Returns
  RETURN_CODE: TRUE = auto complete, FALSE = manually complete

## ◆ emv_getEMVConfigurationCheckValue()

int emv_getEMVConfigurationCheckValue | ( | OUT BYTE * | checkValue,
|  | IN_OUT int * | checkValueLen
| ) |  |

Get EMV Kernel configuration check value info

Parameters

  checkValue | Response returned of Kernel configuration check value info
  checkValueLen | the length of checkValue

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ emv_getEMVKernelCheckValue()

int emv_getEMVKernelCheckValue | ( | OUT BYTE * | checkValue,
|  | IN_OUT int * | checkValueLen
| ) |  |

Get EMV Kernel check value info

Parameters

  checkValue | Response returned of Kernel check value info
  checkValueLen | the length of checkValue

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ emv_getEMVKernelVersion()

int emv_getEMVKernelVersion | ( | OUT char * | version | ) |

DEPRECATED : please use emv_getEMVKernelVersion_Len(OUT char* version, IN_OUT int *versionLen)

Polls device for EMV Kernel Version

Parameters

  version | Response returned of Kernel Version; needs to have at least 128 bytes of memory.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_getEMVKernelVersion_Len()

int emv_getEMVKernelVersion_Len | ( | OUT char * | version,
|  | IN_OUT int * | versionLen
| ) |  |

Polls device for EMV Kernel Version

Parameters

  version | Response returned of Kernel Version
  versionLen | Length of version

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_registerCallBk()

void emv_registerCallBk | ( | pEMV_callBack | pEMVf | ) |

To register the emv callback function to get the EMV processing response. (Pass NULL to disable the callback.)

## ◆ emv_removeAllApplicationData()

int emv_removeAllApplicationData | ( |  | ) |

Remove All Application Data

Removes all the Application Data

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_removeAllCAPK()

int emv_removeAllCAPK | ( |  | ) |

Remove All Certificate Authority Public Key

Removes all the CAPK

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_removeAllCRL()

int emv_removeAllCRL | ( |  | ) |

Remove All Certificate Revocation List Entries

Removes all CRLEntry entries

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_removeApplicationData()

int emv_removeApplicationData | ( | IN BYTE * | AID,
|  | IN int | AIDLen
| ) |  |

Remove Application Data by AID

Removes the Application Data as specified by the AID name passed as a parameter

Parameters

  AID | Name of ApplicationID Must be between 5 and 16 bytes
  AIDLen | the length of AID data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_removeCAPK()

int emv_removeCAPK | ( | IN BYTE * | capk,
|  | IN int | capkLen
| ) |  |

Remove Certificate Authority Public Key

Removes the CAPK as specified by the RID/Index

Parameters

  capk | 6 byte CAPK = 5 bytes RID + 1 byte INDEX
  capkLen | the length of capk data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_removeCRL()

int emv_removeCRL | ( | IN BYTE * | list,
|  | IN int | lsLen
| ) |  |

Retrieve the Certificate Revocation List

Returns the CRL entries on the terminal.

Parameters

  list | [CRL1][CRL2]...[CRLn], each CRL 9 bytes where CRL = 5 bytes RID + 1 byte index + 3 bytes serial number
  lsLen | the length of list data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_removeTerminalData()

int emv_removeTerminalData | ( |  | ) |

Remove Terminal Data

Removes the Terminal Data

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_retrieveAIDList()

int emv_retrieveAIDList | ( | OUT BYTE * | AIDList,
|  | IN_OUT int * | AIDListLen
| ) |  |

Retrieve AID list

Returns all the AID names installed on the terminal.

Parameters

  AIDList | array of AID name byte arrays
  AIDListLen | the length of AIDList array buffer

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_retrieveApplicationData()

int emv_retrieveApplicationData | ( | IN BYTE * | AID,
|  | IN int | AIDLen,
|  | OUT BYTE * | tlv,
|  | IN_OUT int * | tlvLen
| ) |  |

Retrieve Application Data by AID

Retrieves the Application Data as specified by the AID name passed as a parameter.

Parameters

  AID | Name of ApplicationID. Must be between 5 and 16 bytes
  AIDLen | the length of AID data buffer.
  tlv | The TLV elements of the requested AID
  tlvLen | the length of tlv data buffer.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_retrieveCAPK()

int emv_retrieveCAPK | ( | IN BYTE * | capk,
|  | IN int | capkLen,
|  | OUT BYTE * | key,
|  | IN_OUT int * | keyLen
| ) |  |

Retrieve Certificate Authority Public Key

Retrieves the CAPK as specified by the RID/Index passed as a parameter.

Parameters

  capk | 6 bytes CAPK = 5 bytes RID + 1 byte Index
  capkLen | the length of capk data buffer
  key | Response returned as a CAKey format: [5 bytes RID][1 byte Index][1 byte Hash Algorithm][1 byte Encryption Algorithm] [20 bytes HashValue][4 bytes Public Key Exponent][2 bytes Modulus Length][Variable bytes Modulus] Where: Hash Algorithm: The only algorithm supported is SHA-1.The value is set to 0x01 Encryption Algorithm: The encryption algorithm in which this key is used. Currently support only one type: RSA. The value is set to 0x01. HashValue: Which is calculated using SHA-1 over the following fields: RID & Index & Modulus & Exponent Public Key Exponent: Actually, the real length of the exponent is either one byte or 3 bytes. It can have two values: 3 (Format is 0x00 00 00 03), or 65537 (Format is 0x00 01 00 01) Modulus Length: LenL LenH Indicated the length of the next field. Modulus: This is the modulus field of the public key. Its length is specified in the field above.
  keyLen | the length of key data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_retrieveCAPKList()

int emv_retrieveCAPKList | ( | OUT BYTE * | keys,
|  | IN_OUT int * | keysLen
| ) |  |

Retrieve the Certificate Authority Public Key list

Returns all the CAPK RID and Index installed on the terminal.

Parameters

  keys | [key1][key2]...[keyn], each key 6 bytes where key = 5 bytes RID + 1 byte index
  keysLen | the length of keys data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_retrieveCRL()

int emv_retrieveCRL | ( | OUT BYTE * | list,
|  | IN_OUT int * | lssLen
| ) |  |

Retrieve the Certificate Revocation List

Returns the CRL entries on the terminal.

Parameters

  list | [CRL1][CRL2]...[CRLn], each CRL 9 bytes where CRL = 5 bytes RID + 1 byte index + 3 bytes serial number
  lssLen | the length of list data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_retrieveTerminalData()

int emv_retrieveTerminalData | ( | OUT BYTE * | tlv,
|  | IN_OUT int * | tlvLen
| ) |  |

Retrieve Terminal Data

Retrieves the Terminal Data.

Parameters

  tlv | Response returned as a TLV
  tlvLen | the length of tlv data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_retrieveTerminalID()

int emv_retrieveTerminalID | ( | OUT char * | terminalID | ) |

DEPRECATED : please use emv_retrieveTerminalID_Len(OUT char* terminalID, IN_OUT int *terminalIDLen)

Gets the terminal ID as printable characters .

Parameters

  terminalID | Terminal ID string; needs to have at least 30 bytes of memory

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_retrieveTerminalID_Len()

int emv_retrieveTerminalID_Len | ( | OUT char * | terminalID,
|  | IN_OUT int * | terminalIDLen
| ) |  |

Gets the terminal ID as printable characters .

Parameters

  terminalID | Terminal ID string
  terminalIDLen | Length of terminalID

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_retrieveTransactionResult()

int emv_retrieveTransactionResult | ( | IN BYTE * | tags,
|  | IN int | tagsLen,
|  | IDTTransactionData * | cardData
| ) |  |

Retrieve Transaction Results

Retrieves specified EMV tags from the currently executing transaction.

Parameters

  tags | Tags to be retrieved. Example 0x9F028A will retrieve tags 9F02 and 8A
  tagsLen | Length of tag list
  cardData | All requested tags returned as unencrypted, encrypted and masked TLV data in IDTTransactionData object

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_setApplicationData()

int emv_setApplicationData | ( | IN BYTE * | name,
|  | IN int | nameLen,
|  | IN BYTE * | tlv,
|  | IN int | tlvLen
| ) |  |

Set Application Data by AID

Sets the Application Data as specified by the application name and TLV data

Parameters

  name | Application name, 10-32 ASCII hex characters representing 5-16 bytes Example "a0000000031010"
  nameLen | the length of name data buffer of Application name,
  tlv | Application data in TLV format
  tlvLen | the length of tlv data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_setApplicationDataTLV()

int emv_setApplicationDataTLV | ( | IN BYTE * | tlv,
|  | IN int | tlvLen
| ) |  |

Set Application Data by TLV

Sets the Application Data as specified by the TLV data

Parameters

  tlv | Application data in TLV format The first tag of the TLV data must be the group number (DFEE2D). The second tag of the TLV data must be the AID (9F06) Example valid TLV, for Group #2, AID a0000000035010: "dfee2d01029f0607a0000000051010ffe10101ffe50110ffe30114ffe20106"
  tlvLen | the length of tlv data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_setAutoAuthenticateTransaction()

void emv_setAutoAuthenticateTransaction | ( | IN int | authenticate | ) |

Enables authenticate for EMV transactions. If a emv_startTranaction results in code 0x0010 (start transaction success), then emv_authenticateTransaction can automatically execute if parameter is set to TRUE

Parameters

  authenticate | TRUE = auto authenticate, FALSE = manually authenticate

## ◆ emv_setAutoCompleteTransaction()

void emv_setAutoCompleteTransaction | ( | IN int | complete | ) |

Enables complete for EMV transactions. If a emv_authenticateTranaction results in code 0x0004 (go online), then emv_completeTransaction can automatically execute if parameter is set to TRUE

Parameters

  complete | TRUE = auto complete, FALSE = manually complete

## ◆ emv_setCAPK()

int emv_setCAPK | ( | IN BYTE * | capk,
|  | IN int | capkLen
| ) |  |

Set Certificate Authority Public Key

Sets the CAPK as specified by the CAKey structure

Parameters

  capk | CAKey format: [5 bytes RID][1 byte Index][1 byte Hash Algorithm][1 byte Encryption Algorithm][20 bytes HashValue][4 bytes Public Key Exponent][2 bytes Modulus Length][Variable bytes Modulus] Where: Hash Algorithm: The only algorithm supported is SHA-1.The value is set to 0x01 Encryption Algorithm: The encryption algorithm in which this key is used. Currently support only one type: RSA. The value is set to 0x01. HashValue: Which is calculated using SHA-1 over the following fields: RID & Index & Modulus & Exponent Public Key Exponent: Actually, the real length of the exponent is either one byte or 3 bytes. It can have two values: 3 (Format is 0x00 00 00 03), or 65537 (Format is 0x00 01 00 01) Modulus Length: LenL LenH Indicated the length of the next field. Modulus: This is the modulus field of the public key. Its length is specified in the field above.
  capkLen | the length of capk data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_setCRL()

int emv_setCRL | ( | IN BYTE * | list,
|  | IN int | lsLen
| ) |  |

Set Certificate Revocation List

Sets the CRL

Parameters

  list | CRL Entries containing the RID, Index, and serial numbers to set [CRL1][CRL2]...[CRLn] where each [CRL] is 9 bytes: [5 bytes RID][1 byte CAPK Index][3 bytes serial number]
  lsLen | the length of list data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_setTerminalData()

int emv_setTerminalData | ( | IN BYTE * | tlv,
|  | IN int | tlvLen
| ) |  |

Set Terminal Data

Sets the Terminal Data as specified by the TerminalData structure passed as a parameter

Parameters

  tlv | TerminalData configuration file
  tlvLen | the length of tlv data buffer

Return values

  RETURN_CODE | Return codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with device_getResponseCodeString()

## ◆ emv_setTerminalID()

int emv_setTerminalID | ( | IN char * | terminalID | ) |

Sets the terminal ID as printable characters .

Parameters

  terminalID | Terminal ID to set

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_setTerminalMajorConfiguration()

int emv_setTerminalMajorConfiguration | ( | IN int | configuration | ) |

Sets the terminal major configuration in ICS .

Parameters

  configuration | A configuration value, range 1-23 1 = 1C 2 = 2C 3 = 3C 4 = 4C 5 = 5C ... 23 = 23C

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ emv_setTransactionParameters()

void emv_setTransactionParameters | ( | IN double | amount,
|  | IN double | amtOther,
|  | IN int | type,
|  | IN int | timeout,
|  | IN BYTE * | tags,
|  | IN int | tagsLen
| ) |  |

Set EMV Transaction Parameters

Set the parameters to be used on EMV transactions for an ICC card when Auto Poll is on

The tags will be returned in the callback routine.

Parameters

  amount | Transaction amount value (tag value 9F02)
  amtOther | Other amount value, if any (tag value 9F03)
  type | Transaction type (tag value 9C).
  timeout | Timeout value in seconds.
  tags | Any other tags to be included in the request (Maximum Length = 500 bytes). Passed as a string. Example, tag 9F0C with amount 0x000000000100 would be "9F0C06000000000100" If tags 9F02 (amount), 9F03 (other amount), or 9C (transaction type) are included, they will take priority over these values supplied as individual parameters to this method. Note: To request tags to be included in default response, use tag DFEE1A, and specify tag list. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F36959F37
  tagsLen | the length of tags

## ◆ emv_startTransaction()

int emv_startTransaction | ( | IN double | amount,
|  | IN double | amtOther,
|  | IN int | exponent,
|  | IN int | type,
|  | IN int | timeout,
|  | IN BYTE * | tags,
|  | IN int | tagsLen,
|  | IN int | forceOnline
| ) |  |

Start EMV Transaction Request

Authorizes the EMV transaction for an ICC card

The tags will be returned in the callback routine.

Parameters

  amount | Transaction amount value (tag value 9F02) - SEE IMPORTANT NOTE BELOW
  amtOther | Other amount value, if any (tag value 9F03) - SEE IMPORTANT NOTE BELOW
  exponent | Number of characters after decimal point
  type | Transaction type (tag value 9C).
  timeout | Timeout value in seconds.
  tags | Any other tags to be included in the request. Passed as a TLV stream. Example, tag 9F0C with amount 0x000000000100 would be 0x9F0C06000000000100 If tags 9F02 (amount), 9F03 (other amount), or 9C (transaction type) are included, they will take priority over these values supplied as individual parameters to this method.
  tagsLen | Length of tags
  forceOnline | TRUE = do not allow offline approval, FALSE = allow ICC to approve offline if terminal capable Note: To request tags to be included in default response, use tag DFEE1A, and specify tag list. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F36959F37

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString >>>>>IMPORTANT: parameters for amount and amtOther MUST BE PASSED AS A DOUBLE VALUE WITH DECIMAL POINT. Example, do not pass 1, but instead pass 1.0 or 1.00. Otherwise, results will be unpredictable

## ◆ executeTransaction()

int executeTransaction | ( | WorldPayData * | data,
|  | pWP_callBack | wpCallback,
|  | int | requestOnly
| ) |  |

executeTransaction Requests 3 sets of public keys: encrypting Keys, signing/validating keys, signing/validating 3rd party apps

Parameters

  data | WorldPay data object
  wpCallback | WorldPay callback
  requestOnly | 0 = send transaction and return response, 1 = send transaction and return both request and response, 2 = do not send transaction, instead return request

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ felica_authentication()

int felica_authentication | ( | IN BYTE * | key,
|  | IN int | keyLen
| ) |  |

FeliCa Authentication Provides a key to be used in a follow up FeliCa Read with MAC (3 blocks max) or Write with MAC (1 block max). This command must be executed before each Read w/MAC or Write w/MAC command

Parameters

  key | 16-byte key used for MAC generation of Read or Write with MAC
  keyLen | length of key, must be 16 bytes

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ felica_cancelCodeEntry()

int felica_cancelCodeEntry | ( |  | ) |

FeliCa Cancel Code Entry

Cancels FeliCa Get Code request

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ felica_getCode()

int felica_getCode | ( |  | ) |

FeliCa Get Code

Start the FeliCa get code process Since the firmware timeout is 180 seconds, the SDK timeout of the command is set to 181 seconds.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ felica_poll()

int felica_poll | ( | IN BYTE * | systemCode,
|  | IN int | systemCodeLen,
|  | OUT BYTE * | respData,
|  | OUT int * | respDataLen
| ) |  |

FeliCa Poll for Card

Polls for a Felica Card

Parameters

  systemCode | System Code.
  systemCodeLen | Length of systemCode. Must be 2 bytes
  respData | response data will be stored in respData. Poll response as explained in FeliCA Lite-S User's Manual
  respDataLen | Length of systemCode.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ felica_read()

int felica_read | ( | IN BYTE * | serviceCodeList,
|  | IN int | serviceCodeListLen,
|  | IN int | blockCnt,
|  | IN BYTE * | blockList,
|  | IN int | blockListLen,
|  | OUT BYTE * | blockData,
|  | OUT int * | blockDataLen
| ) |  |

FeliCa Read

Reads up to 4 blocks.

Parameters

  serviceCodeList | Service Code List. Each service code in Service Code List = 2 bytes of data
  serviceCodeListLen | Length of serviceCodeList
  blockCnt | Number of blocks in blockList. Maximum 4 block requests
  blockList | Block to read. Each block in blockList = 2 or 3 bytes of data.
  blockListLen | Length of blockList.
  blockData | Blocks read will be stored in blockData. Each block 16 bytes.
  blockDataLen | Length of blockData.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ felica_readWithMac()

int felica_readWithMac | ( | IN int | blockCnt,
|  | IN BYTE * | blockList,
|  | IN int | blockListLen,
|  | OUT BYTE * | blockData,
|  | OUT int * | blockDataLen
| ) |  |

FeliCa Read with MAC Generation

Reads up to 3 blocks with MAC Generation. FeliCa Authentication must be performed first

Parameters

  blockCnt | Number of blocks in blockList. Maximum 3 block requests
  blockList | Block to read. Each block in blockList = 2 or 3 bytes of data.
  blockListLen | Length of blockList.
  blockData | Blocks read will be stored in blockData. Each block is 16 bytes.
  blockDataLen | Length of blockData.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ felica_requestService()

int felica_requestService | ( | IN BYTE * | nodeCode,
|  | IN int | nodeCodeLen,
|  | OUT BYTE * | respData,
|  | OUT int * | respDataLen
| ) |  |

FeliCa Request Service

Request Service for a Felica Card

Parameters

  nodeCode | Node Code List. Each node 2 bytes
  nodeCodeLen | Length of nodeCode.
  respData | response data will be stored in respData. Response as explained in FeliCA Lite-S User's Manual
  respDataLen | Length of respData.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ felica_SendCommand()

int felica_SendCommand | ( | IN BYTE * | command,
|  | IN int | commandLen,
|  | OUT BYTE * | respData,
|  | OUT int * | respDataLen
| ) |  |

FeliCa Send Command

Send a Felica Command

Parameters

  command | Command data from settlement center to be sent to felica card
  commandLen | Length of command data
  respData | Response data from felica card.
  respDataLen | Length of respData.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ felica_write()

int felica_write | ( | IN BYTE * | serviceCodeList,
|  | IN int | serviceCodeListLen,
|  | IN int | blockCnt,
|  | IN BYTE * | blockList,
|  | IN int | blockListLen,
|  | IN BYTE * | blockData,
|  | IN int | blockDataLen,
|  | OUT BYTE * | statusFlag,
|  | OUT int * | statusFlagLen
| ) |  |

FeliCa Write

Writes a block

Parameters

  serviceCodeList | Service Code List. Each service code in Service Code List = 2 bytes of data
  serviceCodeListLen | Length of serviceCodeList
  blockCnt | Number of blocks in blockList. Currently only support 1 block.
  blockList | Block list. Each block in blockList = 2 or 3 bytes of data.
  blockListLen | Length of blockData.
  blockData | Block to write.
  blockDataLen | Length of blockData. Must be 16 bytes.
  respData | If successful, the Status Flag (2 bytes) is stored in respData.resData. Status flag response as explained in FeliCA Lite-S User's Manual, Section 4.5

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ felica_writeWithMac()

int felica_writeWithMac | ( | IN BYTE | blockNum,
|  | IN BYTE * | blockData,
|  | IN int | blockDataLen
| ) |  |

FeliCa Write with MAC Generation

Writes a block with MAC Generation. FeliCa Authentication must be performed first

Parameters

  blockNum | Number of block
  blockData | Block to write.
  blockDataLen | Length of blockData. Must be 16 bytes.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ icc_disable()

int icc_disable | ( |  | ) |

ICC Function enable/disable - AUGUSTA Disable ICC function

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ icc_enable()

int icc_enable | ( | IN int | withNotification | ) |

ICC Function enable/disable - AUGUSTA Enable ICC function with or without seated notification

Parameters

  withNotification | 1: with notification when ICC seated status changed, 0: without notification.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ icc_exchangeAPDU()

int icc_exchangeAPDU | ( | IN BYTE * | c_APDU,
|  | IN int | cLen,
|  | OUT BYTE * | reData,
|  | IN_OUT int * | reLen
| ) |  |

Exchange APDU with plain text - AUGUSTA For Non-SRED Augusta Only

Sends an APDU packet to the ICC. If successful, response is the APDU data in response parameter.

Parameters

  c_APDU | APDU data packet
  cLen | APDU data packet length
  reData | Unencrypted APDU response
  reLen | Unencrypted APDU response data length

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ icc_exchangeEncryptedAPDU()

int icc_exchangeEncryptedAPDU | ( | IN BYTE * | c_APDU,
|  | IN int | cLen,
|  | OUT BYTE * | reData,
|  | IN_OUT int * | reLen
| ) |  |

Exchange APDU with encrypted data - AUGUSTA For SRED Augusta Only

Sends an APDU packet to the ICC. If successful, response is the APDU data in response parameter.

Parameters

  c_APDU | KSN + encytpted APDU data packet, or no KSN (use last known KSN) + encrypted APDU data packet With KSN: [0A][KSN][Encrypted C-APDU] Without KSN: [00][Encrypted C-APDU]

The format of Raw C-APDU Data Structure of [m-bytes Encrypted C-APDU] is below:

- m = 2 bytes Valid C-APDU Length + x bytes Valid C-APDU + y bytes Padding (0x00) Note: For TDES mode: 2+x should be multiple of 8. If it was not multiple of 8, unit should padded y bytes 0x00 automatically (2+x+y should be multiple of 8). For AES mode: 2+x should be multiple of 16. If it was not multiple of 16, unit should padded y bytes 0x00 automatically (2+x+y should be multiple of 16).
  Parameters

    cLen | data packet length
    reData | response encrypted APDU response. Can be three options:

[00] + [Plaintext R-APDU]

- [01] + [0A] + [KSN] + [n bytes Encrypted R-APDU without Status Bytes] + [2 bytes Status Bytes]

- [01] + [00] + [n bytes Encrypted R-APDU without Status Bytes] + [2 bytes Status Bytes]

  The KSN, when provided, will be 10 bytes. The KSN will only be provided when it has changed since the last provided KSN. Each card Power-On generates a new KSN. During a sequence of commands where the KSN is identical, the first response will have a KSN length set to [0x0A] followed by the KSN, while subsequent commands with the same KSN value will have a KSN length of [0x00] followed by the Encrypted R-APDU without Status Bytes.

  Parameters

    reLen | encrypted APDU response data length

  Returns
    RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ icc_getAPDU_KSN()

int icc_getAPDU_KSN | ( | OUT BYTE * | KSN,
|  | IN_OUT int * | inLen
| ) |  |

Get APDU KSN - AUGUSTA

Retrieves the KSN used in ICC Encypted APDU usage

Parameters

  KSN | Returns the encrypted APDU packet KSN
  inLen | KSN data length

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ icc_getFunctionStatus()

int icc_getFunctionStatus | ( | OUT int * | enabled,
|  | OUT int * | withNotification
| ) |  |

Get ICC Function status - AUGUSTA Get ICC Function status about enable/disable and with or without seated notification

Parameters

  enabled | 1: ICC Function enabled, 0: means disabled.
  withNotification | 1 means with notification when ICC seated status changed. 0 means without notification.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ icc_getICCReaderStatus()

int icc_getICCReaderStatus | ( | OUT BYTE * | status | ) |

Get Reader Status - AUGUSTA

Returns the reader status

Parameters

  status | Pointer that will return with the ICCReaderStatus results. bit 0: 0 = ICC Power Not Ready, 1 = ICC Powered bit 1: 0 = Card not seated, 1 = card seated

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ icc_getKeyFormatForICCDUKPT()

int icc_getKeyFormatForICCDUKPT | ( | OUT BYTE * | format | ) |

Get Key Format For DUKPT - AUGUSTA

Specifies how data will be encrypted with Data Key or PIN key (if DUKPT key loaded). This applies to both MSR and ICC

Parameters

  format | Response returned from method: 'TDES': Encrypted card data with TDES if DUKPT Key had been loaded.(default) 'AES': Encrypted card data with AES if DUKPT Key had been loaded. 'NONE': No Encryption.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ icc_getKeyTypeForICCDUKPT()

int icc_getKeyTypeForICCDUKPT | ( | OUT BYTE * | type | ) |

Get Key Type for DUKPT - AUGUSTA

Specifies the key type used for ICC DUKPT encryption This applies to both MSR and ICC

Parameters

  type | Response returned from method: 'DATA': Encrypted card data with Data Key DUKPT Key had been loaded. (default) 'PIN': Encrypted card data with PIN Key if DUKPT Key had been loaded.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ icc_powerOffICC()

int icc_powerOffICC | ( |  | ) |

Power Off ICC

Powers down the ICC

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

If Success, empty If Failure, ASCII encoded data of error string

## ◆ icc_powerOnICC()

int icc_powerOnICC | ( | OUT BYTE * | ATR,
|  | IN_OUT int * | inLen
| ) |  |

Power On ICC

Power up the currently selected microprocessor card in the ICC reader

Parameters

  ATR,the | ATR data response when succeeded power on ICC,
  inLen,the | length of ATR data

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ icc_setKeyFormatForICCDUKPT()

int icc_setKeyFormatForICCDUKPT | ( | IN BYTE | format | ) |

Set Key Format for DUKPT - AUGUSTA

Sets how data will be encrypted, with either TDES or AES (if DUKPT key loaded) This applies to both MSR and ICC

Parameters

  format | encryption Encryption Type 00: Encrypt with TDES 01: Encrypt with AES 02: Encrypt with TransArmor - AUGUSTA only

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ icc_setKeyTypeForICCDUKPT()

int icc_setKeyTypeForICCDUKPT | ( | IN BYTE | type | ) |

Set Key Type for DUKPT Key - AUGUSTA

Sets which key the data will be encrypted with, with either Data Key or PIN key (if DUKPT key loaded) This applies to both MSR and ICC

Parameters

  type | Encryption Type 00: Encrypt with Data Key 01: Encrypt with PIN Key

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ iso8583_deserializeFromXML()

int iso8583_deserializeFromXML | ( | IN BYTE * | serializedMessage,
|  | IN int | serializedMessageLength,
|  | OUT DL_ISO8583_HANDLER * | ISOHandler,
|  | OUT DL_ISO8583_MSG * | ISOMessage
| ) |  |

Deserialize the XML-formatted ISO8583 message.

Parameters

  serializedMessage | - The XML-formatted message
  serializedMessageLength | - The length of the XML-formatted message
  ISOHandler | - A null ISO8583 handler
  ISOMessage | - The ISO8583 message structure

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ iso8583_displayMessage()

int iso8583_displayMessage | ( | IN DL_ISO8583_HANDLER * | ISOHandler,
|  | IN DL_ISO8583_MSG * | ISOMessage
| ) |  |

Display the messages in a formatted manner on the screen for verifying results.

Parameters

  ISOHandler | - The ISO8583 handler
  ISOMessage | - The ISO8583 message structure

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ iso8583_freeMessage()

int iso8583_freeMessage | ( | IN DL_ISO8583_MSG * | ISOMessage | ) |

Deallocate the ISO8583 message structure's memory.

Parameters

  ISOMessage | - The ISO8583 message structure

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ iso8583_get1987Handler()

int iso8583_get1987Handler | ( | OUT DL_ISO8583_HANDLER * | ISOHandler | ) |

Get the ISO8583 1987 version handler.

Parameters

  ISOHandler | A handler with knowledge of the ISO8583 1987 version fields

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ iso8583_get1993Handler()

int iso8583_get1993Handler | ( | OUT DL_ISO8583_HANDLER * | ISOHandler | ) |

Get the ISO8583 1993 version handler.

Parameters

  ISOHandler | A handler with knowledge of the ISO8583 1993 version fields

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ iso8583_get2003Handler()

int iso8583_get2003Handler | ( | OUT DL_ISO8583_HANDLER * | ISOHandler | ) |

Get the ISO8583 2003 version handler.

Parameters

  ISOHandler | A handler with knowledge of the ISO8583 2003 version fields

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ iso8583_getField()

int iso8583_getField | ( | IN DL_UINT16 | dataField,
|  | IN DL_ISO8583_HANDLER * | ISOHandler,
|  | OUT DL_ISO8583_FIELD_DEF * | field
| ) |  |

Get the specified field's information using the data field.

Parameters

  dataField | - The data field number
  ISOHandler | - The ISO8583 handler
  field | - The requested field

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ iso8583_getMessageField()

int iso8583_getMessageField | ( | IN DL_UINT16 | dataField,
|  | IN DL_ISO8583_MSG * | ISOMessage,
|  | OUT DL_ISO8583_MSG_FIELD * | messageField
| ) |  |

Get the specified message field using the data field.

Parameters

  dataField | - The data field number
  ISOMessage | - The ISO8583 message structure
  messageField | - The requested message field

Returns
  0 if the if the setting was applied; otherwise, return -1 on failure

## ◆ iso8583_initializeMessage()

int iso8583_initializeMessage | ( | OUT DL_ISO8583_MSG * | ISOMessage | ) |

Initialize the ISO8583 message structure.

Parameters

  ISOMessage | - The initialized ISO8583 message structure

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ iso8583_packMessage()

int iso8583_packMessage | ( | IN const DL_ISO8583_HANDLER * | ISOHandler,
|  | IN const DL_ISO8583_MSG * | ISOMessage,
|  | OUT DL_UINT8 * | packedData,
|  | OUT DL_UINT16 * | packedDataLength
| ) |  |

Pack the message fields into an array.

Parameters

  ISOHandler | - The ISO8583 handler
  ISOMessage | - The ISO8583 message structure
  packedData | - The packaged data
  packedDataLength | - The packaged data's length

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ iso8583_removeMessageField()

int iso8583_removeMessageField | ( | IN DL_UINT16 | dataField,
|  | OUT DL_ISO8583_MSG * | ISOMessage
| ) |  |

Remove the specified message field.

Parameters

  dataField | - The data field number
  ISOMessage | - The ISO8583 message structure

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ iso8583_serializeToXML()

int iso8583_serializeToXML | ( | IN DL_ISO8583_HANDLER * | ISOHandler,
|  | IN DL_ISO8583_MSG * | ISOMessage,
|  | OUT BYTE * | serializedMessage,
|  | OUT int * | serializedMessageLength
| ) |  |

Serialize the message fields into an XML format.

Parameters

  ISOHandler | - The ISO8583 handler
  ISOMessage | - The ISO8583 message structure
  serializedMessage | - The XML-formatted message
  serializedMessageLength | - The XML message's length

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ iso8583_setMessageField()

int iso8583_setMessageField | ( | IN DL_UINT16 | dataField,
|  | IN const DL_UINT8 * | data,
|  | OUT DL_ISO8583_MSG * | ISOMessage
| ) |  |

Set the specified message field.

Parameters

  dataField | - The data field number
  data | - The data to apply
  ISOMessage | - The ISO8583 message structure

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ iso8583_unpackMessage()

int iso8583_unpackMessage | ( | IN const DL_ISO8583_HANDLER * | ISOHandler,
|  | IN const DL_UINT8 * | packedData,
|  | IN DL_UINT16 | packedDataLength,
|  | OUT DL_ISO8583_MSG * | ISOMessage
| ) |  |

Unpack the message field array into the ISO8583 message structure.

Parameters

  ISOHandler | - The ISO8583 handler
  packedData | - The packaged data
  packedDataLength | - The packaged data's length
  ISOMessage | - The ISO8583 message structure

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_addButton()

int lcd_addButton | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | IN char * | buttonName,
|  | IN int | buttonNameLen,
|  | IN BYTE | type,
|  | IN BYTE | alignment,
|  | IN int | xCord,
|  | IN int | yCord,
|  | IN char * | label,
|  | IN int | labelLen,
|  | OUT IDTLCDItem * | returnItem
| ) |  |

Add Button

Adds a button to a selected screen. Must execute lcd_createScreen first to establish a screen to draw on. The SDK timeout of the command is set to 6 seconds.

Parameters

  screenName | Screen name that will be the target of add button
  screenNameLen | Length of screenName
  buttonName | Button name that will be the target of add button
  buttonNameLen | Length of buttonName
  type | Button Type Large = 0x01 Medium = 0x02 Invisible = 0x03 (70px by 60 px)
  alignment | Position for Button 0 = Display object at the horizon center of specified y, while x ignored 1 = Display object at specified x andy 2 = Display object at center of screen, x, y are both ignored 3 = Display object at left of the screen of specified y, while x ignored 4 = Display object at right of the screen of specified y, while x ignored
  xCord | x-coordinate for Button, range 0-271
  yCord | y-coordinate for Button, range 0-479
  label | Label to show on the button. Required for Large/Medium buttons. Not used for Invisible buttons.
  labelLen | Length of label
  returnItem | The item includes screen ID, object ID, top-left x-coordinate, top-left y-coordinate, bottom-right x-coordinate, bottom-left y-coordinate, which are all assigned to the created button

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_addEthernet()

int lcd_addEthernet | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | IN char * | objectName,
|  | IN int | objectNameLen,
|  | IN BYTE | alignment,
|  | IN int | xCord,
|  | IN int | yCord,
|  | OUT IDTLCDItem * | returnItem
| ) |  |

Add Ethernet Settings

Adds an Ethernet settings to a selected screen. Must execute lcd_createScreen first to establish a screen to draw on. The SDK timeout of the command is set to 6 seconds.

Parameters

  screenName | Screen name that will be the target of add widget
  screenNameLen | Length of screenName
  objectName | Object name that will be the target of add widget
  objectNameLen | Length of objectName
  alignment | Position for widget 0 = Display object at the horizon center of specified y, while x ignored 1 = Display object at specified x and y 2 = Display object at center of screen, x, y are both ignored 3 = Display object at left of the screen of specified y, while x ignored 4 = Display object at right of the screen of specified y, while x ignored
  xCord | x-coordinate for widget, range 0-271
  yCord | y-coordinate for widget, range 0-479
  returnItem | The item includes screen ID, object ID, top-left x-coordinate, top-left y-coordinate, bottom-right x-coordinate, bottom-left y-coordinate, which are all assigned to the created widget

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

  Item | Maximum can be created for each screen
  --- | ---
  Text Area | 20
  Large Button | 8
  Medium Button | 16
  Invisible Button | 16
  Numeric Entry | 1
  Ethernet Setting | 1
  Led widget | 1
  image | 20

## ◆ lcd_addExtVideo()

int lcd_addExtVideo | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | IN char * | objectName,
|  | IN int | objectNameLen,
|  | IN BYTE | alignment,
|  | IN int | xCord,
|  | IN int | yCord,
|  | IN BYTE | loop,
|  | IN BYTE | numVideos,
|  | IN char * | filenames,
|  | IN int | filenamesLen,
|  | OUT IDTLCDItem * | returnItem
| ) |  |

Add Extended Video

Adds a extended video to a selected screen. Must execute lcd_createScreen first to establish a screen to draw on. The SDK timeout of the command is set to 6 seconds.

Parameters

  screenName | Screen name that will be the target of add video
  screenNameLen | Length of screenName
  objectName | Object name that will be the target of add video
  objectNameLen | Length of objectName
  alignment | Position for Video 0 = Display object at the horizon center of specified y, while x ignored 1 = Display object at specified x and y 2 = Display object at center of screen, x, y are both ignored 3 = Display object at left of the screen of specified y, while x ignored 4 = Display object at right of the screen of specified y, while x ignored
  xCord | x-coordinate for Video, range 0-271
  yCord | y-coordinate for Video, range 0-479
  loop | loop the videos when it's done. 0: Do not Loop 1: Loop
  numVideos | number of video files, range 1-4
  filenames | Filenames of the videos separated by '\0'. Must be available in the sd card.
  filenamesLen | Length of filenames excluding the last NULL character. Should be less than 64.
  returnItem | The item includes screen ID, object ID, top-left x-coordinate, top-left y-coordinate, bottom-right x-coordinate, bottom-left y-coordinate, which are all assigned to the created video

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

  Item | Maximum can be created for each screen
  --- | ---
  Text Area | 20
  Large Button | 8
  Medium Button | 16
  Invisible Button | 16
  Numeric Entry | 1
  Ethernet Setting | 1
  Led widget | 1
  image | 20
  video | 1

## ◆ lcd_addImage()

int lcd_addImage | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | IN char * | objectName,
|  | IN int | objectNameLen,
|  | IN BYTE | alignment,
|  | IN int | xCord,
|  | IN int | yCord,
|  | IN char * | filename,
|  | IN int | filenameLen,
|  | OUT IDTLCDItem * | returnItem
| ) |  |

Add Image

Adds a image to a selected screen. Must execute lcd_createScreen first to establish a screen to draw on. The SDK timeout of the command is set to 6 seconds.

Parameters

  screenName | Screen name that will be the target of add image
  screenNameLen | Length of screenName
  objectName | Object name that will be the target of add image
  objectNameLen | Length of objectName
  alignment | Position for Image 0 = Display object at the horizon center of specified y, while x ignored 1 = Display object at specified x and y 2 = Display object at center of screen, x, y are both ignored 3 = Display object at left of the screen of specified y, while x ignored 4 = Display object at right of the screen of specified y, while x ignored
  xCord | x-coordinate for Image, range 0-271
  yCord | y-coordinate for Image, range 0-479
  filename | Filename of the image. Must be available in device memory.
  filenameLen | Length of filename
  returnItem | The item includes screen ID, object ID, top-left x-coordinate, top-left y-coordinate, bottom-right x-coordinate, bottom-left y-coordinate, which are all assigned to the created image

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

  Item | Maximum can be created for each screen
  --- | ---
  Text Area | 20
  Large Button | 8
  Medium Button | 16
  Invisible Button | 16
  Numeric Entry | 1
  Ethernet Setting | 1
  Led widget | 1
  image | 20

## ◆ lcd_addItemToList()

int lcd_addItemToList | ( | IN BYTE * | listGraphicsID,
|  | IN char * | itemName,
|  | IN char * | itemID,
|  | IN int | selected
| ) |  |

Adds an item to an existing list.

Custom Display Mode must be enabled for custom text.

Parameters

  listGraphicsID | Existing list's graphics ID (4 byte array) that is provided during creation
  itemName | Item name (Maximum: 127 characters)
  itemID | Identifier for the item (Maximum: 31 characters)
  selected | If the item should be selected

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_addLED()

int lcd_addLED | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | IN char * | objectName,
|  | IN int | objectNameLen,
|  | IN BYTE | alignment,
|  | IN int | xCord,
|  | IN int | yCord,
|  | OUT IDTLCDItem * | returnItem,
|  | IN BYTE * | LED,
|  | IN int | LEDLen
| ) |  |

Add LED

Adds a LED widget to a selected screen. Must execute lcd_createScreen first to establish a screen to draw on. The SDK timeout of the command is set to 6 seconds.

Parameters

  screenName | Screen name that will be the target of add LED
  screenNameLen | Length of screenName
  objectName | Object name that will be the target of add LED
  objectNameLen | Length of objectName
  alignment | Position for LED 0 = Display object at the horizon center of specified y, while x ignored 1 = Display object at specified x andy 2 = Display object at center of screen, x, y are both ignored 3 = Display object at left of the screen of specified y, while x ignored 4 = Display object at right of the screen of specified y, while x ignored
  xCord | x-coordinate for LED, range 0-271
  yCord | y-coordinate for LED, range 0-479
  returnItem | The item includes screen ID, object ID, top-left x-coordinate, top-left y-coordinate, bottom-right x-coordinate, bottom-left y-coordinate, which are all assigned to the created widget
  LED | Must be 4 bytes, LED 0 = byte 0, LED 1 = byte 1, LED 2 = byte 2, LED 3 = byte 3 Value 0 = LED OFF Value 1 = LED Green Value 2 = LED Yellow Value 3 = LED Red
  LEDLen | Length of LED

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

  Item | Maximum can be created for each screen
  --- | ---
  Text Area | 20
  Large Button | 8
  Medium Button | 16
  Invisible Button | 16
  Numeric Entry | 1
  Ethernet Setting | 1
  Led widget | 1
  image | 20

## ◆ lcd_addText()

int lcd_addText | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | IN char * | objectName,
|  | IN int | objectNameLen,
|  | IN BYTE | alignment,
|  | IN int | xCord,
|  | IN int | yCord,
|  | IN int | width,
|  | IN int | height,
|  | IN BYTE | fontID,
|  | IN BYTE * | color,
|  | IN int | colorLen,
|  | IN char * | label,
|  | IN int | labelLen,
|  | OUT IDTLCDItem * | returnItem
| ) |  |

Add text

Adds a text component to a selected screen. Must execute lcd_createScreen first to establish a screen to draw on. The SDK timeout of the command is set to 6 seconds.

Parameters

  screenName | Screen name that will be the target of add text
  screenNameLen | Length of screenName
  objectName | Object name that will be the target of add text
  objectNameLen | Length of objectName
  alignment | Position for Text 0 = Display object at the horizon center of specified y, while x ignored 1 = Display object at specified x andy 2 = Display object at center of screen, x, y are both ignored 3 = Display object at left of the screen of specified y, while x ignored 4 = Display object at right of the screen of specified y, while x ignored
  xCord | x-coordinate for Text, range 0-271
  yCord | y-coordinate for Text, range 0-479
  width | Width of text area
  height | Height of text area
  fontID | Font ID
  color | Four bytes for color, example, Blue = 0xFF000000, Black = 0x00000000 Byte 0 = B Byte 1 = G Byte 2 = R Byte 3 = Reserved
  colorLen | Length of color
  label | Label to show on the text
  labelLen | Length of label
  returnItem | The item includes screen ID, object ID, top-left x-coordinate, top-left y-coordinate, bottom-right x-coordinate, bottom-left y-coordinate, which are all assigned to the created text area

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

Font ID | Typography Name | Font | Size
--- | --- | --- | ---
0 | RoundBold_12 | RoundBold.ttf | 12
1 | RoundBold_18 | RoundBold.ttf | 18
2 | RoundBold_24 | RoundBold.ttf | 24
3 | RoundBold_36 | RoundBold.ttf | 36
4 | RoundBold_48 | RoundBold.ttf | 48
5 | RoundBold_60 | RoundBold.ttf | 60
6 | RoundBold_72 | RoundBold.ttf | 72
7 | RoundCondensedBold_12 | RoundCondensedBold.ttf | 12
8 | RoundCondensedBold_18 | RoundCondensedBold.ttf | 18
9 | RoundCondensedBold_24 | RoundCondensedBold.ttf | 24
10 | RoundCondensedBold_36 | RoundCondensedBold.ttf | 36
11 | RoundCondensedBold_48 | RoundCondensedBold.ttf | 48
12 | RoundCondensedBold_60 | RoundCondensedBold.ttf | 60
13 | RoundCondensedBold_72 | RoundCondensedBold.ttf | 72
14 | RoundCondensedMedium_12 | RoundCondensedMedium_0.ttf | 12
15 | RoundCondensedMedium_18 | RoundCondensedMedium_0.ttf | 18
16 | RoundCondensedMedium_24 | RoundCondensedMedium_0.ttf | 24
17 | RoundCondensedMedium_36 | RoundCondensedMedium_0.ttf | 36
18 | RoundCondensedMedium_48 | RoundCondensedMedium_0.ttf | 48
19 | RoundCondensedMedium_60 | RoundCondensedMedium_0.ttf | 60
20 | RoundCondensedMedium_72 | RoundCondensedMedium_0.ttf | 72
21 | RoundCondensedSemibold_12 | RoundCondensedSemibold.ttf | 12
22 | RoundCondensedSemibold_18 | RoundCondensedSemibold.ttf | 18
23 | RoundCondensedSemibold_24 | RoundCondensedSemibold.ttf | 24
24 | RoundCondensedSemibold_36 | RoundCondensedSemibold.ttf | 36
25 | RoundCondensedSemibold_48 | RoundCondensedSemibold.ttf | 48
26 | RoundCondensedSemibold_60 | RoundCondensedSemibold.ttf | 60
27 | RoundCondensedSemibold_72 | RoundCondensedSemibold.ttf | 72
28 | RoundMedium_12 | RoundMedium.ttf | 12
29 | RoundMedium_18 | RoundMedium.ttf | 18
30 | RoundMedium_24 | RoundMedium.ttf | 24
31 | RoundMedium_36 | RoundMedium.ttf | 36
32 | RoundMedium_48 | RoundMedium.ttf | 48
33 | RoundMedium_60 | RoundMedium.ttf | 60
34 | RoundMedium_72 | RoundMedium.ttf | 72
35 | RoundSemibold_12 | RoundSemibold.ttf | 12
36 | RoundSemibold_18 | RoundSemibold.ttf | 18
37 | RoundSemibold_24 | RoundSemibold.ttf | 24
38 | RoundSemibold_36 | RoundSemibold.ttf | 36
39 | RoundSemibold_48 | RoundSemibold.ttf | 48
40 | RoundSemibold_60 | RoundSemibold.ttf | 60
41 | RoundSemibold_72 | RoundSemibold.ttf | 72

Item | Maximum can be created for each screen
--- | ---
Text Area | 20
Large Button | 8
Medium Button | 16
Invisible Button | 16
Numeric Entry | 1
Ethernet Setting | 1
Led widget | 1
image | 20

## ◆ lcd_addVideo()

int lcd_addVideo | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | IN char * | objectName,
|  | IN int | objectNameLen,
|  | IN BYTE | alignment,
|  | IN int | xCord,
|  | IN int | yCord,
|  | IN char * | filename,
|  | IN int | filenameLen,
|  | OUT IDTLCDItem * | returnItem
| ) |  |

Add Video

Adds a video to a selected screen. Must execute lcd_createScreen first to establish a screen to draw on. The SDK timeout of the command is set to 6 seconds.

Parameters

  screenName | Screen name that will be the target of add video
  screenNameLen | Length of screenName
  objectName | Object name that will be the target of add video
  objectNameLen | Length of objectName
  alignment | Position for Video 0 = Display object at the horizon center of specified y, while x ignored 1 = Display object at specified x and y 2 = Display object at center of screen, x, y are both ignored 3 = Display object at left of the screen of specified y, while x ignored 4 = Display object at right of the screen of specified y, while x ignored
  xCord | x-coordinate for Video, range 0-271
  yCord | y-coordinate for Video, range 0-479
  filename | Filename of the video. Must be available in the sd card.
  filenameLen | Length of filename
  returnItem | The item includes screen ID, object ID, top-left x-coordinate, top-left y-coordinate, bottom-right x-coordinate, bottom-left y-coordinate, which are all assigned to the created video

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

  Item | Maximum can be created for each screen
  --- | ---
  Text Area | 20
  Large Button | 8
  Medium Button | 16
  Invisible Button | 16
  Numeric Entry | 1
  Ethernet Setting | 1
  Led widget | 1
  image | 20
  video | 1

## ◆ lcd_cancelSlideShow()

int lcd_cancelSlideShow | ( | OUT BYTE * | statusCode,
|  | IN_OUT int * | statusCodeLen
| ) |  |

Cancel slide show Cancel the slide show currently running

Parameters

  statusCode | If the return code is not Success (0), the kernel may return a four-byte Extended Status Code
  statusCodeLen | the length of the Extended Status Code (should be 4 bytes)

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_captureSignature()

int lcd_captureSignature | ( | IN int | timeout | ) |

Enables Signature Capture This command executes the signature capture screen. Once a signature is captured, it is sent to the callback with DeviceState.Signature, and the data will contain a .png of the signature

Parameters

  timeout | Timeout waiting for the signature capture

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_clearDisplay()

int lcd_clearDisplay | ( | IN BYTE | control | ) |

Clear Display Command to clear the display screen on the reader. It returns the display to the currently defined background color and terminates all events

Parameters

  control | for L80 and L100 only. 0:First Line 1:Second Line 2:Third Line 3:Fourth Line 0xFF: All Screen

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_clearEventQueue()

int lcd_clearEventQueue | ( |  | ) |

Removes all entries from the event queue.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_clearScreenInfo()

int lcd_clearScreenInfo | ( |  | ) |

Clear Screen Info

Clear all current screen information in RAM and flash. And then show'power-on screen'

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_cloneScreen()

int lcd_cloneScreen | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | IN char * | cloneName,
|  | IN int | cloneNameLen,
|  | OUT int * | cloneID
| ) |  |

Clone Screen

Clones an existing screen.

Parameters

  screenName | Screen name to clone.
  screenNameLen | Length of screenName.
  cloneName | Name of the cloned screen.
  cloneNameLen | Length of cloneName.
  cloneID | Screen ID of the cloned screen

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_createInputField()

int lcd_createInputField | ( | IN BYTE * | specs,
|  | IN int | specsLen,
|  | OUT BYTE * | graphicId
| ) |  |

DEPRECATED : please use lcd_createInputField_Len(IN BYTE *specs, IN int specsLen, OUT BYTE *graphicId, IN_OUT int *graphicIdLen)

Create an input field on the screen.

Parameters

  specs | The specs of the input field: | Length (bytes) | Description |

| ---------------— | -----------------------------------------------------------------------------— |

| 2 - 4 | X coordinate in pixels, zero terminated ASCII |

| ---------------— | -----------------------------------------------------------------------------— |

| 2 - 4 | Y coordinate in pixels, zero terminated ASCII |

| ---------------— | -----------------------------------------------------------------------------— |

| 2 - 4 | Width in pixels, zero terminated ASCII. Set to 0 (30h) for calculated width. |

| ---------------— | -----------------------------------------------------------------------------— |

| 2 - 4 | Height in pixels, zero terminated ASCII. Set to 0 (30h) for calculated height. |

| ---------------— | -----------------------------------------------------------------------------— |

| 2 | Font designation. Default font = 1, zero terminated ASCII |

| ---------------— | -----------------------------------------------------------------------------— |

| 2 - 3 | Zero terminated ASCII Font ID |

| ---------------— | -----------------------------------------------------------------------------— |

| 3 | Zero terminated ASCII hexadecimal display option flag |

| | Bit 0 0 = No Border |

| | 1 = Show Border |

| | Bit 1 0 = Characters are first displayed on the leftmost area of the screen. |

| | 1 = The first character entered is displayed on the rightmost area of |

| | the screen, and, as further digits are entered, characters scroll |

| | from the right to the left. |

| | Bit 2 - 15 Reserved |

| ---------------— | -----------------------------------------------------------------------------— |

| 1 or 9 | Foreground color, zero terminated ASCII hexadecimal |

| ---------------— | -----------------------------------------------------------------------------— |

| 1 or 9 | Background color, zero terminated ASCII hexadecimal |

| ---------------— | -----------------------------------------------------------------------------— |

| 1 or 9 | Border color, zero terminated ASCII hexadecimal |

| ---------------— | -----------------------------------------------------------------------------— |

| 1 - 65 | Prefill String, zero terminated ASCII |

| ---------------— | -----------------------------------------------------------------------------— |

| 1 - 65 | Format String, zero terminated ASCII |

Parameters

  specsLen | The length of specs
  graphicsID | The graphicID of the event (required to be 4 bytes)

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_createInputField_Len()

int lcd_createInputField_Len | ( | IN BYTE * | specs,
|  | IN int | specsLen,
|  | OUT BYTE * | graphicId,
|  | IN_OUT int * | graphicIdLen
| ) |  |

Create an input field on the screen.

Parameters

  specs | The specs of the input field: | Length (bytes) | Description |

| ---------------— | -----------------------------------------------------------------------------— |

| 2 - 4 | X coordinate in pixels, zero terminated ASCII |

| ---------------— | -----------------------------------------------------------------------------— |

| 2 - 4 | Y coordinate in pixels, zero terminated ASCII |

| ---------------— | -----------------------------------------------------------------------------— |

| 2 - 4 | Width in pixels, zero terminated ASCII. Set to 0 (30h) for calculated width. |

| ---------------— | -----------------------------------------------------------------------------— |

| 2 - 4 | Height in pixels, zero terminated ASCII. Set to 0 (30h) for calculated height. |

| ---------------— | -----------------------------------------------------------------------------— |

| 2 | Font designation. Default font = 1, zero terminated ASCII |

| ---------------— | -----------------------------------------------------------------------------— |

| 2 - 3 | Zero terminated ASCII Font ID |

| ---------------— | -----------------------------------------------------------------------------— |

| 3 | Zero terminated ASCII hexadecimal display option flag |

| | Bit 0 0 = No Border |

| | 1 = Show Border |

| | Bit 1 0 = Characters are first displayed on the leftmost area of the screen. |

| | 1 = The first character entered is displayed on the rightmost area of |

| | the screen, and, as further digits are entered, characters scroll |

| | from the right to the left. |

| | Bit 2 - 15 Reserved |

| ---------------— | -----------------------------------------------------------------------------— |

| 1 or 9 | Foreground color, zero terminated ASCII hexadecimal |

| ---------------— | -----------------------------------------------------------------------------— |

| 1 or 9 | Background color, zero terminated ASCII hexadecimal |

| ---------------— | -----------------------------------------------------------------------------— |

| 1 or 9 | Border color, zero terminated ASCII hexadecimal |

| ---------------— | -----------------------------------------------------------------------------— |

| 1 - 65 | Prefill String, zero terminated ASCII |

| ---------------— | -----------------------------------------------------------------------------— |

| 1 - 65 | Format String, zero terminated ASCII |

Parameters

  specsLen | The length of specs
  graphicsID | The graphicID of the event (required to be 4 bytes)
  graphicsIDLen | Length of graphicsID

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_createList()

int lcd_createList | ( | IN int | posX,
|  | IN int | posY,
|  | IN int | numOfColumns,
|  | IN int | numOfRows,
|  | IN int | fontDesignation,
|  | IN int | fontID,
|  | IN int | verticalScrollArrowsVisible,
|  | IN int | borderedListItems,
|  | IN int | borderdScrollArrows,
|  | IN int | touchSensitive,
|  | IN int | automaticScrolling,
|  | OUT BYTE * | graphicsID
| ) |  |

DEPRECATED : please use lcd_createList_Len(IN int posX, IN int posY, IN int numOfColumns, IN int numOfRows, IN int fontDesignation, IN int fontID, IN int verticalScrollArrowsVisible, IN int borderedListItems, IN int borderdScrollArrows, IN int touchSensitive, IN int automaticScrolling, OUT BYTE *graphicsID, IN_OUT int *graphicsIDLen)

Creates a display list.

Parameters

  posX | X coordinate in pixels
  posY | Y coordinate in pixels
  numOfColumns | Number of columns to display
  numOfRows | Number of rows to display
  fontDesignation | Font Designation 1 - Default font
  fontID | Font styling | Font ID | Height in pixels | Font Properties |

| ----— | -------------— | --------------------------------— |

| 1 | 13 | Regular |

| 2 | 17 | Regular |

| 3 | 17 | Bold |

| 4 | 22 | Regular |

| 5 | 20 | Regular |

| 6 | 20 | Bold |

| 7 | 29 | Regular |

| 8 | 38 | Regular |

| 9 | 38 | Bold |

| 10 | 58 | Regular |

| 11 | 58 | Bold, mono-space |

| 12 | 14 | Regular, mono-space, 8 pixels wide |

| 13 | 15 | Regular, mono-space, 9 pixels wide |

| 14 | 17 | Regular, mono-space, 9 pixels wide |

| 15 | 20 | Regular, mono-space, 11 pixels wide |

| 16 | 21 | Regular, mono-space, 12 pixels wide |

| 17 | 25 | Regular, mono-space, 14 pixels wide |

| 18 | 30 | Regular, mono-space, 17 pixels wide |

Parameters

  verticalScrollArrowsVisible | Display vertical scroll arrows by default
  borederedListItems | Draw border around list items
  borederedScrollArrows | Draw border around scroll arrows (if visible)
  touchSensitive | List items are touch enabled
  automaticScrolling | Enable automatic scrolling of list when new items exceed display area
  graphicsID | A four byte array containing the ID of the created element (optional) if graphicsID is NULL, the SDK will not return graphicsID if graphicsID is not NULL, the SDK will return graphicsID, but it will need 4 bytes of memory

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_createList_Len()

int lcd_createList_Len | ( | IN int | posX,
|  | IN int | posY,
|  | IN int | numOfColumns,
|  | IN int | numOfRows,
|  | IN int | fontDesignation,
|  | IN int | fontID,
|  | IN int | verticalScrollArrowsVisible,
|  | IN int | borderedListItems,
|  | IN int | borderdScrollArrows,
|  | IN int | touchSensitive,
|  | IN int | automaticScrolling,
|  | OUT BYTE * | graphicsID,
|  | IN_OUT int * | graphicsIDLen
| ) |  |

Creates a display list.

Parameters

  posX | X coordinate in pixels
  posY | Y coordinate in pixels
  numOfColumns | Number of columns to display
  numOfRows | Number of rows to display
  fontDesignation | Font Designation 1 - Default font
  fontID | Font styling | Font ID | Height in pixels | Font Properties |

| ----— | -------------— | --------------------------------— |

| 1 | 13 | Regular |

| 2 | 17 | Regular |

| 3 | 17 | Bold |

| 4 | 22 | Regular |

| 5 | 20 | Regular |

| 6 | 20 | Bold |

| 7 | 29 | Regular |

| 8 | 38 | Regular |

| 9 | 38 | Bold |

| 10 | 58 | Regular |

| 11 | 58 | Bold, mono-space |

| 12 | 14 | Regular, mono-space, 8 pixels wide |

| 13 | 15 | Regular, mono-space, 9 pixels wide |

| 14 | 17 | Regular, mono-space, 9 pixels wide |

| 15 | 20 | Regular, mono-space, 11 pixels wide |

| 16 | 21 | Regular, mono-space, 12 pixels wide |

| 17 | 25 | Regular, mono-space, 14 pixels wide |

| 18 | 30 | Regular, mono-space, 17 pixels wide |

Parameters

  verticalScrollArrowsVisible | Display vertical scroll arrows by default
  borederedListItems | Draw border around list items
  borederedScrollArrows | Draw border around scroll arrows (if visible)
  touchSensitive | List items are touch enabled
  automaticScrolling | Enable automatic scrolling of list when new items exceed display area
  graphicsID | A four byte array containing the ID of the created element (optional)
  graphicsIDLen | Length of graphicsID (optional)

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_createScreen()

int lcd_createScreen | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | OUT int * | ScreenID
| ) |  |

Create Screen

Creates a new screen.

Parameters

  screenName | Screen name to use.
  screenNameLen | Length of screenName.
  screenID | Screen ID that was created.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_customDisplayMode()

int lcd_customDisplayMode | ( | IN int | enable | ) |

Custom Display Mode Controls the LCD display mode to custom display. Keyboard entry is limited to the Cancel, Clear, Enter and the function keys, if present. PIN entry is not permitted while the reader is in Custom Display Mode

Parameters

  enable | TRUE = enabled, FALSE = disabled

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_destroyScreen()

int lcd_destroyScreen | ( | IN char * | screenName,
|  | IN int | screenNameLen
| ) |  |

Destroy Screen

Destroys a previously created inactive screen. The screen cannot be active

Parameters

  screenName | Screen name to destroy. The screen number is assigned with lcd_createScreen.
  screenNameLen | Length of screenName.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_displayButton()

int lcd_displayButton | ( | IN int | posX,
|  | IN int | posY,
|  | IN int | buttonWidth,
|  | IN int | buttonHeight,
|  | IN int | fontDesignation,
|  | IN int | fontID,
|  | IN int | displayPosition,
|  | IN char * | buttonLabel,
|  | IN int | buttonTextColorR,
|  | IN int | buttonTextColorG,
|  | IN int | buttonTextColorB,
|  | IN int | buttonBackgroundColorR,
|  | IN int | buttonBackgroundColorG,
|  | IN int | buttonBackgroundColorB,
|  | OUT BYTE * | graphicsID
| ) |  |

DEPRECATED : please use lcd_displayButton_Len(IN int posX, IN int posY, IN int buttonWidth, IN int buttonHeight, IN int fontDesignation, IN int fontID, IN int displayPosition, IN char *buttonLabel, IN int buttonTextColorR, IN int buttonTextColorG, IN int buttonTextColorB, IN int buttonBackgroundColorR, IN int buttonBackgroundColorG, IN int buttonBackgroundColorB, OUT BYTE *graphicsID, IN_OUT int *graphicsIDLen)

Displays an interactive button.

Parameters

  posX | X coordinate in pixels
  posY | Y coordinate in pixels
  buttonWidth | Width of the button
  buttonHeight | Height of the button
  fontDesignation | Font designation 1 - Default
  FontID | Font styling | Font ID | Height in pixels | Font Properties |

| ----— | -------------— | --------------------------------— |

| 1 | 13 | Regular |

| 2 | 17 | Regular |

| 3 | 17 | Bold |

| 4 | 22 | Regular |

| 5 | 20 | Regular |

| 6 | 20 | Bold |

| 7 | 29 | Regular |

| 8 | 38 | Regular |

| 9 | 38 | Bold |

| 10 | 58 | Regular |

| 11 | 58 | Bold, mono-space |

| 12 | 14 | Regular, mono-space, 8 pixels wide |

| 13 | 15 | Regular, mono-space, 9 pixels wide |

| 14 | 17 | Regular, mono-space, 9 pixels wide |

| 15 | 20 | Regular, mono-space, 11 pixels wide |

| 16 | 21 | Regular, mono-space, 12 pixels wide |

| 17 | 25 | Regular, mono-space, 14 pixels wide |

| 18 | 30 | Regular, mono-space, 17 pixels wide |

Parameters

  displayPosition | Button display position 0 - Center on line Y without clearing screen and without word wrap 1 - Center on line Y after clearing screen and without word wrap 2 - Display at (X, Y) without clearing screen and without word wrap 3 - Display at (X, Y) after clearing screen and without word wrap 4 - Center button on screen without clearing screen and without word wrap 5 - Center button on screen after clearing screen and without word wrap 64 - Center on line Y without clearing screen and with word wrap 65 - Center on line Y after clearing the screen and with word wrap 66 - Display at (X, Y) without clearing screen and with word wrap 67 - Display at (X, Y) after clearing screen and with word wrap 68 - Center button on screen without clearing screen and with word wrap 69 - Center button on screen after clearing screen and with word wrap
  buttonLabel | Button label text (Maximum: 31 characters)
  buttonTextColorR | - Red component for foreground color (0 - 255)
  buttonTextColorG | - Green component for foreground color (0 - 255)
  buttonTextColorB | - Blue component for foreground color (0 - 255)
  buttonBackgroundColorR | - Red component for background color (0 - 255)
  buttonBackgroundColorG | - Green component for background color (0 - 255)
  buttonBackgroundColorB | - Blue component for background color (0 - 255)
  graphicsID | A four byte array containing the ID of the created element (optional) if graphicsID is NULL, the SDK will not return graphicsID if graphicsID is not NULL, the SDK will return graphicsID, but it will need 4 bytes of memory

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_displayButton_Len()

int lcd_displayButton_Len | ( | IN int | posX,
|  | IN int | posY,
|  | IN int | buttonWidth,
|  | IN int | buttonHeight,
|  | IN int | fontDesignation,
|  | IN int | fontID,
|  | IN int | displayPosition,
|  | IN char * | buttonLabel,
|  | IN int | buttonTextColorR,
|  | IN int | buttonTextColorG,
|  | IN int | buttonTextColorB,
|  | IN int | buttonBackgroundColorR,
|  | IN int | buttonBackgroundColorG,
|  | IN int | buttonBackgroundColorB,
|  | OUT BYTE * | graphicsID,
|  | IN_OUT int * | graphicsIDLen
| ) |  |

Displays an interactive button.

Parameters

  posX | X coordinate in pixels
  posY | Y coordinate in pixels
  buttonWidth | Width of the button
  buttonHeight | Height of the button
  fontDesignation | Font designation 1 - Default
  FontID | Font styling | Font ID | Height in pixels | Font Properties |

| ----— | -------------— | --------------------------------— |

| 1 | 13 | Regular |

| 2 | 17 | Regular |

| 3 | 17 | Bold |

| 4 | 22 | Regular |

| 5 | 20 | Regular |

| 6 | 20 | Bold |

| 7 | 29 | Regular |

| 8 | 38 | Regular |

| 9 | 38 | Bold |

| 10 | 58 | Regular |

| 11 | 58 | Bold, mono-space |

| 12 | 14 | Regular, mono-space, 8 pixels wide |

| 13 | 15 | Regular, mono-space, 9 pixels wide |

| 14 | 17 | Regular, mono-space, 9 pixels wide |

| 15 | 20 | Regular, mono-space, 11 pixels wide |

| 16 | 21 | Regular, mono-space, 12 pixels wide |

| 17 | 25 | Regular, mono-space, 14 pixels wide |

| 18 | 30 | Regular, mono-space, 17 pixels wide |

Parameters

  displayPosition | Button display position 0 - Center on line Y without clearing screen and without word wrap 1 - Center on line Y after clearing screen and without word wrap 2 - Display at (X, Y) without clearing screen and without word wrap 3 - Display at (X, Y) after clearing screen and without word wrap 4 - Center button on screen without clearing screen and without word wrap 5 - Center button on screen after clearing screen and without word wrap 64 - Center on line Y without clearing screen and with word wrap 65 - Center on line Y after clearing the screen and with word wrap 66 - Display at (X, Y) without clearing screen and with word wrap 67 - Display at (X, Y) after clearing screen and with word wrap 68 - Center button on screen without clearing screen and with word wrap 69 - Center button on screen after clearing screen and with word wrap
  buttonLabel | Button label text (Maximum: 31 characters)
  buttonTextColorR | - Red component for foreground color (0 - 255)
  buttonTextColorG | - Green component for foreground color (0 - 255)
  buttonTextColorB | - Blue component for foreground color (0 - 255)
  buttonBackgroundColorR | - Red component for background color (0 - 255)
  buttonBackgroundColorG | - Green component for background color (0 - 255)
  buttonBackgroundColorB | - Blue component for background color (0 - 255)
  graphicsID | A four byte array containing the ID of the created element (optional)
  graphicsIDLen | Length of graphicsID (optional)

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_displayMessage()

int lcd_displayMessage | ( | int | lineNumber,
|  | char * | message,
|  | int | messageLen
| ) |  |

Display Message on Line

     Displays a message on a display line.
       @param lineNumber  Line number to display message on  (1-4)
       @param message Message to display
       @param messageLen length of message

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ lcd_displayParagraph()

int lcd_displayParagraph | ( | IN int | posX,
|  | IN int | posY,
|  | IN int | displayWidth,
|  | IN int | displayHeight,
|  | IN int | fontDesignation,
|  | IN int | fontID,
|  | IN int | displayProperties,
|  | IN char * | displayText
| ) |  |

Displays text with scroll feature.

Custom Display Mode must be enabled.

Parameters

  posX | X coordinate in pixels
  posY | Y coordinate in pixels
  displayWidth | Width of the display area in pixels (Minimum: 40px) 0 or NULL - Use the full width to display text
  displayHeight | Height of the display area in pixels (Minimum: 100px) 0 or NULL - Use the full height to display text
  fontDesignation | Font designation 1 - Default
  fontID | Font styling | Font ID | Height in pixels | Font Properties |

| ----— | -------------— | --------------------------------— |

| 1 | 13 | Regular |

| 2 | 17 | Regular |

| 3 | 17 | Bold |

| 4 | 22 | Regular |

| 5 | 20 | Regular |

| 6 | 20 | Bold |

| 7 | 29 | Regular |

| 8 | 38 | Regular |

| 9 | 38 | Bold |

| 10 | 58 | Regular |

| 11 | 58 | Bold, mono-space |

| 12 | 14 | Regular, mono-space, 8 pixels wide |

| 13 | 15 | Regular, mono-space, 9 pixels wide |

| 14 | 17 | Regular, mono-space, 9 pixels wide |

| 15 | 20 | Regular, mono-space, 11 pixels wide |

| 16 | 21 | Regular, mono-space, 12 pixels wide |

| 17 | 25 | Regular, mono-space, 14 pixels wide |

| 18 | 30 | Regular, mono-space, 17 pixels wide |

Parameters

  displayProperties | Display properties for the text 0 - Center on line Y without clearing screen 1 - Center on line Y after clearing screen 2 - Display at (X, Y) without clearing screen 3 - Display at (X, Y) after clearing screen 4 - Center on screen without clearing screen 5 - Center on screen after clearing screen
  displayText | Display text (Maximum: 3999 characters)

## ◆ lcd_displayPrompt()

int lcd_displayPrompt | ( | int | promptNumber,
|  | int | lineNumber
| ) |  |

Display Prompt on Line

Displays a message prompt from L80 or L100 memory.

Parameters

  promptNumber | Prompt number (0-9)
  lineNumber | Line number to display message prompt (1-4)

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ lcd_displayText()

int lcd_displayText | ( | IN int | posX,
|  | IN int | posY,
|  | IN int | displayWidth,
|  | IN int | displayHeight,
|  | IN int | fontDesignation,
|  | IN int | fontID,
|  | IN int | screenPosition,
|  | IN char * | displayText,
|  | OUT BYTE * | graphicsID
| ) |  |

DEPRECATED : please use lcd_displayText_Len(IN int posX, IN int posY, IN int displayWidth, IN int displayHeight, IN int fontDesignation, IN int fontID, IN int screenPosition, IN char *displayText, OUT BYTE *graphicsID, IN_OUT int *graphicsIDLen)

Displays text.

Custom Display Mode must be enabled for custom text. PIN pad entry is not allowed in Custom Display Mode but the Cancel, OK, and Clear keys remain active.

Parameters

  posX | X coordinate in pixels
  posY | Y coordinate in pixels
  displayWidth | Width of the display area in pixels (optional)
  displayHeight | Height of the display area in pixels (optional)
  fontDesignation | Font designation 1 - Default
  FontID | Font styling | Font ID | Height in pixels | Font Properties |

| ----— | -------------— | --------------------------------— |

| 1 | 13 | Regular |

| 2 | 17 | Regular |

| 3 | 17 | Bold |

| 4 | 22 | Regular |

| 5 | 20 | Regular |

| 6 | 20 | Bold |

| 7 | 29 | Regular |

| 8 | 38 | Regular |

| 9 | 38 | Bold |

| 10 | 58 | Regular |

| 11 | 58 | Bold, mono-space |

| 12 | 14 | Regular, mono-space, 8 pixels wide |

| 13 | 15 | Regular, mono-space, 9 pixels wide |

| 14 | 17 | Regular, mono-space, 9 pixels wide |

| 15 | 20 | Regular, mono-space, 11 pixels wide |

| 16 | 21 | Regular, mono-space, 12 pixels wide |

| 17 | 25 | Regular, mono-space, 14 pixels wide |

| 18 | 30 | Regular, mono-space, 17 pixels wide |

Parameters

  screenPosition | Display position 0 - Center on line Y without clearing screen 1 - Center on line Y after clearing screen 2 - Display at (X, Y) without clearing screen 3 - Display at (X, Y) after clearing screen 4 - Display at center of screen without clearing screen 5 - Display at center of screen after clearing screen 6 - Display text right-justified without clearing screen 7 - Display text right-justified after clearing screen
  displayText | Display text (Maximum: 1900 characters)
  graphicsID | A four byte array containing the ID of the created element (optional) if graphicsID is NULL, the SDK will not return graphicsID if graphicsID is not NULL, the SDK will return graphicsID, but it will need 4 bytes of memory

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_displayText_Len()

int lcd_displayText_Len | ( | IN int | posX,
|  | IN int | posY,
|  | IN int | displayWidth,
|  | IN int | displayHeight,
|  | IN int | fontDesignation,
|  | IN int | fontID,
|  | IN int | screenPosition,
|  | IN char * | displayText,
|  | OUT BYTE * | graphicsID,
|  | IN_OUT int * | graphicsIDLen
| ) |  |

Displays text.

Custom Display Mode must be enabled for custom text. PIN pad entry is not allowed in Custom Display Mode but the Cancel, OK, and Clear keys remain active.

Parameters

  posX | X coordinate in pixels
  posY | Y coordinate in pixels
  displayWidth | Width of the display area in pixels (optional)
  displayHeight | Height of the display area in pixels (optional)
  fontDesignation | Font designation 1 - Default
  FontID | Font styling | Font ID | Height in pixels | Font Properties |

| ----— | -------------— | --------------------------------— |

| 1 | 13 | Regular |

| 2 | 17 | Regular |

| 3 | 17 | Bold |

| 4 | 22 | Regular |

| 5 | 20 | Regular |

| 6 | 20 | Bold |

| 7 | 29 | Regular |

| 8 | 38 | Regular |

| 9 | 38 | Bold |

| 10 | 58 | Regular |

| 11 | 58 | Bold, mono-space |

| 12 | 14 | Regular, mono-space, 8 pixels wide |

| 13 | 15 | Regular, mono-space, 9 pixels wide |

| 14 | 17 | Regular, mono-space, 9 pixels wide |

| 15 | 20 | Regular, mono-space, 11 pixels wide |

| 16 | 21 | Regular, mono-space, 12 pixels wide |

| 17 | 25 | Regular, mono-space, 14 pixels wide |

| 18 | 30 | Regular, mono-space, 17 pixels wide |

Parameters

  screenPosition | Display position 0 - Center on line Y without clearing screen 1 - Center on line Y after clearing screen 2 - Display at (X, Y) without clearing screen 3 - Display at (X, Y) after clearing screen 4 - Display at center of screen without clearing screen 5 - Display at center of screen after clearing screen 6 - Display text right-justified without clearing screen 7 - Display text right-justified after clearing screen
  displayText | Display text (Maximum: 1900 characters)
  graphicsID | A four byte array containing the ID of the created element (optional)
  graphicsIDLen | Length of graphicsID (optional)

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_enableBacklight()

int lcd_enableBacklight | ( | int | enable | ) |

Enable/Disable LCD Backlight Trns on/off the LCD back lighting.

Parameters

  enable | TRUE = turn ON backlight, FALSE = turn OFF backlight

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ lcd_getActiveScreen()

int lcd_getActiveScreen | ( | OUT char * | screenName,
|  | IN_OUT int * | screenNameLen
| ) |  |

Get Active Screen

Returns the active screen ID.

Parameters

  screenName | Screen name this is active.
  screenNameLen | Length of screenName.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_getAllObjects()

int lcd_getAllObjects | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | IN_OUT int * | objectNumbers,
|  | OUT IDTObjectInfo * | objectInfo
| ) |  |

Get All Objects on Screen

Get all created objects' name on certain screen

Parameters

  screenName | Screen name to get all objects
  screenNameLen | Length of screenName
  objectNumbers | Number of created objects
  returnObjects | Array of all created objects each element includes -objectID of a created object -objectName of a created object -objectNameLen of objectName

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_getAllScreens()

int lcd_getAllScreens | ( | IN_OUT int * | screenNumbers,
|  | OUT IDTScreenInfo * | screenInfo
| ) |  |

Get All Screens

Get all created screens' name

Parameters

  screenNumbers | Number of created screens
  screenInfo | Array of all created screens each element includes -screenID of a created screen -screenName of a created screen -screenNameLen of screenName

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_getBacklightStatus()

int lcd_getBacklightStatus | ( | int * | enabled | ) |

Get Backlight Status

Returns the status of the LCD back lighting.

Parameters

  enabled | 1 = Backlight is ON, 0 = Backlight is OFF

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ lcd_getButtonEvent()

int lcd_getButtonEvent | ( | OUT int * | screenID,
|  | OUT int * | objectID,
|  | OUT char * | screenName,
|  | IN_OUT int * | screenNameLen,
|  | OUT char * | objectName,
|  | IN_OUT int * | objectNameLen,
|  | OUT int * | isLongPress
| ) |  |

Get Button Event

Reports back the ID of the button that encountered a click event after the last Get Button Event.

Parameters

  screenID | Screen ID of the last clicked button
  objectID | Button ID of the last clicked button
  screenName | Screen Name of the last clicked button
  screenNameLen | Length of screenName
  objectName | Button Name of the last clicked button
  objectNameLen | Length of objectName
  isLongPress | 1 = Long Press, 0 = Short Press

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_getInputEvent()

int lcd_getInputEvent | ( | IN int | timeout,
|  | OUT int * | dataReceived,
|  | OUT BYTE * | eventType,
|  | OUT BYTE * | graphicsID,
|  | OUT BYTE * | eventData
| ) |  |

DEPRECATED : please use lcd_getInputEvent_Len(IN int timeout, OUT int *dataReceived, OUT BYTE *eventType, IN_OUT int *eventTypeLen, OUT BYTE *graphicsID, IN_OUT int *graphicsIDLen, OUT BYTE *eventData, IN_OUT int *eventDataLen)

Requests input from the reader.

Parameters

  timeout | Timeout amount in seconds 0 - No timeout
  dataReceived | Indicates if an event occurred and data was received 0 - No data received 1 - Data received
  eventType | The event type (required to be at least 4 bytes), see table below
  graphicsID | The graphicID of the event (required to be at least 4 bytes)
  eventData | The event data, see table below (required to be at least 73 bytes) | Event Type | Value (4 bytes) | Event Specific Data |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Button Event | 00030000h | Length = Variable |

| | | Byte 1: State (1 = Pressed, other values RFU) |

| | | Byte 2 - n: Null terminated caption |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Checkbox Event | 00030001h | Length = 1 byte |

| | | Byte 1: State (1 = Checked, 0 = Unchecked) |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Line Item Event | 00030002h | Length = 5 bytes |

| | | Byte 1: State (1 = Item Selected, other values RFU) |

| | | Byte 2 - n: Caption of the selected item |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Keypad Event | 00030003h | Length - 3 bytes |

| | | Byte 1: State (1 = key pressed, 2 = key released, other values RFU) |

| | | Byte 2 - 3: Key pressed and Key release |

| | | 0030h - KEYPAD_KEY_0 |

| | | 0031h - KEYPAD_KEY_1 |

| | | 0032h - KEYPAD_KEY_2 |

| | | 0033h - KEYPAD_KEY_3 |

| | | 0034h - KEYPAD_KEY_4 |

| | | 0035h - KEYPAD_KEY_5 |

| | | 0036h - KEYPAD_KEY_6 |

| | | 0037h - KEYPAD_KEY_7 |

| | | 0038h - KEYPAD_KEY_8 |

| | | 0039h - KEYPAD_KEY_9 |

| | | Byte 2 - 3: Only Key pressed |

| | | 000Dh - KEYPAD_KEY_ENTER |

| | | 0008h - KEYPAD_KEY_CLEAR |

| | | 001Bh - KEYPAD_KEY_CANCEL |

| | | 0070h - FUNC_KEY_F1 (Vend III) |

| | | 0071h - FUNC_KEY_F2 (Vend III) |

| | | 0072h - FUNC_KEY_F3 (Vend III) |

| | | 0073h - FUNC_KEY_F4 (Vend III) |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Touchscreen Event | 00030004h | Length = 1 - 33 bytes |

| | | Byte 1: State (not used) |

| | | Byte 2 - 33: Image name (zero terminated) |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Slideshow Event | 00030005h | Length = 1 byte |

| | | Byte 1: State (not used) |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Transaction Event | 00030006h | Length = 9 bytes |

| | | Byte 1: State (not used) |

| | | Byte 2 - 5: Card type (0 = unknown) |

| | | Byte 6 - 9: Status - A four byte, big-endian field |

| | | Byte 9 is used to store the 1-byte status code |

| | | 00 - SUCCESS |

| | | 08 - TIMEOUT |

| | | 0A - FAILED |

| | | This is not related to the extended status codes |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Radio Button Event | 00030007h | Length = 73 bytes |

| | | Byte 1: State (1 = Change ins selected button, other values RFU) |

| | | Byte 2 - 33: Null terminated group name |

| | | Byte 34 - 65: Radio button caption |

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_getInputEvent_Len()

int lcd_getInputEvent_Len | ( | IN int | timeout,
|  | OUT int * | dataReceived,
|  | OUT BYTE * | eventType,
|  | IN_OUT int * | eventTypeLen,
|  | OUT BYTE * | graphicsID,
|  | IN_OUT int * | graphicsIDLen,
|  | OUT BYTE * | eventData,
|  | IN_OUT int * | eventDataLen
| ) |  |

Requests input from the reader.

Parameters

  timeout | Timeout amount in seconds 0 - No timeout
  dataReceived | Indicates if an event occurred and data was received 0 - No data received 1 - Data received
  eventType | The event type (required to be at least 4 bytes), see table below
  eventTypeLen | Length of eventType
  graphicsID | The graphicID of the event (required to be at least 4 bytes)
  graphicsIDLen | length of graphicID
  eventData | The event data, see table below (required to be at least 73 bytes) | Event Type | Value (4 bytes) | Event Specific Data |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Button Event | 00030000h | Length = Variable |

| | | Byte 1: State (1 = Pressed, other values RFU) |

| | | Byte 2 - n: Null terminated caption |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Checkbox Event | 00030001h | Length = 1 byte |

| | | Byte 1: State (1 = Checked, 0 = Unchecked) |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Line Item Event | 00030002h | Length = 5 bytes |

| | | Byte 1: State (1 = Item Selected, other values RFU) |

| | | Byte 2 - n: Caption of the selected item |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Keypad Event | 00030003h | Length - 3 bytes |

| | | Byte 1: State (1 = key pressed, 2 = key released, other values RFU) |

| | | Byte 2 - 3: Key pressed and Key release |

| | | 0030h - KEYPAD_KEY_0 |

| | | 0031h - KEYPAD_KEY_1 |

| | | 0032h - KEYPAD_KEY_2 |

| | | 0033h - KEYPAD_KEY_3 |

| | | 0034h - KEYPAD_KEY_4 |

| | | 0035h - KEYPAD_KEY_5 |

| | | 0036h - KEYPAD_KEY_6 |

| | | 0037h - KEYPAD_KEY_7 |

| | | 0038h - KEYPAD_KEY_8 |

| | | 0039h - KEYPAD_KEY_9 |

| | | Byte 2 - 3: Only Key pressed |

| | | 000Dh - KEYPAD_KEY_ENTER |

| | | 0008h - KEYPAD_KEY_CLEAR |

| | | 001Bh - KEYPAD_KEY_CANCEL |

| | | 0070h - FUNC_KEY_F1 (Vend III) |

| | | 0071h - FUNC_KEY_F2 (Vend III) |

| | | 0072h - FUNC_KEY_F3 (Vend III) |

| | | 0073h - FUNC_KEY_F4 (Vend III) |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Touchscreen Event | 00030004h | Length = 1 - 33 bytes |

| | | Byte 1: State (not used) |

| | | Byte 2 - 33: Image name (zero terminated) |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Slideshow Event | 00030005h | Length = 1 byte |

| | | Byte 1: State (not used) |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Transaction Event | 00030006h | Length = 9 bytes |

| | | Byte 1: State (not used) |

| | | Byte 2 - 5: Card type (0 = unknown) |

| | | Byte 6 - 9: Status - A four byte, big-endian field |

| | | Byte 9 is used to store the 1-byte status code |

| | | 00 - SUCCESS |

| | | 08 - TIMEOUT |

| | | 0A - FAILED |

| | | This is not related to the extended status codes |

| ---------------— | ------------— | ----------------------------------------------------------------— |

| Radio Button Event | 00030007h | Length = 73 bytes |

| | | Byte 1: State (1 = Change ins selected button, other values RFU) |

| | | Byte 2 - 33: Null terminated group name |

| | | Byte 34 - 65: Radio button caption |

Parameters

  eventDataLen | Length of eventData

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_getInputFieldValue()

int lcd_getInputFieldValue | ( | IN BYTE * | graphicId,
|  | OUT BYTE * | retData,
|  | IN_OUT int * | retDataLen
| ) |  |

Get the keypad data that was entered into the specified Input Field.

Parameters

  graphicsID | The graphicID of the input field (required to be 4 bytes)
  retData | return keypad data
  retDataLen | The length of retData

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_getSelectedListItem()

int lcd_getSelectedListItem | ( | IN BYTE * | listGraphicsID,
|  | OUT char * | itemID
| ) |  |

DEPRECATED : please use lcd_getSelectedListItem_Len(IN BYTE *listGraphicsID, OUT char *itemID, IN_OUT int *itemIDLen)

Retrieves the selected item's ID.

Parameters

  listGraphicsID | Existing list's graphics ID (4 byte array) that is provided during creation
  itemID | The selected item's ID (Maximum: 32 characters) Need 33 bytes of memory including '\0'

## ◆ lcd_getSelectedListItem_Len()

int lcd_getSelectedListItem_Len | ( | IN BYTE * | listGraphicsID,
|  | OUT char * | itemID,
|  | IN_OUT int * | itemIDLen
| ) |  |

Retrieves the selected item's ID.

Parameters

  listGraphicsID | Existing list's graphics ID (4 byte array) that is provided during creation
  itemID | The selected item's ID (Maximum: 32 characters) Need 33 bytes of memory including '\0'
  itemIDLen | Length of itemID

## ◆ lcd_linkUIWithTransactionMessageId()

int lcd_linkUIWithTransactionMessageId | ( | IN BYTE | MessageId,
|  | IN char * | screenName,
|  | IN int | screenNameLen
| ) |  |

Link UI with Transaction Message ID

Link an existing Customer UI ID with a specified transaction message ID. During transaction, the linked System UI will be replaced by the linked Customer UI

Parameters

  MessageId | Transaction Message ID: Refer to Doc “EMV Display Message ID Assignment” Selection by Customer
  screenName | Name of the screen (No longer than 32 bytes including the NULL character)
  screenNameLen | Length of screenName

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_loadScreenInfo()

int lcd_loadScreenInfo | ( |  | ) |

Load Screen Info

Load all current screen information from RAM to flash

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_queryObjectbyID()

int lcd_queryObjectbyID | ( | IN int | objectID,
|  | OUT int * | objectNumbers,
|  | OUT IDTScreenInfo * | screenInfo
| ) |  |

Queery Object by ID

Check if the given object exists or not. If exists, return all screen names which contains the object of the given object ID

Parameters

  objectID | ID of the checked object
  objectNumbers | Number of the checked object
  screenInfo | screen names containing the item

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_queryObjectbyName()

int lcd_queryObjectbyName | ( | IN char * | objectName,
|  | IN int | objectNameLen,
|  | IN_OUT int * | objectNumbers,
|  | OUT IDTScreenInfo * | screenInfo
| ) |  |

Queery Object by Name

Check if the given object exists or not. If exists, return all screen names which contains the object of the given object name

Parameters

  objectName | Name of the checked object
  objectNameLen | Length of objectName
  objectNumbers | Number of the checked object
  screenInfo | Array of all the screen names that contain the object

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_queryScreenbyID()

int lcd_queryScreenbyID | ( | IN int | screenID,
|  | OUT int * | result,
|  | OUT int * | screenName,
|  | IN_OUT int * | screenNameLen
| ) |  |

Queery Screen by ID

Check if the given screen exists or not

Parameters

  screenID | ID of the checked screen
  result | the checking result
  screenName | Name of the checked screen
  screenNameLen | Length of screenName
  ip | Optional: IP address to execute command on (for IP connected devices)

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_queryScreenbyName()

int lcd_queryScreenbyName | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | OUT int * | result
| ) |  |

Queery Screen by Name

Check if the given screen exists or not

Parameters

  screenName | Name of the checked screen
  screenNameLen | Length of screenName
  result | the checking result

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_registerCallBk()

void lcd_registerCallBk | ( | pLCD_callBack | pLCDf | ) |

To register the lcd callback function to get the LCDItem. (Pass NULL to disable the callback.)

## ◆ lcd_removeItem()

int lcd_removeItem | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | IN char * | objectName,
|  | IN int | objectNameLen
| ) |  |

Removed Item

Removes a component.

Parameters

  screenName | Screen name where to remove the target from.
  screenNameLen | Length of screenName.
  objectName | Identifier of the component
  objectNameLen | Length of objectName.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_resetInitialState()

int lcd_resetInitialState | ( |  | ) |

Reset to Initial State. This command places the reader UI into the idle state and displays the appropriate idle display.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_savePrompt()

int lcd_savePrompt | ( | int | promptNumber,
|  | char * | prompt,
|  | int | promptLen
| ) |  |

Save Prompt

Saves a message prompt to L80 or L100 memory.

Parameters

  promptNumber | Prompt number (0-9)
  prompt | Prompt string (up to 20 characters)
  promptLen | length of prompt

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ lcd_setBackgroundImage()

int lcd_setBackgroundImage | ( | IN char * | file,
|  | IN int | fileLen,
|  | IN int | enable
| ) |  |

Set Background Image You must send images to the reader?�驴?�s memory and send a Start Custom Mode command to the reader before it will respond to Image commands. Image files must be in .bmp or .png format.

Parameters

  file | Complete path and file name of the file you want to use. Example "file.png" will put in root directory, while "ss/file.png" will put in ss directory (which must exist)
  fileLen | Length of files
  enable | TRUE = Use Background Image, FALSE = Use Background Color

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_setBacklight()

int lcd_setBacklight | ( | IN BYTE | isBacklightOn,
|  | IN BYTE | backlightVal
| ) |  |

Set Backlight

Set backlight percentage. If the percent > 100, it will be rejected. If 0 < percent < 10, backlight percent will be set to 10.

Parameters

  isBacklightOn | 0: backlight off 1: backlight on
  backlightVal | Backlight percent value to be sat

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_setDisplayImage()

int lcd_setDisplayImage | ( | IN char * | file,
|  | IN int | fileLen,
|  | IN int | posX,
|  | IN int | posY,
|  | IN int | posMode,
|  | IN int | touchEnable,
|  | IN int | clearScreen
| ) |  |

Set Display Image You must send images to the reader's memory and send a Start Custom Mode command to the reader before it will respond to Image commands. Image files must be in .bmp or .png format.

Parameters

  file | Complete path and file name of the file you want to use. Example "file.png" will put in root directory, while "ss/file.png" will put in ss directory (which must exist)
  fileLen | Length of files
  posX | X coordinate in pixels, Range 0-271
  posY | Y coordinate in pixels, Range 0-479
  posMode | Position Mode 0 = Center on Line Y 1 = Display at (X, Y) 2 - Center on screen
  touchEnable | TRUE = Image is touch sensitive
  clearScreen | TRUE = Clear screen

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_setForeBackColor()

int lcd_setForeBackColor | ( | IN BYTE * | foreRGB,
|  | IN int | foreRGBLen,
|  | IN BYTE * | backRGB,
|  | IN int | backRGBLen
| ) |  |

Set Foreground and Background Color This command sets the foreground and background colors of the LCD.

Parameters

  foreRGB | Foreground RGB. 000000 = black, FF0000 = red, 00FF00 = green, 0000FF = blue, FFFFFF = white
  Length | of foreRGB. Must be 3.
  backRGB | Background RGB. 000000 = black, FF0000 = red, 00FF00 = green, 0000FF = blue, FFFFFF = white
  Length | of backRGB. Must be 3.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_showScreen()

int lcd_showScreen | ( | IN char * | screenName,
|  | IN int | screenNameLen
| ) |  |

Show Screen

Displays and makes active a previously created screen.

Parameters

  screenName | Screen to display. The screen name is defined with lcd_createScreen.
  screenNameLen | Length of screenName.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_startSlideShow()

int lcd_startSlideShow | ( | IN char * | files,
|  | IN int | filesLen,
|  | IN int | posX,
|  | IN int | posY,
|  | IN int | posMode,
|  | IN int | touchEnable,
|  | IN int | recursion,
|  | IN int | touchTerminate,
|  | IN int | delay,
|  | IN int | loops,
|  | IN int | clearScreen
| ) |  |

Start slide show You must send images to the reader's memory and send a Start Custom Mode command to the reader before it will respond to this commands. Image files must be in .bmp or .png format.

Parameters

  files | Complete paths and file names of the files you want to use, separated by commas. If a directory is specified, all files in the dirctory are displayed
  filesLen | Length of files
  posX | X coordinate in pixels, Range 0-271
  posY | Y coordinate in pixels, Range 0-479
  posMode | Position Mode 0 = Center on Line Y 1 = Display at (X, Y) 2 - Center on screen
  touchEnable | TRUE = Image is touch sensitive
  recursion | TRUE = Recursively follow directorys in list
  touchTerminate | TRUE = Terminate slideshow on touch (if touch enabled)
  delay | Number of seconds between image displays
  loops | Number of display loops. A zero indicates continuous display
  clearScreen | TRUE = Clear screen

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_storeScreenInfo()

int lcd_storeScreenInfo | ( |  | ) |

Store Screen Info

Store all current screen information from RAM to flash

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_updateColor()

int lcd_updateColor | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | IN char * | objectName,
|  | IN int | objectNameLen,
|  | IN BYTE * | color,
|  | IN int | colorLen
| ) |  |

Update Color

Updates the component color, or updates the LED colors if specifying LCD component

Parameters

  screenName | Screen name that will be the target of update color
  screenNameLen | Length of screenName.
  objectName | Identifier of the component
  objectNameLen | Length of objectName.
  color | Non LCD Widget: Four bytes for color, example, Blue = 0xFF000000, Black = 0x00000000 Byte 0 = B Byte 1 = G Byte 2 = R Byte 3 = Reserved LCD Widget: Four bytes for LED color, byte 0 = LED 0, byte 1 = LED 1, byte 2 = LED2, byte 3 = LED 3 Value 0 = LED OFF Value 1 = LED Green Value 2 = LED Yellow Value 3 = LED Red
  colorLen | Length of color.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_updateLabel()

int lcd_updateLabel | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | IN char * | objectName,
|  | IN int | objectNameLen,
|  | IN char * | label,
|  | IN int | labelLen
| ) |  |

Update Label

Updates the component label.

Parameters

  screenName | Screen name that will be the target of update label
  screenNameLen | Length of screenName.
  objectName | Identifier of the component
  objectNameLen | Length of objectName.
  label | Label to show on the component
  labelLen | Length of label.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ lcd_updatePosition()

int lcd_updatePosition | ( | IN char * | screenName,
|  | IN int | screenNameLen,
|  | IN char * | objectName,
|  | IN int | objectNameLen,
|  | IN BYTE | alignment,
|  | IN int | new_xCord,
|  | IN int | new_yCord
| ) |  |

Update Position

Updates the component position.

Parameters

  screenName | Screen Name that will be the target of update position
  screenNameLen | Length of screenName.
  objectName | Identifier of the component
  objectNameLen | Length of objectName.
  alignment | Alignment for the target 0 = Display object at the horizon center of specified y, while x ignored 1 = Display object at specified x andy 2 = Display object at center of screen, x, y are both ignored 3 = Display object at left of the screen of specified y, while x ignored 4 = Display object at right of the screen of specified y, while x ignored
  new_xCord | x-coordinate for Text, range 0-271
  new_yCord | y-coordinate for Text, range 0-479

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ loyalty_cancelTransaction()

int loyalty_cancelTransaction | ( |  | ) |

Cancel Loyalty Transaction Only for VP6800

Cancels the currently executing transaction.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ loyalty_cancelTransactionSilent()

int loyalty_cancelTransactionSilent | ( | int | enable | ) |

Cancel Loyalty Transaction Silent Only for VP6800

Cancel transaction with or without showing the LCD message

Parameters

  enable | 0: With LCD message 1: Without LCD message

Returns
  success or error code. Values can be parsed with device_getIDGStatusCodeString

## ◆ loyalty_registerCallBk()

void loyalty_registerCallBk | ( | pEMV_callBack | pEMVf | ) |

To register the loyalty callback function to get the EMV processing response. (Pass NULL to disable the callback.) Only for VP6800

## ◆ loyalty_startTransaction()

int loyalty_startTransaction | ( | IN double | amount,
|  | IN double | amtOther,
|  | IN int | type,
|  | IN const int | _timeout,
|  | IN BYTE * | tags,
|  | IN int | tagsLen,
|  | IN const int | cardType,
|  | IN const int | iccReadType
| ) |  |

Start Loyalty Transaction Request Only for VP6800

Authorizes the transaction for an MSR/ICC card

The tags will be returned in the callback routine.

Parameters

  amount | Transaction amount value (tag value 9F02) SEE IMPORTANT NOTE BELOW
  amtOther | Other amount value, if any (tag value 9F03) SEE IMPORTANT NOTE BELOW
  type | Transaction type (tag value 9C).
  timeout | Timeout value in seconds.
  tags | Any other tags to be included in the request. Passed as TLV. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100. If tags 9F02 (amount), 9F03 (other amount), or 9C (transaction type) are included, they will take priority over these values supplied as individual parameters to this method.
  tagsLen | The length of tags data buffer.

>>>>>IMPORTANT: parameters for amount and amtOther MUST BE PASSED AS A DOUBLE VALUE WITH DECIMAL POINT. Example, do not pass 1, but instead pass 1.0 or 1.00. Otherwise, results will be unpredictable

Parameters

  cardType | Set available card to accept. 0 = MSR only. 1 = MSR and ICC.
  iccReadType | In case of ICC reading, this is how to behave. 0 = Same as device_startTransaction 1 = When reading ICC, read DF4F(JIS2EquivalentData) in ReadRecord. If the user swipes an IC card, the reader will ask for using ICC 3 = When reading ICC, read DF4F(JIS2EquivalentData) in ReadRecord. If the user swipes an IC card, the reader will not ask for using ICC and output MSR data directly

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString() Note: if auto poll is on, it will return the error IDG_P2_STATUS_CODE_COMMAND_NOT_ALLOWED

NOTE ON APPLEPAY VAS: To enable ApplePay VAS, first a merchant record must be defined in one of the six available index positions (1-6) using device_setMerchantRecord, then container tag FFEE06 must be sent as part of the additional tags parameter of device_startTransaction. Tag FFEE06 must contain tag 9F26 and 9F22, and can optionanally contain tags 9F2B and DF01. Example FFEE06189F220201009F2604000000009F2B050100000000DF010101 9F22 = two bytes = ApplePay Terminal Applicaiton Version Number. Hard defined as 0100 for now. (required) 9F26 = four bytes = ApplePay Terminal Capabilities Information (required)

- Byte 1 = RFU
- Byte 2 = Terminal Type
- - Bit 8 = VAS Support (1=on, 0 = off)
- - Bit 7 = Touch ID Required (1=on, 0 = off)
- - Bit 6 = RFU
- - Bit 5 = RFU
- - Bit 1, 2, 3, 4
- - - 0 = Payment Terminal
- - - 1 = Transit Terminal
- - - 2 = Access Terminal
- - - 3 = Wireless Handoff Terminal
- - - 4 = App Handoff Terminal
- - - 15 = Other Terminal
- Byte 3 = RFU
- Byte 4 = Terminal Mode
- - 0 = ApplePay VAS OR ApplePay
- - 1 = ApplePay VAS AND ApplePay
- - 2 = ApplePay VAS ONLY
- - 3 = ApplePay ONLY 9F2B = 5 bytes = ApplePay VAS Filter. Each byte filters for that specific merchant index (optional) DF01 = 1 byte = ApplePay VAS Protocol. (optional)
- - Bit 1 : 1 = URL VAS, 0 = Full VAS
- - Bit 2 : 1 = VAS Beeps, 0 = No VAS Beeps
- - Bit 3 : 1 = Silent Comm Error, 2 = EMEA Comm Error
- - Bit 4-8 : RFU

## ◆ msr_cancelMSRSwipe()

int msr_cancelMSRSwipe | ( |  | ) |

Disable MSR Swipe Cancels MSR swipe request.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ msr_captureMode()

int msr_captureMode | ( | int | isBufferMode,
|  | int | withNotification
| ) |  |

Set MSR Capture Mode.

For Non-SRED Augusta Only

Switch between Auto mode and Buffer mode. Auto mode only available on KB interface

Parameters

  isBufferMode | 1: Enter into Buffer mode. 0: Enter into Auto mode. KB mode only. Swipes automatically captured and sent to keyboard buffer
  withNotification | 1: with notification when swiped MSR data. 0: without notification when swiped MSR data.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ msr_clearMSRData()

int msr_clearMSRData | ( |  | ) |

Clear MSR Data Clears the MSR Data buffer

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ msr_disable()

int msr_disable | ( |  | ) |

Disable MSR Disable MSR functions.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ msr_flushTrackData()

int msr_flushTrackData | ( |  | ) |

Flush Track Data Clears any track data being retained in memory by future PIN Block request.

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ msr_getClearPANID()

int msr_getClearPANID | ( | BYTE * | value | ) |

Get Clear PAN ID.

Returns the number of digits that begin the PAN that will be in the clear

Parameters

  value | 4901 <Setting value>="">. setting Value: Number of digits in clear. Values are char '0' - '6'

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ msr_getExpirationMask()

int msr_getExpirationMask | ( | BYTE * | value | ) |

Get MSR expiration date mask.

Parameters

  value | 5001 <Setting value>="">. setting Value: '0' = masked, '1' = not-masked

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ msr_getFunctionStatus()

int msr_getFunctionStatus | ( | int * | enable,
|  | int * | isBufferMode,
|  | int * | withNotification
| ) |  |

Get MSR Function Status.

Gets the MSR function status

Parameters

  enable | 1 = MSR enabled, 0 = MSR disabled
  isBufferMode | 1 = buffer mode, 0 = auto mode
  withNotification | 1 = with notification, 0 = without notification

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ msr_getKeyFormatForICCDUKPT()

int msr_getKeyFormatForICCDUKPT | ( | OUT BYTE * | format | ) |

Get Key Format For DUKPT

Specifies how data will be encrypted with Data Key or PIN key (if DUKPT key loaded). This applies to both MSR and ICC

Parameters

  format | Response returned from method: 'TDES': Encrypted card data with TDES if DUKPT Key had been loaded. (default) 'AES': Encrypted card data with AES if DUKPT Key had been loaded. 'NONE': No Encryption.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ msr_getKeyTypeForICCDUKPT()

int msr_getKeyTypeForICCDUKPT | ( | OUT BYTE * | type | ) |

Get Key Type for DUKPT

Specifies the key type used for ICC DUKPT encryption. This applies to both MSR and ICC.

Parameters

  type | Response returned from method: 'DATA': Encrypted card data with Data Key DUKPT Key had been loaded. (default) 'PIN': Encrypted card data with PIN Key if DUKPT Key had been loaded.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ msr_getMSRData()

int msr_getMSRData | ( | OUT BYTE * | reData,
|  | IN_OUT int * | reLen
| ) |  |

Get MSR Data Reads the MSR Data buffer

Parameters

  reData | Card data
  reLen | Card data length

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ msr_getSwipeForcedEncryptionOption()

int msr_getSwipeForcedEncryptionOption | ( | BYTE * | option | ) |

Get MSR Swipe Forced Encryption Option.

Parameters

  option | 8401 <Setting value>="">. Setting Value Byte using lower four bits as flags. 0 = Force Encryption Off, 1 = Force Encryption On bit0 = Track 1 bit1 = Track 2 bit2 = Track 3 bit4 = Track 3 Card Option 0

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ msr_getSwipeMaskOption()

int msr_getSwipeMaskOption | ( | BYTE * | option | ) |

Get MSR Swipe Mask Option.

Gets the swipe mask/clear data sending option

Parameters

  option | 8601 <Setting value>="">. Setting Value Byte using lower three bits as flags. 0 = Mask Option Off, 1 = Mask Option On bit0 = Track 1 bit1 = Track 2 bit2 = Track 3 Example: Response 0x03 = Track1/Track2 Masked Option ON, Track3 Masked Option Off

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ msr_registerCallBk()

void msr_registerCallBk | ( | pMSR_callBack | pMSRf | ) |

To register the msr callback function to get the MSR card data. (Pass NULL to disable the callback.)

## ◆ msr_registerCallBkp()

void msr_registerCallBkp | ( | pMSR_callBackp | pMSRf | ) |

To register the msr callback function to get the MSR card data pointer. (Pass NULL to disable the callback.)

## ◆ msr_setClearPANID()

int msr_setClearPANID | ( | BYTE | val | ) |

Set Clear PAN ID.

Parameters

  val | Set Clear PAN ID to value: Number of digits to show in clear. Range 0-6.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ msr_setExpirationMask()

int msr_setExpirationMask | ( | int | mask | ) |

Set Expiration Masking

Sets the flag to mask the expiration date

Parameters

  mask | TRUE = mask expiration

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ msr_setKeyFormatForICCDUKPT()

int msr_setKeyFormatForICCDUKPT | ( | IN BYTE | format | ) |

Set Key Format for DUKPT

Sets how data will be encrypted, with either TDES or AES (if DUKPT key loaded) This applies to both MSR and ICC

Parameters

  format | encryption Encryption Type 00: Encrypt with TDES 01: Encrypt with AES

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ msr_setKeyTypeForICCDUKPT()

int msr_setKeyTypeForICCDUKPT | ( | IN BYTE | type | ) |

Set Key Type for DUKPT Key

Sets which key the data will be encrypted with, with either Data Key or PIN key (if DUKPT key loaded) This applies to both MSR and ICC

Parameters

  type | Encryption Type 00: Encrypt with Data Key 01: Encrypt with PIN Key

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ msr_setSwipeForcedEncryptionOption()

int msr_setSwipeForcedEncryptionOption | ( | int | track1,
|  | int | track2,
|  | int | track3,
|  | int | track3card0
| ) |  |

Set MSR Swipe Forced Encryption Option.

Parameters

  tarck1 | Set track1 encryption to true or false.
  tarck2 | Set track2 encryption to true or false.
  tarck3 | Set track3 encryption to true or false.
  tarck3card0 | Set track3 card0 encryption to true or false.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ msr_setSwipeMaskOption()

int msr_setSwipeMaskOption | ( | int | track1,
|  | int | track2,
|  | int | track3
| ) |  |

Set MSR Swipe Mask Option.

Sets the swipe mask/clear data sending option

Parameters

  tarck1 | Set track1 mask to true or false.
  tarck2 | Set track2 mask to true or false.
  tarck3 | Set track3 mask to true or false.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ msr_startMSRSwipe()

int msr_startMSRSwipe | ( | IN int | _timeout | ) |

Start MSR Swipe Enables MSR, waiting for swipe to occur. Allows track selection. Returns IDTMSRData instance to MSR_callBack()

Parameters

  timeout | Swipe Timeout Value

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString() Note: if auto poll mode is on, it will return command not allowed error

## ◆ parseMSRData()

void parseMSRData | ( | IN BYTE * | resData,
|  | IN int | resLen,
|  | IN_OUT IDTMSRData * | cardData
| ) |  |

Parser the MSR data from the buffer into IDTMSTData structure

Parameters

  resData | MSR card data buffer
  resLen | the length of resData
  cardData | the parser result with IDTMSTData structure

## ◆ parsePINBlockData()

void parsePINBlockData | ( | IN BYTE * | resData,
|  | IN int | resLen,
|  | IN_OUT IDTPINData * | cardData
| ) |  |

Parse the PIN block data from the buffer into IDTPINData structure

Parameters

  resData | PIN card data buffer
  resLen | the length of resData
  cardData | the parser result with IDTPINData structure

## ◆ parsePINData()

void parsePINData | ( | IN BYTE * | resData,
|  | IN int | resLen,
|  | IN_OUT IDTPINData * | cardData
| ) |  |

Parse the PIN data from the buffer into IDTPINData structure

Parameters

  resData | PIN card data buffer
  resLen | the length of resData
  cardData | the parser result with IDTPINData structure

## ◆ pin_cancelPINEntry()

int pin_cancelPINEntry | ( |  | ) |

Cancel PIN Entry

Cancels PIN entry request

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ pin_capturePin()

int pin_capturePin | ( | IN int | timeout,
|  | IN int | type,
|  | IN char * | PAN,
|  | IN int | PANLen,
|  | IN int | minPIN,
|  | IN int | maxPIN,
|  | IN char * | message,
|  | IN int | messageLen
| ) |  |

Capture PIN

Parameters

  timeout | Timeout, in seconds. Value of 0 will use system timeout, if any
  type | PAN and Key Type 00h = MKSK to encrypt PIN, Internal PAN (from MSR) 01h = DUKPT to encrypt PIN, Internal PAN (from MSR) 10h = MKSK to encrypt PIN, External Plaintext PAN 11h = DUKPT to encrypt PIN, External Plaintext PAN 20h = MKSK to encrypt PIN, External Ciphertext PAN 21h = DUKPT to encrypt PIN, External Ciphertext PAN
  PAN | Personal Account Number (if internal, value is 0)
  PANLen | Length of PAN
  minPIN | Minimum PIN Length
  maxPIN | Maximum PIN Length
  message | LCD Message
  messageLen | Length of message

Returns
  RETURN_CODE: Values can be parsed with errorCode.getErrorString()

## ◆ pin_capturePinExt()

int pin_capturePinExt | ( | IN int | type,
|  | IN char * | PAN,
|  | IN int | PANLen,
|  | IN int | minPIN,
|  | IN int | maxPIN,
|  | IN char * | message,
|  | IN int | messageLen,
|  | IN char * | verify,
|  | IN int | verifyLen
| ) |  |

- Capture PIN Ext

Parameters

  type | PAN and Key Type 00h: MKSK to encrypt PIN, Internal PAN (from MSR or Manual PAN Entry or Contactless EMV Transaction) 01h: DUKPT to encrypt PIN, Internal PAN (from MSR or Manual PAN Entry or Contactless EMV Transaction) 10h: MKSK to encrypt PIN, External Plaintext PAN 11h: DUKPT to encrypt PIN, External Plaintext PAN 20h: MKSK to encrypt PIN, External Ciphertext PAN (for PIN pad only) 21h: DUKPT to encrypt PIN, External Ciphertext PAN (for PIN pad only) 80h: MKSK to encrypt PIN, Internal PAN, Verify PIN (from MSR or Manual PAN Entry or Contactless EMV Transaction) 81h: DUKPT to encrypt PIN, Internal PAN, Verify PIN (from MSR or Manual PAN Entry or Contactless EMV Transaction) 90h: MKSK to encrypt PIN, External Plaintext PAN, Verify PIN 91h: DUKPT to encrypt PIN, External Plaintext PAN, Verify PIN
  PAN | Personal Account Number (if internal, value is 0)
  PANLen | Length of PAN
  minPIN | Minimum PIN Length
  maxPIN | Maximum PIN Length
  message | LCD Message Up to 2 lines of text, each line 1-16, separated by 0x00
  messageLen | Length of 1st scenario LCD message, valid in 00h~21h (0~33).If no LCD message input, length is 00h, and display default msg “PLEASE ENTER PIN”
  verify | LCD Message Up to 2 lines of text, each line 1-16, separated by 0x00
  verifyLen | Length of 2nd Scenario LCD message.valid in 00h~21h (0~33).This field is present only when PAN and Key Type has Verify PIN.If no LCD message input, length is 00h, and display default msg “ ENTER PIN AGAIN”

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ pin_getEncryptedOnlinePIN()

int pin_getEncryptedOnlinePIN | ( | IN int | keyType,
|  | IN int | timeout
| ) |  |

Get Encrypted DUKPT PIN

Requests PIN Entry for online authorization. PIN block and KSN returned in callback function DeviceState.TransactionData with cardData.pin_pinblock. A swipe must be captured first before this function can execute

Parameters

  keyType | PIN block key type. Valid values 0, 3 for TDES, 4 for AES
  timeout | PIN entry timout

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ pin_getEncryptedPIN()

int pin_getEncryptedPIN | ( | int | keyType,
|  | char * | PAN,
|  | int | PANLen,
|  | char * | message,
|  | int | messageLen,
|  | int | timeout
| ) |  |

Get Encrypted PIN

Requests PIN Entry

Parameters

  keyType | 0x00- MKSK-TDES: External Plaintext PAN 0x01- DUKPT-TDES: External Plaintext PAN 0x10 MKSK-TDES: External Ciphertext PAN 0x11 DUKPT-TDES: External Ciphertext PAN
  PAN | Account Number
  PANLen | length of PAN
  message | Message to display
  messageLen | length of message
  timeout | PIN entry timeout

Returns
  RETURN_CODE: Values can be parsed with errorCode.getErrorString()

## ◆ pin_getFunctionKey()

int pin_getFunctionKey | ( | int | timeout | ) |

Get Function Key

Captures a function key

             - Backspace = B
             - Cancel = C
             - Enter = E
             - * = *
             - # = #
             - Help = ?
             - Function Key 1 = F1
             - Function Key 2 = F2
             - Function Key 3 = F3

             @param timeout Timeout, in seconds

Returns
  RETURN_CODE: Values can be parsed with errorCode.getErrorString()

## ◆ pin_getPAN()

int pin_getPAN | ( | IN int | getCSC,
|  | IN int | timeout
| ) |  |

Get PAN

Requests PAN Entry on pinpad

Parameters

  getCSC | Include Customer Service Code (also known as CVV, CVC)
  timeout | PAN entry timout

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ pin_getPanEntry()

int pin_getPanEntry | ( | IN int | csc,
|  | IN int | expDate,
|  | IN int | ADR,
|  | IN int | ZIP,
|  | IN int | mod10CK,
|  | IN int | timeout,
|  | IN int | encPANOnly
| ) |  |

Get Pan

prompt the user to manually enter a card PAN and Expiry Date (and optionally CSC) from the keypad and return it to the POS.

Parameters

  csc | Request CSS
  expDate | Request Expiration Date
  ADR | Request Address
  ZIP | Request Zip
  mod10CK | Validate entered PAN passes MOD-10 checking before accepting
  timeout | Number of seconds that the reader waits for the data entry session to complete, stored as a big-endian number. 0 = no timeout
  encPANOnly | Output only encrypted PAN

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ pin_getPIN()

int pin_getPIN | ( | IN int | mode,
|  | IN int | PANSource,
|  | IN char * | iccPAN,
|  | IN int | iccPANLen,
|  | IN int | startTimeout,
|  | IN int | entryTimeout,
|  | IN char * | language,
|  | IN int | languageLen
| ) |  |

Get Encrypted PIN

Requests PIN Entry

Parameters

  mode | 0x00- Cancel: Cancels PIN entry = also can execute pin_cancelPINEntry(). All other parameters for this method will be ignored 0x01- Online PIN DUKPT 0x02- Online PIN MKSK 0x03- Offline PIN (No need to define PAN Source or ICC PAN)
  PANSource | 0x00- ICC: PAN Captured from ICC and must be provided in iccPAN parameter 0x01- MSR: PAN Captured from MSR swipe and will be inserted by Spectrum Pro. No need to provide iccPAN parameter.
  iccPAN | PAN captured from ICC. When PAN captured from MSR, this parameter will be ignored
  iccPANLen | the length of iccPAN
  startTimeout | The amount of time allowed to start PIN entry before timeout
  entryTimeout | The amount of time to enter the PIN after first digit selected before timeout
  language | Valid values "EN" for English, "ES" for Spanish, "ZH" for Chinese, "FR" for French
  languageLen | the length of language

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ pin_inputFromPrompt()

int pin_inputFromPrompt | ( | BYTE | mask,
|  | BYTE | preClearText,
|  | BYTE | postClearText,
|  | int | minLen,
|  | int | maxLen,
|  | char * | lang,
|  | BYTE | promptID,
|  | char * | defaultResponse,
|  | int | defaultResponseLen,
|  | int | timeout
| ) |  |

Get PIN Input from Prompt Results returned to PIN Callback. If successful function key capture, data is returned as IDTPINData.keyString.

         @param mask 0 = no masking, 1 = Display "*" for numeric key according to Pre-Cleartext and Post-Cleartext display
       @param preClearText   Range 0-6 Characters to mask at start of text if masking is on;
       @param postClearText  Range 0-6 Characters to mask at end of text if masking is on;
       @param minLen  Minimum number of digits required to input
       @param maxLen  Maximum number of digits allowed to be input
       @param lang  Valid values;
       "EN" is English display message
       "JP" is Japanese display message
       "ES" is Spanish display message
       "FR" is French display message
       "ZH" is Chinese display message
       "PT" is Portuguese display message
       @param promptID  Valid values:
       0x00: Enter Phone Number
       0x01: Enter IP Address
       0x02: Enter Subnet Mask
       0x03: Enter Default Gateway
       0x04: Enter Odometer Reading/Mileage
       0x05: Enter Employee ID
       0x06: Enter Password for Default Factory Setting
       0x07: Enter Email Address (Full keyboard)
       @param defaultResponse  Default String on input field
       @param defaultResponseLen  Length of defaultResponse
       @param timeout  Timeout, in seconds

Returns
  RETURN_CODE: Values can be parsed with errorCode.getErrorString()g

## ◆ pin_promptCreditDebit()

int pin_promptCreditDebit | ( | IN char * | currencySymbol,
|  | IN int | currencySymbolLen,
|  | IN char * | displayAmount,
|  | IN int | displayAmountLen,
|  | IN int | timeout,
|  | OUT BYTE * | retData,
|  | IN_OUT int * | retDataLen
| ) |  |

Prompt for Credit or Debit

Requests prompt for Credit or Debit. Response returned in callback function as DeviceState.MenuItem with data MENU_SELECTION_CREDIT = 0, MENU_SELECTION_DEBIT = 1

Parameters

  currencySymbol | Allowed values are $ (0x24), ?�驴??(0xA5), ?�驴??(0xA3), ?�驴??(0xA4), or NULL
  currencySymbolLen | length of currencySymbol
  displayAmount | Amount to display (can be NULL)
  displayAmountLen | length of displayAmount
  timeout | Menu entry timout. Valid values 2-20 seconds
  retData | If successful, the return code is zero and the data is 1 byte (0: Credit 1: Debit). If the return code is not zero, it may be a four-byte Extended Status Code
  currencySymbolLen | length of currencySymbol

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ pin_promptForAmount()

int pin_promptForAmount | ( | IN int | timeout,
|  | IN int | minLen,
|  | IN int | maxLen,
|  | IN char * | message,
|  | IN int | messageLen,
|  | BYTE * | signature,
|  | IN int | signatureLen
| ) |  |

Capture Amount

Parameters

  timeout | Timeout, in seconds. Value of 0 will use system timeout, if any
  minLen | Minimum input Length
  maxLen | Maximum input Length
  message | LCD Message
  messageLen | Length of message
  signature | Display message signed by Numeric Private Key using RSAPSS algorithm: Calculate 32 bytes Hash for Display Flag><Key max="" length>="">< Key Min Length><Plaintext display="" message>=""> Using RSAPSS algorithm calculate the Hash to be 256 bytes Raw Data Using Numeric Private Key to sign the Raw Data to be 256 bytes signature
  signatureLen | Length of signature

Returns
  RETURN_CODE: Values can be parsed with errorCode.getErrorString()

## ◆ pin_promptForAmountInput()

int pin_promptForAmountInput | ( | int | messageID,
|  | int | languageID,
|  | int | minLen,
|  | int | maxLen,
|  | int | timeout
| ) |  |

Prompt for Amount Input

Prompts for amount input using the secure message according to the following table

Msg Id | English Prompt | Portuguese Prompt | Spanish Prompt | French Prompt
--- | --- | --- | --- | ---
1 | ENTER | ENTER | INGRESE | ENTREZ
2 | REENTER | RE-INTRODUZIR | REINGRESE | RE-ENTREZ
3 | ENTER YOUR | INTRODUZIR O SEU | INGRESE SU | ENTREZ VOTRE
4 | REENTER YOUR | RE-INTRODUZIR O SEU | REINGRESE SU | RE-ENTREZ VOTRE
5 | PLEASE ENTER | POR FAVOR DIGITE | POR FAVOR INGRESE | SVP ENTREZ
6 | PLEASE REENTER | POR FAVO REENTRAR | POR FAVO REINGRESE | SVP RE-ENTREZ
7 | PO NUMBER | N?�MERO PO | NUMERO PO | No COMMANDE
8 | DRIVER ID | LICEN?�A | LICENCIA | ID CONDUCTEUR
9 | ODOMETER | ODOMETER | ODOMETRO | ODOMETRE
10 | ID NUMBER | N?�MERO ID | NUMERO ID | No IDENT
11 | EQUIP CODE | EQUIP CODE | CODIGO EQUIP | CODE EQUIPEMENT
12 | DRIVERS ID | DRIVER ID | ID CONDUCTOR | ID CONDUCTEUR
13 | JOB NUMBER | EMP N?�MERO | NUMERO EMP | No TRAVAIL
14 | WORK ORDER | TRABALHO ORDEM | ORDEN TRABAJO | FICHE TRAVAIL
15 | VEHICLE ID | ID VE?�CULO | ID VEHICULO | ID VEHICULE
16 | ENTER DRIVER | ENTER DRIVER | INGRESE CONDUCTOR | ENTR CONDUCTEUR
17 | ENTER DEPT | ENTER DEPT | INGRESE DEPT | ENTR DEPARTEMNT
18 | ENTER PHONE | ADICIONAR PHONE | INGRESE TELEFONO | ENTR No TELEPH
19 | ENTER ROUTE | ROUTE ADD | INGRESE RUTA | ENTREZ ROUTE
20 | ENTER FLEET | ENTER FROTA | INGRESE FLOTA | ENTREZ PARC AUTO
21 | ENTER JOB ID | ENTER JOB ID | INGRESE ID TRABAJO | ENTR ID TRAVAIL
22 | ROUTE NUMBER | N?�MERO PATH | RUTA NUMERO | No ROUTE
23 | ENTER USER ID | ENTER USER ID | INGRESE ID USUARIO | ID UTILISATEUR
24 | FLEET NUMBER | N?�MERO DE FROTA | FLOTA NUMERO | No PARC AUTO
25 | ENTER PRODUCT | ADICIONAR PRODUTO | INGRESE PRODUCTO | ENTREZ PRODUIT
26 | DRIVER NUMBER | N?�MERO DRIVER | CONDUCTOR NUMERO | No CONDUCTEUR
27 | ENTER LICENSE | ENTER LICEN?�A | INGRESE LICENCIA | ENTREZ PERMIS
28 | ENTER FLEET NO | ENTER NRO FROTA | INGRESE NRO FLOTA | ENT No PARC AUTO
29 | ENTER CAR WASH | WASH ENTER | INGRESE LAVADO | ENTREZ LAVE-AUTO
30 | ENTER VEHICLE | ENTER VE?�CULO | INGRESE VEHICULO | ENTREZ VEHICULE
31 | ENTER TRAILER | TRAILER ENTER | INGRESE TRAILER | ENTREZ REMORQUE
32 | ENTER ODOMETER | ENTER ODOMETER | INGRESE ODOMETRO | ENTREZ ODOMETRE
33 | DRIVER LICENSE | CARTEIRA DE MOTORISTA | LICENCIA CONDUCTOR | PERMIS CONDUIRE
34 | ENTER CUSTOMER | ENTER CLIENTE | INGRESE CLIENTE | ENTREZ CLIENT
35 | VEHICLE NUMBER | N?�MERO DO VE?�CULO | VEHICULO NUMERO | No VEHICULE
36 | ENTER CUST DATA | ENTER CLIENTE INFO | INGRESE INFO CLIENTE | INFO CLIENT
37 | REENTER DRIVID | REENTRAR DRIVER ID | REINGRESE ID CHOFER | RE-ENTR ID COND
38 | ENTER USER DATA | ENTER INFO USU?�RIO | INGRESE INFO USUARIO | INFO UTILISATEUR
39 | ENTER CUST CODE | ENTER CODE. CLIENTE | INGRESE COD. CLIENTE | ENTR CODE CLIENT
40 | ENTER EMPLOYEE | ENTER FUNCION?�RIO | INGRESE EMPLEADO | ENTREZ EMPLOYE
41 | ENTER ID NUMBER | ENTER N?�MERO ID | INGRESE NUMERO ID | ENTREZ No ID
42 | ENTER DRIVER ID | ENTER ID DRIVER | INGRESE ID CONDUCTOR | No CONDUCTEUR
43 | ENTER FLEET PIN | ENTER PIN FROTA | INGRESE PIN DE FLOTA | NIP PARC AUTO
44 | ODOMETER NUMBER | N?�MERO ODOMETER | ODOMETRO NUMERO | No ODOMETRE
45 | ENTER DRIVER LIC | ENTER DRIVER LIC | INGRESE LIC CONDUCTOR | PERMIS CONDUIRE
46 | ENTER TRAILER NO | NRO TRAILER ENTER | INGRESE NRO TRAILER | ENT No REMORQUE
47 | REENTER VEHICLE | REENTRAR VE?�CULO | REINGRESE VEHICULO | RE-ENTR VEHICULE
48 | ENTER VEHICLE ID | ENTER VE?�CULO ID | INGRESE ID VEHICULO | ENTR ID VEHICULE
49 | ENTER BIRTH DATE | INSERIR DATA NAC | INGRESE FECHA NAC | ENT DT NAISSANCE
50 | ENTER DOB MMDDYY | ENTER FDN MMDDYY | INGRESE FDN MMDDAA | NAISSANCE MMJJAA
51 | ENTER FLEET DATA | ENTER FROTA INFO | INGRESE INFO DE FLOTA | INFO PARC AUTO
52 | ENTER REFERENCE | ENTER REFER?�NCIA | INGRESE REFERENCIA | ENTREZ REFERENCE
53 | ENTER AUTH NUMBR | ENTER N?�MERO AUT | INGRESE NUMERO AUT | No AUTORISATION
54 | ENTER HUB NUMBER | ENTER HUB NRO | INGRESE NRO HUB | ENTREZ No NOYAU
55 | ENTER HUBOMETER | MEDIDA PARA ENTRAR HUB | INGRESE MEDIDO DE HUB | COMPTEUR NOYAU
56 | ENTER TRAILER ID | TRAILER ENTER ID | INGRESE ID TRAILER | ENT ID REMORQUE
57 | ODOMETER READING | QUILOMETRAGEM | LECTURA ODOMETRO | LECTURE ODOMETRE
58 | REENTER ODOMETER | REENTRAR ODOMETER | REINGRESE ODOMETRO | RE-ENT ODOMETRE
59 | REENTER DRIV. ID | REENTRAR DRIVER ID | REINGRESE ID CHOFER | RE-ENT ID CONDUC
60 | ENTER CUSTOMER ID | ENTER CLIENTE ID | INGRESE ID CLIENTE | ENTREZ ID CLIENT
61 | ENTER CUST. ID | ENTER CLIENTE ID | INGRESE ID CLIENTE | ENTREZ ID CLIENT
62 | ENTER ROUTE NUM | ENTER NUM ROUTE | INGRESE NUM RUTA | ENT No ROUTE
63 | ENTER FLEET NUM | FROTA ENTER NUM | INGRESE NUM FLOTA | ENT No PARC AUTO
64 | FLEET PIN | FROTA PIN | PIN DE FLOTA | NIP PARC AUTO
65 | DRIVER # | DRIVER # | CONDUCTOR # | CONDUCTEUR
66 | ENTER DRIVER # | ENTER DRIVER # | INGRESE CONDUCTOR # | ENT # CONDUCTEUR
67 | VEHICLE # | VE?�CULO # | VEHICULO # | # VEHICULE
68 | ENTER VEHICLE # | ENTER VE?�CULO # | INGRESE VEHICULO # | ENT # VEHICULE
69 | JOB # | TRABALHO # | TRABAJO # | # TRAVAIL
70 | ENTER JOB # | ENTER JOB # | INGRESE TRABAJO # | ENTREZ # TRAVAIL
71 | DEPT NUMBER | N?�MERO DEPT | NUMERO DEPTO | No DEPARTEMENT
72 | DEPARTMENT # | DEPARTAMENTO # | DEPARTAMENTO # | DEPARTEMENT
73 | ENTER DEPT # | ENTER DEPT # | INGRESE DEPTO # | ENT# DEPARTEMENT
74 | LICENSE NUMBER | N?�MERO DE LICEN?�A | NUMERO LICENCIA | No PERMIS
75 | LICENSE # | LICEN?�A # | LICENCIA # | # PERMIS
76 | ENTER LICENSE # | ENTER LICEN?�A # | INGRESE LICENCIA # | ENTREZ # PERMIS
77 | DATA | INFO | INFO | INFO
78 | ENTER DATA | ENTER INFO | INGRESE INFO | ENTREZ INFO
79 | CUSTOMER DATA | CLIENTE INFO | INFO CLIENTE | INFO CLIENT
80 | ID # | ID # | ID # | # ID
81 | ENTER ID # | ENTER ID # | INGRESE ID # | ENTREZ # ID
82 | USER ID | USER ID | ID USUARIO | ID UTILISATEUR
83 | ROUTE # | ROUTE # | RUTA # | # ROUTE
84 | ENTER ROUTE # | ADD ROUTE # | INGRESE RUTA # | ENTREZ # ROUTE
85 | ENTER CARD NUM | ENTER N?�MERO DE CART?�O | INGRESE NUM TARJETA | ENTREZ NO CARTE
86 | EXP DATE(YYMM) | VALIDADE VAL (AAMM) | FECHA EXP (AAMM) | DATE EXPIR(AAMM)
87 | PHONE NUMBER | TELEFONE | NUMERO TELEFONO | NO TEL
88 | CVV START DATE | CVV DATA DE IN?�CIO | CVV FECHA INICIO | CVV DATE DE DEBUT
89 | ISSUE NUMBER | N?�MERO DE EMISS?�O | NUMERO DE EMISION | NO DEMISSION
90 | START DATE (MMYY) | DATA DE IN?�CIO (AAMM) | FECHA INICIO (AAMM) | DATE DE DEBUT-AAMM

         @param messageID  Message (1-90)
         @param languageID 0=English Prompt, 1=Portuguese Prompt, 2=Spanish Prompt, 3=French Prompt
         @param minLen  Minimum input length.  Cannot be less than 1
         @param maxLen Maximum input length.  Cannot be greater than 15
         @param timeout Timout value, in seconds

Returns
  RETURN_CODE: Values can be parsed with errorCode.getErrorString()

## ◆ pin_promptForKeyInput()

int pin_promptForKeyInput | ( | int | messageID,
|  | int | languageID,
|  | int | maskInput,
|  | int | minLen,
|  | int | maxLen,
|  | int | timeout
| ) |  |

Prompt for Key Input

Prompts for a numeric key using the secure message according to the following table

Msg Id | English Prompt | Portuguese Prompt | Spanish Prompt | French Prompt
--- | --- | --- | --- | ---
1 | ENTER | ENTER | INGRESE | ENTREZ
2 | REENTER | RE-INTRODUZIR | REINGRESE | RE-ENTREZ
3 | ENTER YOUR | INTRODUZIR O SEU | INGRESE SU | ENTREZ VOTRE
4 | REENTER YOUR | RE-INTRODUZIR O SEU | REINGRESE SU | RE-ENTREZ VOTRE
5 | PLEASE ENTER | POR FAVOR DIGITE | POR FAVOR INGRESE | SVP ENTREZ
6 | PLEASE REENTER | POR FAVO REENTRAR | POR FAVO REINGRESE | SVP RE-ENTREZ
7 | PO NUMBER | N?�MERO PO | NUMERO PO | No COMMANDE
8 | DRIVER ID | LICEN?�A | LICENCIA | ID CONDUCTEUR
9 | ODOMETER | ODOMETER | ODOMETRO | ODOMETRE
10 | ID NUMBER | N?�MERO ID | NUMERO ID | No IDENT
11 | EQUIP CODE | EQUIP CODE | CODIGO EQUIP | CODE EQUIPEMENT
12 | DRIVERS ID | DRIVER ID | ID CONDUCTOR | ID CONDUCTEUR
13 | JOB NUMBER | EMP N?�MERO | NUMERO EMP | No TRAVAIL
14 | WORK ORDER | TRABALHO ORDEM | ORDEN TRABAJO | FICHE TRAVAIL
15 | VEHICLE ID | ID VE?�CULO | ID VEHICULO | ID VEHICULE
16 | ENTER DRIVER | ENTER DRIVER | INGRESE CONDUCTOR | ENTR CONDUCTEUR
17 | ENTER DEPT | ENTER DEPT | INGRESE DEPT | ENTR DEPARTEMNT
18 | ENTER PHONE | ADICIONAR PHONE | INGRESE TELEFONO | ENTR No TELEPH
19 | ENTER ROUTE | ROUTE ADD | INGRESE RUTA | ENTREZ ROUTE
20 | ENTER FLEET | ENTER FROTA | INGRESE FLOTA | ENTREZ PARC AUTO
21 | ENTER JOB ID | ENTER JOB ID | INGRESE ID TRABAJO | ENTR ID TRAVAIL
22 | ROUTE NUMBER | N?�MERO PATH | RUTA NUMERO | No ROUTE
23 | ENTER USER ID | ENTER USER ID | INGRESE ID USUARIO | ID UTILISATEUR
24 | FLEET NUMBER | N?�MERO DE FROTA | FLOTA NUMERO | No PARC AUTO
25 | ENTER PRODUCT | ADICIONAR PRODUTO | INGRESE PRODUCTO | ENTREZ PRODUIT
26 | DRIVER NUMBER | N?�MERO DRIVER | CONDUCTOR NUMERO | No CONDUCTEUR
27 | ENTER LICENSE | ENTER LICEN?�A | INGRESE LICENCIA | ENTREZ PERMIS
28 | ENTER FLEET NO | ENTER NRO FROTA | INGRESE NRO FLOTA | ENT No PARC AUTO
29 | ENTER CAR WASH | WASH ENTER | INGRESE LAVADO | ENTREZ LAVE-AUTO
30 | ENTER VEHICLE | ENTER VE?�CULO | INGRESE VEHICULO | ENTREZ VEHICULE
31 | ENTER TRAILER | TRAILER ENTER | INGRESE TRAILER | ENTREZ REMORQUE
32 | ENTER ODOMETER | ENTER ODOMETER | INGRESE ODOMETRO | ENTREZ ODOMETRE
33 | DRIVER LICENSE | CARTEIRA DE MOTORISTA | LICENCIA CONDUCTOR | PERMIS CONDUIRE
34 | ENTER CUSTOMER | ENTER CLIENTE | INGRESE CLIENTE | ENTREZ CLIENT
35 | VEHICLE NUMBER | N?�MERO DO VE?�CULO | VEHICULO NUMERO | No VEHICULE
36 | ENTER CUST DATA | ENTER CLIENTE INFO | INGRESE INFO CLIENTE | INFO CLIENT
37 | REENTER DRIVID | REENTRAR DRIVER ID | REINGRESE ID CHOFER | RE-ENTR ID COND
38 | ENTER USER DATA | ENTER INFO USU?�RIO | INGRESE INFO USUARIO | INFO UTILISATEUR
39 | ENTER CUST CODE | ENTER CODE. CLIENTE | INGRESE COD. CLIENTE | ENTR CODE CLIENT
40 | ENTER EMPLOYEE | ENTER FUNCION?�RIO | INGRESE EMPLEADO | ENTREZ EMPLOYE
41 | ENTER ID NUMBER | ENTER N?�MERO ID | INGRESE NUMERO ID | ENTREZ No ID
42 | ENTER DRIVER ID | ENTER ID DRIVER | INGRESE ID CONDUCTOR | No CONDUCTEUR
43 | ENTER FLEET PIN | ENTER PIN FROTA | INGRESE PIN DE FLOTA | NIP PARC AUTO
44 | ODOMETER NUMBER | N?�MERO ODOMETER | ODOMETRO NUMERO | No ODOMETRE
45 | ENTER DRIVER LIC | ENTER DRIVER LIC | INGRESE LIC CONDUCTOR | PERMIS CONDUIRE
46 | ENTER TRAILER NO | NRO TRAILER ENTER | INGRESE NRO TRAILER | ENT No REMORQUE
47 | REENTER VEHICLE | REENTRAR VE?�CULO | REINGRESE VEHICULO | RE-ENTR VEHICULE
48 | ENTER VEHICLE ID | ENTER VE?�CULO ID | INGRESE ID VEHICULO | ENTR ID VEHICULE
49 | ENTER BIRTH DATE | INSERIR DATA NAC | INGRESE FECHA NAC | ENT DT NAISSANCE
50 | ENTER DOB MMDDYY | ENTER FDN MMDDYY | INGRESE FDN MMDDAA | NAISSANCE MMJJAA
51 | ENTER FLEET DATA | ENTER FROTA INFO | INGRESE INFO DE FLOTA | INFO PARC AUTO
52 | ENTER REFERENCE | ENTER REFER?�NCIA | INGRESE REFERENCIA | ENTREZ REFERENCE
53 | ENTER AUTH NUMBR | ENTER N?�MERO AUT | INGRESE NUMERO AUT | No AUTORISATION
54 | ENTER HUB NUMBER | ENTER HUB NRO | INGRESE NRO HUB | ENTREZ No NOYAU
55 | ENTER HUBOMETER | MEDIDA PARA ENTRAR HUB | INGRESE MEDIDO DE HUB | COMPTEUR NOYAU
56 | ENTER TRAILER ID | TRAILER ENTER ID | INGRESE ID TRAILER | ENT ID REMORQUE
57 | ODOMETER READING | QUILOMETRAGEM | LECTURA ODOMETRO | LECTURE ODOMETRE
58 | REENTER ODOMETER | REENTRAR ODOMETER | REINGRESE ODOMETRO | RE-ENT ODOMETRE
59 | REENTER DRIV. ID | REENTRAR DRIVER ID | REINGRESE ID CHOFER | RE-ENT ID CONDUC
60 | ENTER CUSTOMER ID | ENTER CLIENTE ID | INGRESE ID CLIENTE | ENTREZ ID CLIENT
61 | ENTER CUST. ID | ENTER CLIENTE ID | INGRESE ID CLIENTE | ENTREZ ID CLIENT
62 | ENTER ROUTE NUM | ENTER NUM ROUTE | INGRESE NUM RUTA | ENT No ROUTE
63 | ENTER FLEET NUM | FROTA ENTER NUM | INGRESE NUM FLOTA | ENT No PARC AUTO
64 | FLEET PIN | FROTA PIN | PIN DE FLOTA | NIP PARC AUTO
65 | DRIVER # | DRIVER # | CONDUCTOR # | CONDUCTEUR
66 | ENTER DRIVER # | ENTER DRIVER # | INGRESE CONDUCTOR # | ENT # CONDUCTEUR
67 | VEHICLE # | VE?�CULO # | VEHICULO # | # VEHICULE
68 | ENTER VEHICLE # | ENTER VE?�CULO # | INGRESE VEHICULO # | ENT # VEHICULE
69 | JOB # | TRABALHO # | TRABAJO # | # TRAVAIL
70 | ENTER JOB # | ENTER JOB # | INGRESE TRABAJO # | ENTREZ # TRAVAIL
71 | DEPT NUMBER | N?�MERO DEPT | NUMERO DEPTO | No DEPARTEMENT
72 | DEPARTMENT # | DEPARTAMENTO # | DEPARTAMENTO # | DEPARTEMENT
73 | ENTER DEPT # | ENTER DEPT # | INGRESE DEPTO # | ENT# DEPARTEMENT
74 | LICENSE NUMBER | N?�MERO DE LICEN?�A | NUMERO LICENCIA | No PERMIS
75 | LICENSE # | LICEN?�A # | LICENCIA # | # PERMIS
76 | ENTER LICENSE # | ENTER LICEN?�A # | INGRESE LICENCIA # | ENTREZ # PERMIS
77 | DATA | INFO | INFO | INFO
78 | ENTER DATA | ENTER INFO | INGRESE INFO | ENTREZ INFO
79 | CUSTOMER DATA | CLIENTE INFO | INFO CLIENTE | INFO CLIENT
80 | ID # | ID # | ID # | # ID
81 | ENTER ID # | ENTER ID # | INGRESE ID # | ENTREZ # ID
82 | USER ID | USER ID | ID USUARIO | ID UTILISATEUR
83 | ROUTE # | ROUTE # | RUTA # | # ROUTE
84 | ENTER ROUTE # | ADD ROUTE # | INGRESE RUTA # | ENTREZ # ROUTE
85 | ENTER CARD NUM | ENTER N?�MERO DE CART?�O | INGRESE NUM TARJETA | ENTREZ NO CARTE
86 | EXP DATE(YYMM) | VALIDADE VAL (AAMM) | FECHA EXP (AAMM) | DATE EXPIR(AAMM)
87 | PHONE NUMBER | TELEFONE | NUMERO TELEFONO | NO TEL
88 | CVV START DATE | CVV DATA DE IN?�CIO | CVV FECHA INICIO | CVV DATE DE DEBUT
89 | ISSUE NUMBER | N?�MERO DE EMISS?�O | NUMERO DE EMISION | NO DEMISSION
90 | START DATE (MMYY) | DATA DE IN?�CIO (AAMM) | FECHA INICIO (AAMM) | DATE DE DEBUT-AAMM

         @param messageID  Message (1-90)
         @param languageID 0=English Prompt, 1=Portuguese Prompt, 2=Spanish Prompt, 3=French Prompt
         @param maskInput  1 = entry is masked with '*', 0 = entry is displayed on keypad
         @param minLen  Minimum input length.  Cannot be less than 1
         @param maxLen Maximum input length.  Cannot be greater than 16
         @param timeout Timout value, in seconds

Returns
  RETURN_CODE: Values can be parsed with errorCode.getErrorString()

## ◆ pin_promptForNumericKey()

int pin_promptForNumericKey | ( | IN int | timeout,
|  | IN int | maskInput,
|  | IN int | minLen,
|  | IN int | maxLen,
|  | IN char * | message,
|  | IN int | messageLen,
|  | BYTE * | signature,
|  | IN int | signatureLen
| ) |  |

Capture Numeric Input

Parameters

  timeout | Timeout, in seconds. Value of 0 will use system timeout, if any
  maskInput | 0 = Display numeric for numeric key on LCD 1 = Display ?��*?�� for numeric key on LCD
  minLen | Minimum input Length
  maxLen | Maximum input Length
  message | Plaintext Display Message. - 16 chars max
  messageLen | Length of message
  signature | Display message signed by Numeric Private Key using RSAPSS algorithm: Calculate 32 bytes Hash for ?��<Display Flag><Key max="" length>="">< Key Min Length><Plaintext display="" message>="">?�� Using RSAPSS algorithm calculate the Hash to be 256 bytes Raw Data Using Numeric Private Key to sign the Raw Data to be 256 bytes signature
  signatureLen | Length of signature

Returns
  RETURN_CODE: Values can be parsed with errorCode.getErrorString()

## ◆ pin_promptForNumericKeyWithSwipe()

int pin_promptForNumericKeyWithSwipe | ( | IN int | timeout,
|  | IN BYTE | function,
|  | IN int | minLen,
|  | IN int | maxLen,
|  | IN char * | line1,
|  | IN int | line1Len,
|  | IN char * | line2,
|  | IN int | line2Len,
|  | BYTE * | signature,
|  | IN int | signatureLen
| ) |  |

Capture Numeric Input

Parameters

  timeout | Timeout, in seconds. Value of 0 will use system timeout, if any
  function | 0x00 = Plaintext Input 0x01 = Masked Input 0x02 = Delayed Masking Input 0x10 = Plaintext Input + MSR Active 0x11 = Masked Input + MSR Active 0x12 = Delayed Masking Input + MSR Active
  minLen | Minimum input Length
  maxLen | Maximum input Length
  line1 | Line 1 of LCD Message - 16 chars max
  line1Len | Length of line1
  line2 | Line 2 of LCD Message - 16 chars max
  line2Len | Length of line2
  signature | Display message signed by Numeric Private Key using RSAPSS algorithm: Calculate 32 bytes Hash for ?�斤??Display Flag><Key max="" length>="">< Key Min Length><Plaintext display="" message>="">?�斤?? Using RSAPSS algorithm calculate the Hash to be 256 bytes Raw Data Using Numeric Private Key to sign the Raw Data to be 256 bytes signature
  signatureLen | Length of signature

Returns
  RETURN_CODE: Values can be parsed with errorCode.getErrorString()

## ◆ pin_registerCallBk()

void pin_registerCallBk | ( | pPIN_callBack | pPINf | ) |

*To register the loyalty MSR callback function to get the MSR card data. (Pass NULL to disable the callback.) *To register the loyalty MSR callback function to get the MSR card data pointer. (Pass NULL to disable the callback.) To register the pin callback function to get the PINPad data. (Pass NULL to disable the callback.)

## ◆ pin_sendBeep()

int pin_sendBeep | ( | int | frequency,
|  | int | duration
| ) |  |

Send Beep

Executes a beep request.

Parameters

  frequency | Frequency, range 200-20000Hz Not used for NEO 2 devices
  duration | Duration, range 16-65535ms Not used for NEO 2 devices

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString

## ◆ pin_setKeyValues()

int pin_setKeyValues | ( | int | mode | ) |

Set Key Values

Set return key values on or off

Parameters

  mode | On: 1, Off: 0

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ registerHotplugCallBk()

void registerHotplugCallBk | ( | pMessageHotplug | pMsgHotplug | ) |

To register the USB HID hot-plug callback function which implemented in the application to monitor the hotplug message from the SDK.

## ◆ registerLogCallBk()

void registerLogCallBk | ( | pSendDataLog | pFSend,
|  | pReadDataLog | pFRead
| ) |  |

To register the log callback function which implemented in the application to monitor sending/reading data between application and reader.

## ◆ rs232_device_init()

int rs232_device_init | ( | int | deviceType,
|  | int | port_number,
|  | int | brate
| ) |  |

Initial the device by RS232
It will try to connect to the device with provided deviceType, port_number, and brate.

Parameters

  deviceType | Device to connect to
  port_number | Port number of the device Port nr. | Linux | Windows

| 0 | ttyS0 | COM1 |

| 1 | ttyS1 | COM2 |

| 2 | ttyS2 | COM3 |

| 3 | ttyS3 | COM4 |

| 4 | ttyS4 | COM5 |

| 5 | ttyS5 | COM6 |

| 6 | ttyS6 | COM7 |

| 7 | ttyS7 | COM8 |

| 8 | ttyS8 | COM9 |

| 9 | ttyS9 | COM10 |

| 10 | ttyS10 | COM11 |

| 11 | ttyS11 | COM12 |

| 12 | ttyS12 | COM13 |

| 13 | ttyS13 | COM14 |

| 14 | ttyS14 | COM15 |

| 15 | ttyS15 | COM16 |

| 16 | ttyUSB0 | n.a. |

| 17 | ttyUSB1 | n.a. |

| 18 | ttyUSB2 | n.a. |

| 19 | ttyUSB3 | n.a. |

| 20 | ttyUSB4 | n.a. |

| 21 | ttyUSB5 | n.a. |

| 22 | ttyAMA0 | n.a. |

| 23 | ttyAMA1 | n.a. |

| 24 | ttyACM0 | n.a. |

| 25 | ttyACM1 | n.a. |

| 26 | rfcomm0 | n.a. |

| 27 | rfcomm1 | n.a. |

| 28 | ircomm0 | n.a. |

| 29 | ircomm1 | n.a. |

| 30 | cuau0 | n.a. |

| 31 | cuau1 | n.a. |

| 32 | cuau2 | n.a. |

| 33 | cuau3 | n.a. |

| 34 | cuaU0 | n.a. |

| 35 | cuaU1 | n.a. |

| 36 | cuaU2 | n.a. |

| 37 | cuaU3 | n.a. |

Parameters

  brate | Bitrate of the device

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ SDK_Version()

char* SDK_Version | ( |  | ) |

To Get SDK version

Returns
  return the SDK version string

## ◆ set_open_com_port_timeout()

void set_open_com_port_timeout | ( | int | timeout | ) |

Set the timeout value for opening the com port

Parameters

  timeout | should be set to greater than 0 in seconds, otherwise there will be no timeout for opening the com port

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ setAbsoluteLibraryPath()

int setAbsoluteLibraryPath | ( | const char * | absoluteLibraryPath | ) |

Set the path to use when searching for ID TECH's libraries. If this is not set, the libraries will be searched for with the system's default procedures.

Parameters

  absoluteLibraryPath | The absolute path to ID TECH's libraries.

Returns
  RETURN_CODE: Values can be parsed with device_getResponseCodeString()

## ◆ ws_deleteSSLCert()

int ws_deleteSSLCert | ( | IN char * | name,
|  | IN int | nameLen
| ) |  |

Delete SSL Certificate Deletes a SSL Certificate by name

Parameters

  name | Name of certificate to delete
  nameLen | Certificate Name Length

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ws_getCertChainType()

int ws_getCertChainType | ( | OUT int * | type | ) |

Get Certificate Chain Type Returns indicator for using test/production certificate chain

Parameters

  type | 0 = test certificate chain, 1 = production certificate chain

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ws_loadSSLCert()

int ws_loadSSLCert | ( | IN char * | name,
|  | IN int | nameLen,
|  | IN char * | dataDER,
|  | IN int | dataDERLen
| ) |  |

Load SSL Certificate Loads a SSL certificate

Parameters

  name | Certificate Name
  nameLen | Certificate Name Length
  dataDER | DER encoded certificate data
  dataDERLen | DER encoded certificate data length

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ws_requestCSR()

int ws_requestCSR | ( | OUT RequestCSR * | csr | ) |

Request CSR Requests 3 sets of public keys: encrypting Keys, signing/validating keys, signing/validating 3rd party apps

Parameters

  csr | RequestCSR structure to return the data

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ws_revokeSSLCert()

int ws_revokeSSLCert | ( | IN char * | name,
|  | IN int | nameLen
| ) |  |

Revoke SSL Certificate Revokes a SSL Certificate by name

Parameters

  name | Name of certificate to revoke
  nameLen | Certificate Name Length

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()

## ◆ ws_updateRootCertificate()

int ws_updateRootCertificate | ( | IN char * | name,
|  | IN int | nameLen,
|  | IN char * | dataDER,
|  | IN int | dataDERLen,
|  | IN char * | signature,
|  | IN int | signatureLen
| ) |  |

Update Root Certificate Updates the root certificate

Parameters

  name | Certificate Name
  nameLen | Certificate Name Length
  dataDER | DER encoded certificate data
  dataDERLen | DER encoded certificate data length
  signature | Future Root CA signed (RSASSA PSS SHA256) by current Root CA
  signature | length

Returns
  RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()