Certification

cancel
Showing results for 
Search instead for 
Did you mean: 

ATM Review

Hi,

 

Attached is my solution to the ATM sample exam, using a Producer Consumer loop. I recently took and failed my CLD. I knew I would probably score low in Functionality points but I thought I'd get enough in Style and Documentation to pass anyway. Well I fell 1.25 points short of passing Smiley Sad . I got 10 of 10 in documentation and 12 of 15 in Style. So with a few more Style points I would've made it. With that it mind I'd appreciate it if someone would look at my ATM solution and tell me what you think

 

thanks!

 

Jim

Jim Haas
0 Kudos
Message 1 of 22
(7,392 Views)

My observations:

 

  1. Project file is missing! You must use project!

I cannot give more info unfortunatelly since you uploaded a LV2014 version. At this PC I have only LV2012. If you downconvert your files I can have a look.

Regards!

 

ps.: why do you use big letters for all your subVI and CTRL names?

0 Kudos
Message 2 of 22
(7,382 Views)

regarding big letters, I was just trying to find a way to cut corners and go as fast as I could for the exam. So I thought I'd just go all big letters.

Jim Haas
0 Kudos
Message 3 of 22
(7,374 Views)

Here is the ATM project in LV 2011, with a project

 

Regards

Jim Haas
0 Kudos
Message 4 of 22
(7,370 Views)
  1. You forget to put your ctrls and subVIs in a folder under the project tree.
  2. Create a Documentation folder too, and make a html report of your project, and copy these files into this doc folder. This is what I forgot to do at my CLD exam 😞
  3. Do not forget to put comment into ALL cases of the Event structure and the Case structure...
  4. Some wire terminals have missing values, you lose here again points! (the boolean values) Never use the option "Use default if unwired".
  5. Labels are missing! Show labels at all constants (typdef, etc...)
  6. No description for the cluster, you must also use a custom icon! Another big problem: you use a typdef enum ctrl, called "ATM Commands.ctrl". But you put this control into a cluster which is NOT a typdef! It should be a typdef too (so the cluster including the enum typdef and the variant data)!
  7. Non default value usage of your cluster (which is actually not a typdef, but it should be, see above). Always use the "Bundle by name" method before inserting your cluster into the Queue. You also lose points here.
  8. Functionality problems:
    1. Stop button does not stop the application (you forgot to send stop msg to the consumer loop)
    2. The buttons do not behave as described in the spec pdf (use the Disable/Enable property nodes)
    3. Inserting the card does not focus the cursor into the text field.
    4. Several other problems, for example the "fast cash" button increases the balance, but it should decrease it with 50 $.

So after a quick looking at your code these are my thoughts. I believe with some more careful practice you can do it much better. Actually if your documentation and style is enough good, you do not need too much points from Functionality. But because of the above described problems, you would lose much points from style too, which is a problem...

 

Message 5 of 22
(7,365 Views)

Thanks for looking at my code! I am going to review and incorporate your advice. Quick question: will "Use default if unwired"  and non usaeage of a project format, actually result in a loss of points? I ask because I didn't notice any comments pertaining to that in the Style results on the CLD.

 

Thanks again! !

 

Regards

 

 

 

Jim Haas
0 Kudos
Message 6 of 22
(7,359 Views)

@JHaas wrote:

Thanks for looking at my code! I am going to review and incorporate your advice. Quick question: will "Use default if unwired"  and non usaeage of a project format, actually result in a loss of points? I ask because I didn't notice any comments pertaining to that in the Style results on the CLD.

 

Thanks again! !

 

Regards


I think this depends on the grader. But people said in this forum that they got point deduction because of the "Use default if unwired" and "non default value usage of clusters typdefs".

http://forums.ni.com/t5/Certification/Non-default-used-on-typedefined-constants/td-p/1797408

 

edit: by the way, how long you had to wait for the results? My CLD was on the 5th of December, but I guess I only get the results in 2015...or maybe they can do it before Christmas...would be nice 🙂

0 Kudos
Message 7 of 22
(7,357 Views)

I got mine in 32 days

Jim Haas
0 Kudos
Message 8 of 22
(7,347 Views)

Hi Jim,

 

a few more points:

 

documentation:

- front panel controls are not documented (they do have tip strips though)

- front panel controls (clusters) have not been converted to type definitions

- comments in vi documentation/properties generally too short

- no summary print (see Blokk)

- all subVIs have to be part of the project ... when you look at dependencies there should be nothing except for the vi.lib folder

- no comments in structures

- some subVIs have none standard icons (header plus bottom bit, e.g. File utility)

- Withdrawal money.vi is misleading as it also deposits

 

style:

- don't use all caps please! I feel like constantly being shouted at and don't know why ... haven't done anyhting wrong

- don't use default values coming out of structures (case structure, event structure)

- don't change the default values of type defed constants. See here: I'm a link, click me.

- on that one as well: your queue data is not type defed

- the connector pane of user account info.vi is quite a mess. Use the default connector pane and use type defed clusters if you would otherwise run out of terminals

- money handler.vi you used a bundle without giving it the definition of the cluster resulting in a coercion dot

- Money math and save.vi a lot of crossed wires

- File Utility with the for loop plus numeric case structure you have basically created a stacked sequence structure ... also no comments and ...

- backwards wires

- account handler.vi has a case structure ... with ONE case (and no comment that things might not be fully implemented yet)

- connector pane of the account handler is also too busy (see account info.vi)

 

Functionality:

- haven't looked at it

 

from your initial comment I take it that you concentrated mostly on functionality this time. I would think that you would have probably got more points in that category but you would have got absolutely hammered for the points I've raised (estimate 5/10 in documentation and 5-7/15 in style). If you had 10/10 in documentation and 12/15 in style before you are on a good way. What was the criticism of style on the feedback form? See it that way: with that score you are nearly there ... this is not the time to completely change your game plan! This is the time to fine tune to get you over the finish line.

0 Kudos
Message 9 of 22
(7,320 Views)

Thankyou for the detailed look at what I did. Actually on the CLD  I did not use a project format. I received 12/15 for style and 10/10 for documentation. I got a lowly 4.74 points for functionality. The comments for Style were:

 

Controls not wired from appropriate side of terminal. Unused code on block diagram. Wires objects overlapping. Hidden objects in structures. VI inadequately modularized. controls overlapping on subVI front panel.

 

I might have actually scored enough to pass if I'd just taken the time to straighten wires and neatenup the panels. Smiley Sad

 

Thanks again for looking at my code

 

 

Jim Haas
0 Kudos
Message 10 of 22
(7,313 Views)