/****************************************************************************** * * * xfscdm.h WOSA/XFS - Cash Dispenser (CDM) definitions * * * * Version 2.00 (11/11/96) * * * ******************************************************************************/ #ifndef __INC_XFSCDM__H #define __INC_XFSCDM__H #ifdef __cplusplus extern "C" { #endif #include <xfsapi.h> /* be aware of alignment */ #pragma pack (push, 1) /* values of WFSCDMCAPS.wClass */ #define WFS_SERVICE_CLASS_CDM (3) #define WFS_SERVICE_CLASS_VERSION_CDM 0x0002 #define WFS_SERVICE_CLASS_NAME_CDM "CDM" #define CDM_SERVICE_OFFSET (WFS_SERVICE_CLASS_CDM * 100) /* CDM Info Commands */ #define WFS_INF_CDM_STATUS (CDM_SERVICE_OFFSET + 1) #define WFS_INF_CDM_CAPABILITIES (CDM_SERVICE_OFFSET + 2) #define WFS_INF_CDM_CASH_UNIT_INFO (CDM_SERVICE_OFFSET + 3) #define WFS_INF_CDM_TELLER_INFO (CDM_SERVICE_OFFSET + 4) #define WFS_INF_CDM_TELLER_POSITIONS (CDM_SERVICE_OFFSET + 5) #define WFS_INF_CDM_CURRENCY_EXP (CDM_SERVICE_OFFSET + 6) #define WFS_INF_CDM_MIX_TYPES (CDM_SERVICE_OFFSET + 7) #define WFS_INF_CDM_MIX_TABLE (CDM_SERVICE_OFFSET + 8) #define WFS_INF_CDM_PRESENT_STATUS (CDM_SERVICE_OFFSET + 9) /* CDM Execute Commands */ #define WFS_CMD_CDM_DENOMINATE (CDM_SERVICE_OFFSET + 1) #define WFS_CMD_CDM_DISPENSE (CDM_SERVICE_OFFSET + 2) #define WFS_CMD_CDM_PRESENT (CDM_SERVICE_OFFSET + 3) #define WFS_CMD_CDM_REJECT (CDM_SERVICE_OFFSET + 4) #define WFS_CMD_CDM_RETRACT (CDM_SERVICE_OFFSET + 5) #define WFS_CMD_CDM_CASH_IN (CDM_SERVICE_OFFSET + 6) #define WFS_CMD_CDM_OPEN_SHUTTER (CDM_SERVICE_OFFSET + 7) #define WFS_CMD_CDM_CLOSE_SHUTTER (CDM_SERVICE_OFFSET + 8) #define WFS_CMD_CDM_SET_TELLER_INFO (CDM_SERVICE_OFFSET + 9) #define WFS_CMD_CDM_SET_CASH_UNIT_INFO (CDM_SERVICE_OFFSET + 10) #define WFS_CMD_CDM_START_EXCHANGE (CDM_SERVICE_OFFSET + 11) #define WFS_CMD_CDM_END_EXCHANGE (CDM_SERVICE_OFFSET + 12) #define WFS_CMD_CDM_OPEN_SAFE_DOOR (CDM_SERVICE_OFFSET + 13) #define WFS_CMD_CDM_CHECK_VANDALISM (CDM_SERVICE_OFFSET + 14) #define WFS_CMD_CDM_CALIBRATE_CASH_UNIT (CDM_SERVICE_OFFSET + 15) #define WFS_CMD_CDM_SET_TELLER_POSITIONS (CDM_SERVICE_OFFSET + 16) #define WFS_CMD_CDM_CASH_IN_START (CDM_SERVICE_OFFSET + 17) #define WFS_CMD_CDM_CASH_IN_END (CDM_SERVICE_OFFSET + 18) #define WFS_CMD_CDM_CASH_IN_ROLLBACK (CDM_SERVICE_OFFSET + 19) #define WFS_CMD_CDM_SET_MIXTABLE (CDM_SERVICE_OFFSET + 20) /* CDM Messages */ #define WFS_SRVE_CDM_SAFEDOOROPEN (CDM_SERVICE_OFFSET + 1) #define WFS_SRVE_CDM_SAFEDOORCLOSED (CDM_SERVICE_OFFSET + 2) #define WFS_USRE_CDM_CASHUNITTHRESHOLD (CDM_SERVICE_OFFSET + 3) #define WFS_SRVE_CDM_CASHUNITINFOCHANGED (CDM_SERVICE_OFFSET + 4) #define WFS_SRVE_CDM_TELLERINFOCHANGED (CDM_SERVICE_OFFSET + 5) #define WFS_EXEE_CDM_DELAYEDDISPENSE (CDM_SERVICE_OFFSET + 6) #define WFS_EXEE_CDM_STARTDISPENSE (CDM_SERVICE_OFFSET + 7) #define WFS_EXEE_CDM_CASHUNITERROR (CDM_SERVICE_OFFSET + 8) #define WFS_SRVE_CDM_BILLSTAKEN (CDM_SERVICE_OFFSET + 9) #define WFS_EXEE_CDM_PARTIALDISPENSE (CDM_SERVICE_OFFSET + 10) #define WFS_EXEE_CDM_SUBDISPENSEOK (CDM_SERVICE_OFFSET + 11) #define WFS_EXEE_CDM_INPUTREFUSE (CDM_SERVICE_OFFSET + 12) /* values of WFSCDMSTATUS.fwDevice */ #define WFS_CDM_DEVONLINE WFS_STAT_DEVONLINE #define WFS_CDM_DEVOFFLINE WFS_STAT_DEVOFFLINE #define WFS_CDM_DEVPOWEROFF WFS_STAT_DEVPOWEROFF #define WFS_CDM_DEVBUSY WFS_STAT_DEVBUSY #define WFS_CDM_DEVNODEVICE WFS_STAT_DEVNODEVICE #define WFS_CDM_DEVHWERROR WFS_STAT_DEVHWERROR #define WFS_CDM_DEVUSERERROR WFS_STAT_DEVUSERERROR /* values of WFSCDMSTATUS.fwSafeDoor */ #define WFS_CDM_DOORNOTSUPPORTED (1) #define WFS_CDM_DOOROPEN (2) #define WFS_CDM_DOORCLOSED (3) #define WFS_CDM_DOORLOCKED (4) #define WFS_CDM_DOORUNKNOWN (5) /* values of WFSCDMSTATUS.fwDispenser */ #define WFS_CDM_DISPOK (0) #define WFS_CDM_DISPCUSTATE (1) #define WFS_CDM_DISPCUSTOP (2) #define WFS_CDM_DISPCUUNKNOWN (3) /* values of WFSCDMSTATUS.fwShutter */ #define WFS_CDM_SHTCLOSED (0) #define WFS_CDM_SHTOPEN (1) #define WFS_CDM_SHTJAMMED (2) #define WFS_CDM_SHTUNKNOWN (3) #define WFS_CDM_SHTNOTSUPPORTED (4) /* values of WFSCDMSTATUS.fwOutputPosition */ #define WFS_CDM_CTEMPTY (0) #define WFS_CDM_CTNOTEMPTY (1) #define WFS_CDM_CTUNKNOWN (2) #define WFS_CDM_CTNOTSUPPORTED (3) /* values of WFSCDMSTATUS.fwTransport */ #define WFS_CDM_TPOK (0) #define WFS_CDM_TPINOP (1) #define WFS_CDM_TPUNKNOWN (2) #define WFS_CDM_TPNOTSUPPORTED (3) /* values of WFSCDMSTATUS.fwIntermediateStacker */ #define WFS_CDM_ISEMPTY (0) #define WFS_CDM_ISNOTEMPTY (1) #define WFS_CDM_ISUNKNOWN (2) #define WFS_CDM_ISNOTSUPPORTED (3) /* values of WFSCDMCAPS.fwType */ #define WFS_CDM_TYPEATSAFE (1) #define WFS_CDM_TYPEATMACHINE (2) /* values of WFSCDMCASHUNIT.usType */ #define WFS_CDM_TYPENA (1) #define WFS_CDM_TYPEREJECTCASSETTE (2) #define WFS_CDM_TYPEBILLCASSETTE (3) #define WFS_CDM_TYPECOINCYLINDER (4) #define WFS_CDM_TYPECOINDISPENSER (5) #define WFS_CDM_TYPERETRACTCASSETTE (6) #define WFS_CDM_TYPECOUPON (7) #define WFS_CDM_TYPEDOCUMENT (8) /* values of WFSCDMCASHUNIT.usStatus */ #define WFS_CDM_STATCUOK (0) #define WFS_CDM_STATCUFULL (1) #define WFS_CDM_STATCUHIGH (2) #define WFS_CDM_STATCULOW (3) #define WFS_CDM_STATCUEMPTY (4) #define WFS_CDM_STATCUMISSING (5) #define WFS_CDM_STATCUINOP (6) #define WFS_CDM_STATCUNOVAL (7) #define WFS_CDM_STATCUNOREF (8) /* values of WFSCDMMIXTYPE.usMixType */ #define WFS_CDM_MIXALGORITHM (1) #define WFS_CDM_MIXTABLE (2) /* values of WFSCDMMIXTYPE.usMixNumber */ #define WFS_CDM_INDIVIDUAL (0) /* values of WFSCDMMIXTYPE.usSubType (predefined mix algorithms) */ #define WFS_CDM_MIX_MINIMUM_NUMBER_OF_BILLS (1) #define WFS_CDM_MIX_EQUAL_EMPTYING_OF_CASH_UNITS (2) /* values of WFSCDMPRESENTSTATUS.wPresentState */ #define WFS_CDM_PRESENTED (1) #define WFS_CDM_NOTPRESENTED (2) #define WFS_CDM_UNKNOWN (3) /* values of WFSCDMDISPENSE.usPosition */ /* values of WFSCDMCAPS.fwOutputPositions */ /* values of WFSCDMOUTPOS.fwPosition */ /* values of WFSCDMTELLERPOS.usPosition */ #define WFS_CDM_POSNULL (0x0000) #define WFS_CDM_POSLEFT (0x0001) #define WFS_CDM_POSRIGHT (0x0002) #define WFS_CDM_POSCENTER (0x0004) /* values of lpusVandalism */ #define WFS_CDM_NODEVMANIPULATION (0) #define WFS_CDM_DEVMANIPULATION (1) /* values of WFSCDMCUERROR.wFailure */ #define WFS_CDM_CASHUNITEMPTY (1) #define WFS_CDM_CASHUNITLOCKED (2) #define WFS_CDM_CASHUNITNOTCONF (3) #define WFS_CDM_CASHUNITINVALID (4) #define WFS_CDM_CASHUNITERROR (5) #define WFS_CDM_CASHUNITFULL (6) /* values of lpusReason in WFS_EXEE_CDM_INPUTREFUSE */ #define WFS_CDM_INVALIDBILL (7) /* WOSA/XFS CDM Errors */ #define WFS_ERR_CDM_INVALIDCURRENCY (-(CDM_SERVICE_OFFSET + 0)) #define WFS_ERR_CDM_INVALIDTELLERID (-(CDM_SERVICE_OFFSET + 1)) #define WFS_ERR_CDM_CASHUNITERROR (-(CDM_SERVICE_OFFSET + 2)) #define WFS_ERR_CDM_INVALIDDENOMINATION (-(CDM_SERVICE_OFFSET + 3)) #define WFS_ERR_CDM_INVALIDMIXNUMBER (-(CDM_SERVICE_OFFSET + 4)) #define WFS_ERR_CDM_NOCURRENCYMIX (-(CDM_SERVICE_OFFSET + 5)) #define WFS_ERR_CDM_NOTDISPENSABLE (-(CDM_SERVICE_OFFSET + 6)) #define WFS_ERR_CDM_TOOMANYBILLS (-(CDM_SERVICE_OFFSET + 7)) #define WFS_ERR_CDM_INVALIDPOSITION (-(CDM_SERVICE_OFFSET + 8)) #define WFS_ERR_CDM_POSITIONLOCKED (-(CDM_SERVICE_OFFSET + 9)) #define WFS_ERR_CDM_SAFEDOOROPEN (-(CDM_SERVICE_OFFSET + 10)) #define WFS_ERR_CDM_INVALIDRETRACT (-(CDM_SERVICE_OFFSET + 11)) #define WFS_ERR_CDM_SHUTTERNOTOPEN (-(CDM_SERVICE_OFFSET + 12)) #define WFS_ERR_CDM_SHUTTEROPEN (-(CDM_SERVICE_OFFSET + 13)) #define WFS_ERR_CDM_SHUTTERCLOSED (-(CDM_SERVICE_OFFSET + 14)) #define WFS_ERR_CDM_INVALIDCASHUNIT (-(CDM_SERVICE_OFFSET + 15)) #define WFS_ERR_CDM_NOBILLS (-(CDM_SERVICE_OFFSET + 16)) #define WFS_ERR_CDM_EXCHANGEACTIVE (-(CDM_SERVICE_OFFSET + 17)) #define WFS_ERR_CDM_NOEXCHANGEACTIVE (-(CDM_SERVICE_OFFSET + 18)) #define WFS_ERR_CDM_SHUTTERNOTCLOSED (-(CDM_SERVICE_OFFSET + 19)) #define WFS_ERR_CDM_PRERRORNOBILLS (-(CDM_SERVICE_OFFSET + 20)) #define WFS_ERR_CDM_PRERRORBILLS (-(CDM_SERVICE_OFFSET + 21)) #define WFS_ERR_CDM_PRERRORUNKNOWN (-(CDM_SERVICE_OFFSET + 22)) #define WFS_ERR_CDM_BILLSTAKEN (-(CDM_SERVICE_OFFSET + 23)) #define WFS_ERR_CDM_TOOMANYCOINS (-(CDM_SERVICE_OFFSET + 24)) #define WFS_ERR_CDM_CASHINACTIVE (-(CDM_SERVICE_OFFSET + 25)) #define WFS_ERR_CDM_NOCASHINSTARTED (-(CDM_SERVICE_OFFSET + 26)) #define WFS_ERR_CDM_INVALIDMIXTABLE (-(CDM_SERVICE_OFFSET + 27)) /*=================================================================*/ /* CDM Info Command Structures */ /*=================================================================*/ typedef struct _wfs_cdm_outpos { WORD fwPosition; WORD fwShutter; WORD fwOutputPosition; WORD fwTransport; } WFSCDMOUTPOS, * LPWFSCDMOUTPOS; typedef struct _wfs_cdm_status { WORD fwDevice; WORD fwSafeDoor; WORD fwDispenser; WORD fwIntermediateStacker; LPWFSCDMOUTPOS * lppOutputPositions; LPSTR lpszExtra; } WFSCDMSTATUS, * LPWFSCDMSTATUS; typedef struct _wfs_cdm_caps { WORD wClass; WORD fwType; WORD wMaxBills; WORD wMaxCoins; BOOL bCompound; BOOL bShutter; BOOL bRetract; BOOL bSafeDoor; BOOL bCoins; BOOL bCylinders; BOOL bCashBox; BOOL bCashIn; BOOL bRefill; BOOL bAutoDeposit; BOOL bVandalCheck; BOOL bIntermediateStacker; BOOL bBillsTakenSensor; WORD fwOutputPositions; LPSTR lpszExtra; } WFSCDMCAPS, * LPWFSCDMCAPS; typedef struct _wfs_cdm_physicalcu { LPSTR lpPhysicalPositionName; CHAR cUnitID[5]; ULONG ulCount; USHORT usPStatus; } WFSCDMPHCU, * LPWFSCDMPHCU; typedef struct _wfs_cdm_cashunit { USHORT usNumber; USHORT usType; CHAR cUnitID[5]; CHAR cCurrencyID[3]; ULONG ulValues; ULONG ulInitialCount; ULONG ulCount; ULONG ulMinimum; ULONG ulMaximum; BOOL bAppLock; BOOL bDevLock; USHORT usStatus; LPSTR lpPhysicalPositionName; USHORT usNumPhysicalCUs; LPWFSCDMPHCU *lppPhysical; } WFSCDMCASHUNIT, * LPWFSCDMCASHUNIT; typedef struct _wfs_cdm_cu_info { USHORT usTellerID; USHORT usCount; LPWFSCDMCASHUNIT *lppList; } WFSCDMCUINFO, * LPWFSCDMCUINFO; typedef struct _wfs_cdm_teller_info { USHORT usTellerID; CHAR cCurrencyID[3]; } WFSCDMTELLERINFO, * LPWFSCDMTELLERINFO; typedef struct _wfs_cdm_teller_totals { USHORT usTellerID; CHAR cCurrencyID[3]; ULONG ulBills; ULONG ulCoins; ULONG ulCashIn; ULONG ulCashBox; } WFSCDMTELLERTOTALS, * LPWFSCDMTELLERTOTALS; typedef struct _wfs_cdm_teller_pos { USHORT usTellerID; USHORT usPosition; } WFSCDMTELLERPOS, * LPWFSCDMTELLERPOS; typedef struct _wfs_cdm_currency_exp { CHAR cCurrencyID[3]; SHORT sExponent; } WFSCDMCURRENCYEXP, * LPWFSCDMCURRENCYEXP; typedef struct _wfs_cdm_mix_type { USHORT usMixNumber; USHORT usMixType; USHORT usSubType; LPSTR lpszName; } WFSCDMMIXTYPE, * LPWFSCDMMIXTYPE; typedef struct _wfs_cdm_mix_row { ULONG ulAmount; LPUSHORT lpusMixture; } WFSCDMMIXROW, * LPWFSCDMMIXROW; typedef struct _wfs_cdm_mix_table { USHORT usMixNumber; LPSTR lpszName; USHORT usRows; USHORT usCols; LPULONG lpulMixHeader; LPWFSCDMMIXROW *lppMixRows; } WFSCDMMIXTABLE, * LPWFSCDMMIXTABLE; typedef struct _wfs_cdm_denomination { CHAR cCurrencyID[3]; ULONG ulAmount; USHORT usCount; LPULONG lpulValues; ULONG ulCashBox; } WFSCDMDENOMINATION, * LPWFSCDMDENOMINATION; typedef struct _wfs_cdm_present_status { LPWFSCDMDENOMINATION lpDenomination; WORD wPresentState; LPSTR lpszExtra; } WFSCDMPRESENTSTATUS, * LPWFSCDMPRESENTSTATUS; /*=================================================================*/ /* CDM Execute Command Structures */ /*=================================================================*/ typedef struct _wfs_cdm_denominate { USHORT usTellerID; USHORT usMixNumber; LPWFSCDMDENOMINATION lpDenomination; } WFSCDMDENOMINATE, * LPWFSCDMDENOMINATE; typedef struct _wfs_cdm_dispense { USHORT usTellerID; USHORT usMixNumber; USHORT usPosition; BOOL bPresent; LPWFSCDMDENOMINATION lpDenomination; } WFSCDMDISPENSE, * LPWFSCDMDISPENSE; typedef struct _wfs_cdm_cashin { USHORT usTellerID; LPWFSCDMDENOMINATION lpDenomination; } WFSCDMCASHIN, * LPWFSCDMCASHIN; typedef struct _wfs_cdm_start_ex { USHORT usTellerID; USHORT usCount; LPUSHORT lpusCUNumList; } WFSCDMSTARTEX, * LPWFSCDMSTARTEX; typedef struct _wfs_cdm_calibrate { USHORT usNumber; USHORT usNumOfBills; } WFSCDMCALIBRATE, * LPWFSCDMCALIBRATE; /*=================================================================*/ /* CDM Message Structures */ /*=================================================================*/ typedef struct _wfs_cdm_cu_error { WORD wFailure; LPWFSCDMCASHUNIT lpCashUnit; } WFSCDMCUERROR, * LPWFSCDMCUERROR; /* restore alignment */ #pragma pack (pop) #ifdef __cplusplus } /*extern "C"*/ #endif
#endif /* __INC_XFSCDM__H */