7.18 PaymentCashDeviceType definition
7.18.1 Overview
The abstract PaymentCashDeviceType provides information about a payment device taking cash. It is formally defined in Table 52.
7.18.2 ObjectType definition
| Attribute | Value | ||||
| BrowseName | PaymentCashDeviceType | ||||
| IsAbstract | True | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of the StandalonePaymentDeviceType | |||||
| 0:HasProperty | Variable | SupportedAssetList | PriceDataType[] | 0:PropertyType | M |
| 0:HasProperty | Variable | SupportedAssetListVersion | 0:SemanticVersionString | 0:PropertyType | M |
| 0:HasProperty | Variable | SlotConfigurationList | SlotConfigurationDataType[] | 0:PropertyType | M |
| 0:HasComponent | Variable | CurrentSlotContentList | 0:UInt32[] | 0:BaseDataVariableType | O |
| 0:HasComponent | Variable | AssetConfigurationList | AssetConfigurationEnum[] | 0:BaseDataVariableType | M |
| 0:HasComponent | Method | ChangeAssetConfigurationList | M | ||
| 0:HasComponent | Variable | PayoutStatus | PayoutStatusEnum | 0:BaseDataVariableType | O |
| 0:HasComponent | Method | PayoutByValue | O | ||
| 0:HasComponent | Method | PayoutBySupportedAssetList | O | ||
| 0:HasComponent | Variable | CurrentAvailableValue | PriceDataType | 0:BaseDataVariableType | M |
| 0:HasComponent | Method | ConsumeAvailableValue | M | ||
| Conformance Units | |||||
|---|---|---|---|---|---|
| UnattendedRetail PaymentDevice Coin | |||||
| UnattendedRetail PaymentDevice Bill |
The inherited Variables SupportedAssetList, SupportedAssetListVersion, and SlotConfigurationList become mandatory in the PaymentCashDeviceType.
In case of the buffer (see 7.16.2), most payment devices maintain the information about the current amount stored in the buffer. If the payment device supports this information, it shall be provided in the CurrentSlotContentList Property. This list contains for each index representing a slot the number of physical assets currently in the slot. The list shall have the same size as the maximum slot index of the SlotConfigurationList.
In the following, an example is given, extending the example of 7.16.2.
SupportedAssetList = { (10, € cent), (50, € cent), (50, € cent), (100, € cent), (100, € cent) }
SlotConfigurationList = { (-1,4), (0,0), (1,0), (2,1), (2,2), (3,3), (4,3) }
CurrentSlotContentList = { 10, 3, 15, 7, 0 }
An explanation of SupportedAssetList and SlotConfigurationList can be found in 7.16.2.
The CurrentSlotContentList indicates, that there are 10+3 10 € cent coins, 15 50 € cent coins, and 7 100€ cent coins in the buffer.
The CurrentSlotContentList Variable value is the best approximation for the slot content, and may not be the exact number of assets in each slot, the behaviour can be manufacturer depended.
The mandatory AssetConfigurationList Variable is an array of AssetConfigurationEnum. The DataType is defined in 8.24. It shall have the same length as the SupportedAssetList. Each entry of the array defines what the payment device shall do with an asset as defined in the corresponding entry of the SupportedAssetList when inserted into the payment device. The AssetConfigurationList can be changed by the ChangeAssetConfigurationList Method defined in 7.18.3.
The optional PayoutStatus Variable indicates the status of a payout, requested via the PayoutByValue (see 7.18.4) or PayoutBySupportedAssetList (see 7.18.5) Method call. The DataType is defined in 8.25. The CurrentSlotContentList Variable needs to be updated when a payout occurs. If a payout was not successful, checking the CurrentSlotContentList indicates what assets have been paid out. The CurrentSlotContentList Variable can also be monitored to identify in case of a successful payout, what assets have been paid out.
The mandatory CurrentAvailableValue Variable indicates the amount of money currently available in the payment cash device for deliveries. When a user inserts an asset (e.g., a coin) that is accepted by the payment cash device, the CurrentAvailableValue increases. Typically, the CurrentAvailableValue is initialized to 0 when the payment cash device starts. When the ConsumeAvailableValue Method is called (see 7.18.6), the CurrentAvailableValue decreases according to the input parameters of the Method. Any payout operation (PayoutByValue or PayoutBySupportedAssetList Methods) does not affect the CurrentAvailableValue.
7.18.3 ChangeAssetConfigurationList Method
The ChangeAssetConfigurationList Method changes the configuration of the payment device reflected in the AssetConfigurationList.
If the execution of the Method cannot be done due to some application logic, the Method should return an Uncertain StatusCode and provide details of the failure in the Status output Argument. When the Method returns an Uncertain StatusCode, the Method is considered to be failed.
If the Method returns successful, the AssetConfigurationList shall reflect the new configuration.
The signature of this Method is specified below. Table 53 and Table 54 specify the Arguments and AddressSpace representation, respectively.
Signature
ChangeAssetConfigurationList (
[in] AssetConfigurationEnum[] NewAssetConfigurationList,
[out] 0:Int32 Status);| Argument | Description |
| NewAssetConfigurationList | Contains the new configuration to be configured. The resulting configuration may not be identical to this input argument as the configuration may be adjusted as described in the AssetConfigurationEnum. |
| Status | Status of the execution of the method. If issues occurred during execution. 0 = Execution was successful. -1 = Invalid length of NewAssetConfigurationList Vendors may return a vendor specific status starting with number -16 or smaller. |
Method Result Codes (defined in Call Service)
| Result Code | Description |
| Bad_UserAccessDenied | See OPC 10000-4 for a general description. |
| Attribute | Value | ||||
| BrowseName | ChangeAssetConfigurationList | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:InputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
| 0:HasProperty | Variable | 0:OutputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
7.18.4 PayoutByValue Method
The PayoutByValue Method triggers a payout.
If the execution of the Method cannot be done due to some application logic, the Method should return an Uncertain StatusCode and provide details of the failure in the Status output Argument. When the Method returns an Uncertain StatusCode, the Method is considered to be failed.
If the Method returns successful, it does not indicate, that the payout has been completed successful. Clients need to access the PayoutStatus Variable to get the information, if the payout gets successfully finished.
The signature of this Method is specified below. Table 55 and Table 56 specify the Arguments and AddressSpace representation, respectively.
Signature
PayoutByValue (
[in] PriceDataType PayoutValue,
[out] 0:Int32 Status);| Argument | Description |
| PayoutValue | The value to be paid out. |
| Status | Status of the execution of the method. If issues occurred during execution. 0 = Execution was successful. -1 = Cannot trigger payout as another payout is ongoing -2 = Cannot trigger payout, not enough assets left Vendors may return a vendor specific status starting with number -16 or smaller. |
Method Result Codes (defined in Call Service)
| Result Code | Description |
| Bad_UserAccessDenied | See OPC 10000-4 for a general description. |
| Attribute | Value | ||||
| BrowseName | PayoutByValue | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:InputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
| 0:HasProperty | Variable | 0:OutputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
7.18.5 PayoutBySupportedAssetList Method
The PayoutBySupportedAssetList Method triggers a payout.
If the execution of the Method cannot be done due to some application logic, the Method should return an Uncertain StatusCode and provide details of the failure in the Status output Argument. When the Method returns an Uncertain StatusCode, the Method is considered to be failed.
If the Method returns successful, it does not indicate, that the payout has been completed successful. Clients need to access the PayoutStatus Variable to get the information, if the payout gets successfully finished.
The signature of this Method is specified below. Table 57 and Table 58 specify the Arguments and AddressSpace representation, respectively.
Signature
PayoutBySupportedAssetList (
[in] 0:UInt32[] NumberOfAssetsBySupportedAssetList,
[out] 0:Int32 Status);| Argument | Description |
| NumberOfAssetsBySupportedAssetList | For each entry of the SupportedAssetList, the number of assets to be paid out. |
| Status | Status of the execution of the method. If issues occurred during execution. 0 = Execution was successful. -1 = Cannot trigger payout as another payout is ongoing -2 = Cannot trigger payout, not enough assets left -3 = Invalid length of NumberOfAssetsBySupportedAssetList Vendors may return a vendor specific status starting with number -16 or smaller. |
Method Result Codes (defined in Call Service)
| Result Code | Description |
| Bad_UserAccessDenied | See OPC 10000-4 for a general description. |
| Attribute | Value | ||||
| BrowseName | PayoutBySupportedAssetList | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:InputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
| 0:HasProperty | Variable | 0:OutputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
7.18.6 ConsumeAvailableValue Method
The ConsumeAvailableValue Method consumes part of the available money provided in the CurrentAvailableValue Variable.
If the execution of the Method cannot be done due to some application logic, the Method should return an Uncertain StatusCode and provide details of the failure in the Status output Argument. When the Method returns an Uncertain StatusCode, the Method is considered to be failed.
If the Method returns successful, it does indicate, that the CurrentAvailableValue Variable has been decreased.
The signature of this Method is specified below. Table 59 and Table 60 specify the Arguments and AddressSpace representation, respectively.
Signature
ConsumeAvailableValue (
[in] PriceDataType ValueToConsume,
[out] 0:Int32 Status);| Argument | Description |
| ValueToConsume | For each entry of the SupportedAssetList, the number of assets to be paid out. |
| Status | Status of the execution of the method. If issues occurred during execution. 0 = Execution was successful. -1 = Not enough value to consume available Vendors may return a vendor specific status starting with number -16 or smaller. |
Method Result Codes (defined in Call Service)
| Result Code | Description |
| Bad_UserAccessDenied | See OPC 10000-4 for a general description. |
| Attribute | Value | ||||
| BrowseName | ConsumeAvailableValue | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:InputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
| 0:HasProperty | Variable | 0:OutputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |