11-02-2016 12:00 PM
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
11-02-2016 01:50 PM
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.
11-02-2016 02:55 PM
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
11-02-2016 03:31 PM
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.
11-02-2016 03:34 PM
Thanks Crossrulz for your suggestion..
11-16-2016 11:11 AM
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
11-16-2016 11:24 AM
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).
11-17-2016 09:13 AM
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
11-17-2016 10:18 AM
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.