I have solved the ATM machine example for CLD. i request you all to review it and provide mr the valuable comments on it . So that i can improve on it.
Why do you have an array of strings for the states? You never have more than one element in the array and no mechanism for handling more than one if you had them.
You have some wires hidden behind other objects, particularly in several of the value changed event cases. This makes it more difficult to tell what those wires do.
The indicators for ATM Messages and Left and Right Menus do not have their labels showing on the BD. Although all the wires leading to them are labeled, I found it distracting to not have the indicator labels visible. I was double clicking them to see what they were.
If you enter alpha characters in a deposit transaction, you get the dialog warning about disallowed characters, .... and then it processes the transaction anyway. Try depositing "500.e" and check balances before and after.
You do not document why some shift registers are initialized and others are not.
Interesting that you only read the Account info file during init. This probably would not work on a real ATM system where multiple accesses to an account (from multiple machines) could occur while the transaction is taking place. I worked on ATM hardware design back in the early days of the devices and your approach would never have occurred to me.
I have not taken the exam yet, but I suspect that this might pass.
You should use a project for your application. Also, avoid the unnecessary bends in the wires. The controls and indicators should be documented. I don't think the requirements want the application to terminate after the 10 second timeout or when a user transactioin is completed. I am pretty sure that it should go back to the idle state to wait for new input. Imagine a real ATM having to be restarted after every transaction. Not very practical. Try to keep your block diagram neat. Think about aligning things such as all your refereences. I agree that this applcation is a bit challenging to follow.
The sample exam does have a (rather strange with respect to real life) requirement to timeout after 10 seconds of inactivity following the insertion of the card.
Timeout and exit? That is strange. I haven't looked at the sample requirements in a while.
Thanks for the comments...
i will improve on it . Regarding adding VI in project I have read somewhere that we do not need to add project and so i didnt. But anywy that is the good suggestion and i will take care of it.
Regarding termination of application it is mentioned in the requirement to terminate the application when the card is returned by pressing on the left menu item.
For the first comment I have read the file at the start of the application. and while updating I am writing into the file .Is it recommended to access the file in between also???
I would like to know whether this architecture(hybrid architechure) i.e event structure within state machine is considered for the CLD exam? Becuase in many posts i have read that it is recommended to follow the standard architecture ...where as this architecture is not available in the NI's standard templates??
As written, it might not for the various reasons expressed above. If those issues were addressed and corrected I don't see why it wouldn't pass.