A coin count/routing Question...

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
jq
Posts: 19
Joined: Fri Jul 11, 2008 11:27 am

A coin count/routing Question...

Post by jq »

Hello everyone,

I have a dispenser (reported by MilanDiag.exe as a "MCL Serial Compact Hopper") in my system that the acceptor can route coins to if told to. When the program starts DefaultPath is initialised to be the main cash box, Path is the 5p Dispenser/Hopper and PathSwitchLevel is set to be the maximum capacity defined in the dispenser specifications (about 600) + PathCount - the current coin count in the dispenser. The problem is my dispenser always seems to state there are 0 coins in it, even if the coinLevel status is HIGH (and there are actually lots of coins in it).

Code: Select all


[code]myCoin.Path = ROUTE_TO_FIVE_DISP;
myCoin.DefaultPath = ROUTE_TO_MAIN_CASH_BOX;
myCoin.PathSwitchLevel = FIVE_PENCE_SWITCH_LEVEL + myCoin.PathCount - fiveDispenser.CoinCount;
[/code]

I guess all that stuff about routing the coins is kinda irrelevant, the question/problem is why is fiveDispenser.CoinCount always 0?

My thoughts are that
a) the dispenser doesn't report this value.
or
b) i've misunderstood how this value should be used.

In the case that a is true, how best can I achieve the coin routing described above (when the hopper gets full route to the main cash box)?

Thanks in advance.
davebush
Posts: 490
Joined: Fri Oct 22, 2004 12:20 pm

Post by davebush »

Hi,

Your system is working perfectly! There are (currently) three sorts of dispenser handled by Paylink - MDB changers, cctalk hoppers fitted with level sensors and cctalk hoppers without level sensors.

The MDB changers tell Paylink how many coins they have (although not always correctly), hoppers with level sensors rely on the coins to short together three plates - two at the bottom and one at the top.

If the top and bottom are shorted it’s full, if two at the bottom are shorted it’s not empty.

These are indicated by appropriate values in the CoinCountStatus:

Code: Select all

    DISPENSER_COIN_NONE     = 0,          /* No dispenser coin reporting */
    DISPENSER_COIN_LOW      = 1,          /* Less than the low sensor level */
    DISPENSER_COIN_MID      = 2,          /* Above low sensor but below high */
    DISPENSER_COIN_HIGH     = 3,          /* High sensor level reported */

    DISPENSER_ACCURATE      = -1,         /* Coin Count reported by Dispenser */
    DISPENSER_ACCURATE_FULL = -2,         /* The Dispenser is full */
None = Dispenser with no sensors.
Accurate = Dispenser that returns counts
Low, Mid & High = Dispenser with shorting plates.

Only if you get Accurate does CoinCount mean anything.
Aardvark software developer. Please put all communication on the problem through the board for the benefit of others.
jq
Posts: 19
Joined: Fri Jul 11, 2008 11:27 am

Post by jq »

So just to confirm my understanding, without a dispenser that can return a CoinCount value the automatic routing features are of no real usage?

If so, the way i'll do it will be something like:

Code: Select all

if(fiveDispenser.CoinCountStatus == DISPENSER_COIN_HIGH)
    myCoin.DefaultPath = ROUTE_TO_MAIN_CASH_BOX; 
else
    myCoin.DefaultPath = ROUTE_TO_FIVE_DISP;

and just run this after each deposit or payout and update the acceptor block.

Thanks for the clarification on this one :-)
davebush
Posts: 490
Joined: Fri Oct 22, 2004 12:20 pm

Post by davebush »

Close.
automatic routing features are of no real usage
Say rather, the automatic routing is useful mainly where there is no monitoring of coin levels by the hopper.
Aardvark software developer. Please put all communication on the problem through the board for the benefit of others.
Post Reply