From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Madison LabVIEW User Group Community

cancel
Showing results for 
Search instead for 
Did you mean: 

Code Challenge part 1

This is copied and pasted from another post, but I left out the "Part 3" section that we will do on the spot.

Casey

1a) The implementation must show the principle of the framework or architecture (what makes it unique to other frameworks / architectures) either implicitly or through documentation.

          (my loose definitions are frameworks are hidden necessary structures that we build upon and architecture is something visible for all to see)

1b) The implementation must show the principle of expansion within the framework or architecture either implicitly or through documentation.

1c) The implementation must include documented time to develop the initial revision and the time to develop the expanded revision.

1d) The implementation must document any available reference material for learning the framework or architecture used.

1e) The implementation must document the perceived level of familiarity with LabVIEW required to be effective with the framework or architecture. For example, LabVIEW core I and II with 3 months developing stand alone Windows applications.

1f) The implementation must document the perceived benefits and drawbacks of the framework or architecture implemented.

1g) All source code must be documented in combination with the framework / architecture documentation to provide a guide for people examining the code base. For example, inside a block diagram it may reference a #Reference_3 bookmark which is referred to in the accompanying guide documenation.

1h) An estimation of code complexity must be documented on a scale of 1-7 where 1 implies a simple implementation that protects from expansion, and 7 implies practically all the implementation is dedicated to expansion. For example, the single loop with event and a global variable would be a 1, and Actor would be a 7.

2a) The initial version (referred to as VI1_x where x is an instance number) must allow for the following behaviour

          i) Present 4 buttons to the user named Deposit, Withdraw, Query and Stop.

          ii) Present one floating point number control to the user

          iii) Present one floating point number indicator to the user

2b) The intial version must allow for a number to be stored and modified and queried as follows

          i) On creation of the first instance (VI1_0) of a user interface, the stored value must be initialised to 0.0

          ii) The Deposit button must add the value in the floating point number control (2aii) to the stored value and store it back. E.g. if the stored value was -12.0 and the control contained 5.0, then pressing deposit would store the number -7, overwriting the previous value of -12.

          iii) The Withdraw button must subtract the value in the floating point number control (2aii) from the stored value and store it back. E.g. if the stored value was -12.0 and the control contained 5.0, then pressing deposit would store the number -17, overwriting the previous value of -12.

          iv) The Query button must read the stored value and display it in the floating point number indicator to the user.

          v) The Stop button must stop and close all currently open instances of the first implementation.

          vi) Stopping may also close a user interface implementation.

2c) The initial implementation must demonstrate multiple visually identical copies of the user interface existing at the same time such that...

          i) Pressing deposit on VI1_1 (stored value 10.0, control set to 4) and then withdraw on VI1_2 (control set to 5.0) followed by query on VI1_0 would result in a value of 9.0 being displayed in the indicator of VI1_0

          ii) The implementation will only support atomic activity such that the stored value is dealt with in its entirety before the next activity regardless of the instance that requested the activity.

Casey Lamers


Phoenix, LLC


casey.lamers@phoenixwi.com


CLA, LabVIEW Champion


Check Out the Software Engineering Processes, Architecture, and Design track at NIWeek. 2018 I guarantee you will learn things you can use daily! I will be presenting!

0 Kudos
Message 1 of 3
(6,428 Views)

Casey,

Could you clarify requirements 2b)v and 2b)vi? Do mean that if STOP is pressed on ANY instance of the “ATM” that ALL instances will close, or just that one instance? And what do you mean by “Stopping”?

See you the 9th!

Thanks,

Erik

0 Kudos
Message 2 of 3
(5,581 Views)

How about this:

Stop button stops all instances. Closing the panel only stops that instance.

Casey

Casey Lamers


Phoenix, LLC


casey.lamers@phoenixwi.com


CLA, LabVIEW Champion


Check Out the Software Engineering Processes, Architecture, and Design track at NIWeek. 2018 I guarantee you will learn things you can use daily! I will be presenting!

0 Kudos
Message 3 of 3
(5,581 Views)