Jump to content

Automated teller Machine Design


Recommended Posts

You will have 2 PCs connected together by a 9600 baud serial link such that one is the Bank and the other is 4 ATM machines each working independently. The Bank PC has precedent over the ATMs as long as the link is maintained. You will need to work in pairs with one student on each machine.

The functionality is as follows

Bank PC

  • Holds customer details including Username, Password(encrypted), current balance, overdraft limit, amount over overdraft allowed, Maximum cash removal at one time, Number of times per day transactions allowed.
  • The Amount of money held in each ATM machine and the denomoinations. It synchronises with ATMs regularly.
  • Security checks on selected cards (i.e. log all transactions for the card, including time and date, separately from normal log).
  • Adds & subtracts money to customer account and stops deposits being used for until cleared.
  • Validates the user information by checking input from theA ATM against data held. Limits the maximum amount a machine can pay in a time period.(i.e. if so many payments in sequence are for the maximum amount then set an alarm for that machine.) Keeps credit card for security failure or 3 times wrong password.
  • Runs an audit log of all transactions handled, where from, when, how much or what request.
  • The front panel should allow the current state of each ATM to be displayed, who is logged on and has buttons whose functions are, keep credit card and stop card use. Has data entry functions to allow new customer entry together with starting balances, overdraft limits etc. and a simple default password.
  • There will also be controls that allow the bank to add more money into each ATM and update the synchronisation accordingly

Each ATM

  • Will hold an Amount of £5, £10, £20, £50 notes in the machine.
  • Encrypts password. The plain text password is not known to the bank PC only the encrypted version
  • Amount to be withdrawn at a time (£10, £20, £30, £40, £50, £60, £80, £100) The ATM will work out different notes combinations for each amount so that the ATM can continue when some notes run out. When certain amounts can no longer be available then a warning must be displayed.
  • Requests for balance
  • Change password.
  • Slip showing money withdrawn
  • Deposit with receipt.
  • The ATM will respond to a ‘Keep card’ facility on instructions from bank.

Each ATM front panel will have enter Username, Enter password and select type of operation functions together with card removed and money taken buttons and money out and message displays. In event of a Communications breakdown the ATM will complete any transaction for a logged on customer and update the bank on restoration of communications

How it works

Customer puts ID into an ATM followed by Password.

Password encrypted and details sent to Bank.

Bank either rejects

Not recognised, or wrong password

or accepts

Customer enters type of request

Money request – send to bank which replies with maximum allowed varying from 0 – max per transaction or not allowed. An amount of Money is then requested and checked against the limits from the bank. The Money is output in notes available to a money out display (or nothing if out of cash). Card removed button pressed, money removed button pressed. The amount taken is sent to the bank for update of the current balance and the money out display is cleared

Balance – send to bank which replies with balance on communications display

Change password – enter old password, new password twice(check both are the same) send to bank which checks new is different to old (all encrypted)

Deposit - request amount sent to bank and add to balance. The bank will not make this available for withdrawal for a specified time period.

<H1 style="MARGIN: 0in 0in 0pt">Communications</H1>The system should be able to cope with the serial link being broken at different stages in the processing without crashing either program. Reconnecting the link should allow the programs continue normally without having to restart and any incomplete transactions to be updated.

Based on the above question.

I just want to know the implementation for it. I know how to design the ATM. But i have no idea how to put my design into serial link?Please guide me the implementation or give me some hints. Thank you

Link to comment

You will have 2 PCs connected together by a 9600 baud serial link such that one is the Bank and the other is 4 ATM machines each working independently. The Bank PC has precedent over the ATMs as long as the link is maintained. You will need to work in pairs with one student on each machine.

The functionality is as follows

Bank PC

  • Holds customer details including Username, Password(encrypted), current balance, overdraft limit, amount over overdraft allowed, Maximum cash removal at one time, Number of times per day transactions allowed.
  • The Amount of money held in each ATM machine and the denomoinations. It synchronises with ATMs regularly.
  • Security checks on selected cards (i.e. log all transactions for the card, including time and date, separately from normal log).
  • Adds & subtracts money to customer account and stops deposits being used for until cleared.
  • Validates the user information by checking input from theA ATM against data held. Limits the maximum amount a machine can pay in a time period.(i.e. if so many payments in sequence are for the maximum amount then set an alarm for that machine.) Keeps credit card for security failure or 3 times wrong password.
  • Runs an audit log of all transactions handled, where from, when, how much or what request.
  • The front panel should allow the current state of each ATM to be displayed, who is logged on and has buttons whose functions are, keep credit card and stop card use. Has data entry functions to allow new customer entry together with starting balances, overdraft limits etc. and a simple default password.
  • There will also be controls that allow the bank to add more money into each ATM and update the synchronisation accordingly

