Joined: 23 Nov 2006 Posts: 19270 Location: Inside the Matrix
For anyone to help, you need to post what you need to do and what restrictions you have. In what environment(s) are you going to implement? Is there to be new equipment or are you going to try to retrofit to existing platforms.
Is there some pressing reason to use atm rather than ip?
The more you post, the better we will be able to offer suggestions.
I STRONGLY hope that this is some kind of homework
I would never trust a financial institution relying on forum replies to design their ATM application... :-) :-)
an ATM application is not something that can be easily outlined in a short reply ( just to give a sample here are some concerns )
programming an ATM ( cash dispenser ) is not an easy task,
the steps You have outlined are maybe 10% of the work involved;
in such an application the most important parts are
"ERROR DETECTION AND RECOVERY"
timeouts, host communication (lack of), add as may as You like
the way You posed the question is not at all relevant to an ATM application
the data You ask for, and the outputs could be well suited for any terminal equipment ( screen + printer )
Just to give a sample of the flow..
the ATM monitor program will simply sit there waiting for an interrupt,
here a sample list:
.... add as many interrupts as required for hardware management
card reader interrupt
counting device interrupt
every action is interrupt driven and will always start from the main wait point..
to give You an idea of what could happen..
read the magnetic strip data ( it will contain also the residual pin trial count )
if the pin is wrong..
decrement the count
if residual trial count is 0 then retain the card, log locally, alert host
if user cancels the operation, update residual trial count, rewrite the magnetic strip, eject the card
if the pin is right
reset the count
now at the main waiting point You might get a card jam..
so alert host, prepare the atm for an orderly shotdown and a logo display of out of service
and so on and so on
if the pin is good, then
check if the customer has the availability for the amount requested,
check if the ATM has the availability for the amount requested
display the standard notes mix
ask the customer for a different notes mix
and so on
what if after a successful notes counting and the notes sitting in the pre eject station waiting for the customer to pick up its card You get a timeout
because the customer did not pick up the card ????
( send the notes sitting in the pre-eject workstation to the discard bin,
notify everybody of the negative response, flag the debit transaction as unsuccesfull, prepare for an ATM shutdown for a card jam
and so on and so on
I will not get into the details, but believe me...
I know what I am talking about
Joined: 14 Mar 2007 Posts: 8617 Location: Back in jolly old England
I would never trust a financial institution relying on forum replies to design their ATM application...
May I offer the following enhancement
IF Option1 : (Withdraw OF cash)
1. Ask for amount
2. check for balance available or not
3. If account = expat then leave balance of account unchanged
reduce the withdrawn amount from the balance