Inhibited dispensers are sometimes used by AESImhei.Payout()

Support for the Milan Intelligent interface, sold by Money Controls as the Paylink USB unit and for the earlier PCI card version.

Moderators: aardvark, davebush, Admin

Post Reply
dotnetguy
Posts: 17
Joined: Wed Nov 30, 2016 2:56 pm

Inhibited dispensers are sometimes used by AESImhei.Payout()

Post by dotnetguy »

Correct me if I'm wrong, but I have understood that when dispenser is inhibited then paylink should never be able to dispense from it.

However it has happened more than once with our kiosk.
At this moment we don't have paylink's logs for that situation, because they seems to have a short life span by default. We will increase the log file size from Standard.cfg

Our kiosk dispenser setup:
3 token hoppers, 3 coin hopper (0.5, 1.00 and 2.00 eur)

Our application algorithm to dispense something is following:

1) It reads DispenserBlock snapshots.
2) It flips inhibit flag to 0 on that dispenser that our application wants to use and to 1 that it does not want to use. Decision what to use and what not, is predefined by addresses. For example our application assumes that token hoppers are at address 6,7,8 and coin hoppers are at 3,4,5 + note dispneser at address 1.
3) Then it writes that snapshot back to paylink.
4) call AESImhei.Payout(amount) at let paylink to decide which hoppers it needs to use.

For long time we used that algorithm and it seemed to work, but since we started to notice weird balance issues, we added re-check once all dispenser were written to paylink.

So once all snapshots have been looped over, our application reads all DispenserBlocks all over to check if correct dispensers are enabled/disabled.

However even when we implemented that post-setup validation, paylink still managed to use dedicated coin hopper over token hopper.

So far coins have been dispensed instead of tokens.

That situation occurs probably once for every 200-500 transactions.

So my questions:
1) Have you had a similar situation where inhibited dispenser is still used by AESImhei.Payout(int)?
2) Would you recommend to use SetDispenseQuantity and PaySpecific instead of flipping inhibit flag and calling Payout()?
davebush
Posts: 482
Joined: Fri Oct 22, 2004 12:20 pm

Re: Inhibited dispensers are sometimes used by AESImhei.Payo

Post by davebush »

Sorry for the delay - holiday and crises.

The algorithm you describe is perfect. Either there's a bug in Paylink or in your implementation - until we get logs there's not much I can do. As soon as I see a log it should be obvious what's happening.
Aardvark software developer. Please put all communication on the problem through the board for the benefit of others.
dotnetguy
Posts: 17
Joined: Wed Nov 30, 2016 2:56 pm

Re: Inhibited dispensers are sometimes used by AESImhei.Payo

Post by dotnetguy »

Ok. Thanks.

Due to recent requirements I started to use SetDispenseQuantity and PaySpecific for token hoppers.

If that issue still comes up, I'll hope to have paylink logs to present.
davebush
Posts: 482
Joined: Fri Oct 22, 2004 12:20 pm

Re: Inhibited dispensers are sometimes used by AESImhei.Payo

Post by davebush »

OK - I should respond quicker next time.
Aardvark software developer. Please put all communication on the problem through the board for the benefit of others.
Post Reply