Milan / Paylink System Manual Issue 1.5 29 January 2020
CONFIDENTIAL
Not to be disclosed without prior written permission from Aardvark Embedded Solutions Ltd
Page 10 of 71
A Paylink is connected to one or more dispenser devices, which can be used to achieve this payout.
Internally Paylink holds these devices in descending order of value and when a pay command is
issued it works down this list, paying as many base units as possible from each device in turn.
Each device request will be successful, or will result in nothing being paid, or will pay less than the
requested amount.
Where either nothing or less than the requested amount is paid then Paylink will automatically issue
another request on that device for the remainder. When two successive requests have resulted in
nothing being paid, then Paylink abandons the use of that device for this command, and will attempt
to pay the outstanding balance from lower value.
The application can exert limited control over progress of a payment by disabling specific dispensers,
which has the effect of causing the dispenser to be ignored when selecting which units to use for a
payment.
PaySpecific Function (1.12.6)
The alternative method of paying money out using a Paylink is by calling the SetDispenseQuantity()
function, once for each dispenser that is to be used for the payout to specify how many coins / notes
are required from that..
When all the required calls have been made, a single call to the PaySpecific() function will Paylink to
start processing the payout.
The call to the PaySpecific() function, will return the total amount to be paid in Paylink base units, in
many ways subsequent processing is the same as a that triggered by a Payout() call for this value.
Internally Paylink holds these devices in descending order of value and it works down this list, paying
as many base units as possible from each device in turn.
Each device request will be issued and the result used to update the Status of the relevant
Dispenser.
If the application disables specific dispensers, this will still have the effect of causing the dispenser to
be ignored when it is reached in this processing.
Processing during payout.
As money is paid out during either process, Paylink updates the total of all credit paid out as reported
by CurrentPaid().
Specifically, this value will increment as coins / notes are delivered, even though the
LastPayStatus() is still reporting PAY_ONGOING. For a note dispenser this value increments as
soon as the note is accessible, even though the payout doesn't terminate until it has been removed.
Whilst either payment command is being processed, the status of the system as reported by
LastPayStatus() is PAY_ONGOING - when the entire payout process is complete it will either report
PAY_FINISHED (indicating the value request has been paid out) or it will report the last failure code
that was processed.