Certification

cancel
Showing results for 
Search instead for 
Did you mean: 

Question Reg. CLA

Dear All,

 

1. I have read the cla_exam_prep_guide_english, found that we have to define clear APIs for each modules.

 

2. In sample exam also there are APIs for each modules.

 

3.  Watched of the Video by Jim kring, CLA summit, explained about Public User event for commnication between modules.

 

4. I have found that if using user event for commnication between modules then no need for APIs for each modules.

 

Is it necessary to create a APIs for each modules or its just fine to have only one VI(module itself) for each module like user console(one VI), display console(one VI), Sensor interface(one VI) etc.

 

Thanks In advance.

Warm Regards

Hemant

CLD

0 Kudos
Message 1 of 9
(4,240 Views)

Regardless, you will still need an API.  But here is  what I have found over the years.

 

User Events are great for broadcasting data.  So you have a few options of how to do this.  You can have a User Event for each type of data you want to pass around, which can add up to a lot of events to register for and keep track of but it does allow for registering for only the events you want to handle.  The other option is to have an event that a single module uses to broadcast whatever data it needs to send, which makes it simpler to register for but you will need an API for processing the command data.  I prefer the former.

 

Queues are for sending messages to a specific module.  Therefore you need an API for sending specific commands through the same queue.  You can do the same thing with a User Event, just do not expose the event reference to anybody outside of the recieving module.

 

Now for the sake of the exam, yes you should set up as much of an API as possible.  At the very least, make the API shell and document what needs to be completed in each VI.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
0 Kudos
Message 2 of 9
(4,212 Views)

Thanks Crossrulz,

 

Can you please make me correct if i am wrong.

 

1. User event data type (cluster of variant as data  and string as command), this will be well suited for intercommunication and easy to pass whatever data is needed....As no need for APIs.

 

Can you please help me to understand where to use the APIs

 

2. Queues has been used for communication in the same module, in the module i am only reading queue ref.

For all the module the refs has been created before starting the module itself.

 

Can you please help me to understand where to use the APIs

 

Thanks in advance.

Hemant

0 Kudos
Message 3 of 9
(4,202 Views)

1. You will want APIs for decoding the messages recieved.  I typically use a VI for decoding the variant for flattened string data into the actual data.

 

2. For inside of the same module, I would not worry so much about APIs.  APIs are really needed for inter-process communications.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
0 Kudos
Message 4 of 9
(4,194 Views)

Thanks Crossrulz for your suggestion..

0 Kudos
Message 5 of 9
(4,192 Views)

Hello Crossrulz,

 

 i have one doubt about the error handler.

 

1. Centralized error handler?

It means we should have a one controller or centralized error API that talk with error API that we have included in to our all modules like user console, sensor etc.

 

2. or just having a FGV is fine for error handling..

 

Can you please help me in understanding about the term Centralized error handler, if possible.

 

Thanks

Hemant

0 Kudos
Message 6 of 9
(4,119 Views)

A centralized error handler is typically a Queued Message Handler.  So you will need an API for sending errors.  This API is typically really simple.

 

An Action Engine could also work.  I typically see the QMH setup simply because the error handling routine can run independent of the rest of the code instead of causing blocks (due to file writes, user prompts, etc).


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
0 Kudos
Message 7 of 9
(4,113 Views)

Thanks,

 

For database module its better have FGV, if used QHM then possiblity of hang of other modules.

 

As database have some steps or take some time to search database then send to the controller, this takes time if used QMH, right?

 

Can you please suggest fews point regarding  above point.

 

Hemant

 

 

0 Kudos
Message 8 of 9
(4,088 Views)

For the purposes of the exam, you are way over-thinking things.  Just choose an architecture and document how it is set up and why you went with that route.

 

In my opinion, I like having the database module as a QMH because it reduces coupling.  You can also just tell the module to save something and move on.  Only when performing querries will there be any issue of blocking, and only if your connection is slow and/or you are getting a lot of data from the database.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
0 Kudos
Message 9 of 9
(4,082 Views)