This section describes the use cases of CallProcedureEx(), CallProcedureExWait(), CallProcedureExResult() and CallProcedureExResultByName(). CallProcedureEx() has been introduced to properly handle asynchronous callprocedures (see also Synchronous Calling of Asynchronous Procedures).
A typical use case for which CallProcedureEx() has been introduced may look like this:
The part that'll be handled by CallProcedureEx() and its friends (in contrast to CallProcedure()) is the last one: It allows the HMI to wait for the asynchronous part to complete. Moreover, it allows the asynchronous part to return values to the HMI, such as the current axis position, axis errors, etc.
To get introduced how to use CallProcedureEx() and its friends, we show some common use cases below. Have a look at the API documentationof these functions:
And have a close look at the following use cases:
The same CallProcedureEx API can not only be used to call procedures implemented on INOS, but also procedures implemented in an inco_32 application that uses INCO communication internally, such as INIX. Often, the caller and the procedure are even in the same process, a case for which special optimization exists in libinco_32 (the call does not go via an INCOServer). This is the case which, for historical reasons, the discussion on page Synchronous Calling of Asynchronous Procedures is mainly concerned with, but the background information provided there may also be of interest to readers who are only interested in calling procedures on external Indel hardware targets running INOS. Procedures implemented in an inco_32 application can use the following additional inco_32 functions to communicate with their caller: