General Concept of Handshake

The communication process in the LumiScan CamDriver application is based on the general concept of handshake. The naming convention for handshake parameters usually consists of the functionality and the names -ready or -request.

The handshake works for every operation. Most operations can also be started with a single write to their execute node — see Execute a Method for a comparison of the two ways.

Table 1. Table 1: General Concept of Handshake: Address
Address Description

<parent address>/<functionality name>/ready

Read-Only, controlled by our app to indicate whether the relevant functionality is allowed to be executed.

<parent address>/<functionality name>/request

Writable. It is used by user to trigger our application to execute relevant functionality.

Functionality Execution

To avoid repeating the entire address, in this section the invariant part containing the parent address and the variable functionality name (capture, connect-camera, disconnect-camera) have been replaced by XXX.
Thus, the address: hdvisionsystems/lumiscan-cam-driver/<camera name>/control/connect-camera/ready will be written as XXX/ready.

Accordingly, the address: hdvisionsystems/lumiscan-cam-driver/<camera name>/control/connect-camera/request will be written as XXX/request.

Make sure there is only one process is accessing XXX/request at a time.
The result of execution is undefined when:
  1. ProcessA set XXX/request to True.

  2. ProcessB set XXX/request to False without considering ProcessA.

  3. Our application might therefore miss XXX/request from ProcessA.

In order to execute a functionality, you need to run the following steps (see also Functionality Execution Steps):

  1. Wait until XXX/ready is set to True.

  2. Set XXX/request to True.

  3. XXX/ready changes to False.

  4. Set XXX/request to False.

  5. Start executing relevant functionality.

  6. Execution finished.

  7. XXX/ready is automatically set to True again.

Functionality Execution Steps
Figure 1. Functionality Execution Steps