Each ATM

  • Will hold an Amount of £5, £10, £20, £50 notes in the machine.
  • Encrypts password. The plain text password is not known to the bank PC only the encrypted version
  • Amount to be withdrawn at a time (£10, £20, £30, £40, £50, £60, £80, £100) The ATM will work out different notes combinations for each amount so that the ATM can continue when some notes run out. When certain amounts can no longer be available then a warning must be displayed.
  • Requests for balance
  • Change password.
  • Slip showing money withdrawn
  • Deposit with receipt.
  • The ATM will respond to a ‘Keep card’ facility on instructions from bank.

Each ATM front panel will have enter Username, Enter password and select type of operation functions together with card removed and money taken buttons and money out and message displays. In event of a Communications breakdown the ATM will complete any transaction for a logged on customer and update the bank on restoration of communications

How it works

Customer puts ID into an ATM followed by Password.

Password encrypted and details sent to Bank.

Bank either rejects

Not recognised, or wrong password

or accepts

Customer enters type of request

Money request – send to bank which replies with maximum allowed varying from 0 – max per transaction or not allowed. An amount of Money is then requested and checked against the limits from the bank. The Money is output in notes available to a money out display (or nothing if out of cash). Card removed button pressed, money removed button pressed. The amount taken is sent to the bank for update of the current balance and the money out display is cleared

Balance – send to bank which replies with balance on communications display

Change password – enter old password, new password twice(check both are the same) send to bank which checks new is different to old (all encrypted)

Deposit - request amount sent to bank and add to balance. The bank will not make this available for withdrawal for a specified time period.

<H1 style="MARGIN: 0in 0in 0pt">Communications</H1>The system should be able to cope with the serial link being broken at different stages in the processing without crashing either program. Reconnecting the link should allow the programs continue normally without having to restart and any incomplete transactions to be updated.

Based on the above question.

I just want to know the implementation for it. I know how to design the ATM. But i have no idea how to put my design into serial link?Please guide me the implementation or give me some hints. Thank you

Link to comment

QUOTE (labviewRTS @ Oct 19 2008, 10:54 AM)

Based on the above question.

I just want to know the implementation for it. I know how to design the ATM. But i have no idea how to put my design into serial link?Please guide me the implementation or give me some hints. Thank you[/size]

HH but nonetheless:

Hi labviewRTS if serial comms is your issue ?? I recommend investigating NI VISA found on the Instrument IO>>VISA palette.

It is really easy to use - like other OOPy modules (e.g. File IO) create a VISA reference (set port config here), do methods: VISA read/write/other, close VISA reference.

You can also access properties-such as read bytes at port through nodes too.

I recommend searching the Example Finder as there is a basic read/write there that is handy to get started.

Instead of accessing a local file to verify transactions and get data, you just need a proxy to the Bank.

Sounds like a cool project.

Reminds me of an exam I once took.... :shifty:

Goodluck

JG

Link to comment

does VISA library work on RS-232? By the way,do you know how to design a cluster with strict typedef? I got Bank.Vi with me where i use Rendezvous, Semaphore and race condition. This is from the labview Basic II course which they ask us to modify a Bank.vi. Through the design, i have no clue on how am i going to put into a serial communication through VISA.

Haha=).. i am seating for my CLAD papers soon. So I need to get myself familar with all the basic stuffs..

Anyway, if you were a developer, how are you going to implement this projects? Mind to give me some hints on your state machine or input/output implementation? Sorry for troublesome you. But any help on that will be much appreciated.

BR,

LabviewRTS

QUOTE (jgcode @ Oct 19 2008, 03:08 AM)

HH but nonetheless:

Hi labviewRTS if serial comms is your issue ?? I recommend investigating NI VISA found on the Instrument IO>>VISA palette.

It is really easy to use - like other OOPy modules (e.g. File IO) create a VISA reference (set port config here), do methods: VISA read/write/other, close VISA reference.

You can also access properties-such as read bytes at port through nodes too.

I recommend searching the Example Finder as there is a basic read/write there that is handy to get started.

Instead of accessing a local file to verify transactions and get data, you just need a proxy to the Bank.

Sounds like a cool project.

Reminds me of an exam I once took.... :shifty:

Goodluck

JG

Link to comment

QUOTE (labviewRTS @ Oct 19 2008, 11:52 PM)

does VISA library work on RS-232? By the way,do you know how to design a cluster with strict typedef? I got Bank.Vi with me where i use Rendezvous, Semaphore and race condition. This is from the labview Basic II course which they ask us to modify a Bank.vi. Through the design, i have no clue on how am i going to put into a serial communication through VISA.

Haha=).. i am seating for my CLAD papers soon. So I need to get myself familar with all the basic stuffs..

Anyway, if you were a developer, how are you going to implement this projects? Mind to give me some hints on your state machine or input/output implementation? Sorry for troublesome you. But any help on that will be much appreciated.

Yes VISA works for RS232.

To design a strict type def right click on a control and select customise.

This will open up the edit screen.

Toggle the drop box under the run-time-menu from control to type def OR strict type def.

Exit and save the .ctl file. Now you have a type def.

If I was going to develop this project, and this is quickly and off the top of my head. I would design it to run locally first for debugging (keeping in mind parts which will have to be come distributed).

Once I knew all my logic was good and it work. I would create proxy's for the modules that need to communicate over serial - so serial comms is transparent to the modules that don't need to know about it.

You may want to look at using templates (.vit) so you can have 4 (or whatever) ATM's running from the same piece of code that can be spawned at run-time.

Link to comment

QUOTE (jgcode @ Oct 19 2008, 11:32 PM)

Yes VISA works for RS232.

To design a strict type def right click on a control and select customise.

This will open up the edit screen.

Toggle the drop box under the run-time-menu from control to type def OR strict type def.

Exit and save the .ctl file. Now you have a type def.

If I was going to develop this project, and this is quickly and off the top of my head. I would design it to run locally first for debugging (keeping in mind parts which will have to be come distributed).

Once I knew all my logic was good and it work. I would create proxy's for the modules that need to communicate over serial - so serial comms is transparent to the modules that don't need to know about it.

You may want to look at using templates (.vit) so you can have 4 (or whatever) ATM's running from the same piece of code that can be spawned at run-time.

Buddy, would you take a look at this Bank.VI zip which have all the bank design. I would like you to explain to me about the architecture. What is redzenvous do? and how the cluster work. This is not my work but i got it though the labview training. Please let me know whether this application can use to my projects and how am i going to put it to serial link, if i were to use this solutions?

Secondly, do you know what is the semaphore for?

Thirdly, i need you to teach me how to do printing when the customer choose the option to print the balance or the withdrawal slip? what function should I used?

Link to comment

QUOTE (TobyD @ Oct 21 2008, 05:07 PM)

HaHa! That's what I was thinking, Buddy. :thumbup:

Lolz..thank you for the interest but can you tell me how am i able to link it to RS-232 using VISA? another thing i need to know what is the disadvantage using Rendzevous and race condition, semaphore? I guess there's too much of global variable?What did you guyz think?

Another things is how do you create the control design?

Link to comment

QUOTE (jgcode @ Oct 25 2008, 11:43 PM)

Classic :thumbup:

Ah. I can see that this model is prone to race conditions. If it's a very busy street, a lot of people will want to use it simultaneously

when you say that, what do you mean? Do you mean it is not recommend to use race conditions. By the way, may I know whether race condition can use in VISA and serial links?

Link to comment

QUOTE (labviewRTS @ Oct 29 2008, 12:42 PM)

when you say that, what do you mean? Do you mean it is not recommend to use race conditions. By the way, may I know whether race condition can use in VISA and serial links?

what do you mean by 'use race condition' ? That is something that we want to avoid not 'use'. :!:

Please look up for the definition of the race condition within LabVIEW due to dataflow nature.

Your question would be: May i know whenever race conditions can be Occurred if I use VISA APIs for my application?

I hope you can find the answer to this matter (google or it is already in the Basics II book !?)

Regards,

Link to comment

QUOTE (labviewRTS @ Oct 28 2008, 09:42 PM)

Ah. I can see that this model is prone to race conditions. If it's a very busy street, a lot of people will want to use it simultaneously

when you say that, what do you mean? Do you mean it is not recommend to use race conditions. By the way, may I know whether race condition can use in VISA and serial links?

What do the previous posters mean? They're ridiculing you. Why? Because it's obvious that the problem you posted is a school assignment, and you are trying to get other people to solve the problem for you. That's called cheating. On this forum, posters like this are called Homework Hustlers (HH for short), and this is strongly frowned upon.

If you want to get help on this assignment, you need to demonstrate that you have made a significant effort towards solving the problem. Ask limited, well defined questions that address specific issues. Post examples of your work to show that you're really trying. Don't just ask "for the implementation."

Link to comment

QUOTE (BobHamburger @ Oct 29 2008, 11:23 AM)

What do the previous posters mean? They're ridiculing you. Why? Because it's obvious that the problem you posted is a school assignment, and you are trying to get other people to solve the problem for you. That's called cheating. On this forum, posters like this are called Homework Hustlers (HH for short), and this is strongly frowned upon.

I disagree with ridicule

Some helpful points were posted initially....

Then via an uncontrollable act of nature the topic was taken over..

...a little fun on the topic rather than at the user methinks.

Link to comment

QUOTE (BobHamburger @ Oct 29 2008, 03:23 AM)

What do the previous posters mean? They're ridiculing you. Why? Because it's obvious that the problem you posted is a school assignment, and you are trying to get other people to solve the problem for you. That's called cheating. On this forum, posters like this are called Homework Hustlers (HH for short), and this is strongly frowned upon.

If you want to get help on this assignment, you need to demonstrate that you have made a significant effort towards solving the problem. Ask limited, well defined questions that address specific issues. Post examples of your work to show that you're really trying. Don't just ask "for the implementation."

Excuse me!! YOu are damm wrong about me. Look at the Bank.NI that i has created?..I was asking question from there..What The!!Dont judge a books by its covers

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.