The Standardized Master Interface (SMI) is a generic interface which is set on top of the regular API of the stack. It matches the interface with other IO-Link standards and acts as a connecting interface for multiple clients. It also includes the configuration management and event dispatching.
Most services have ArgBlocks as their parameters. These ArgBlocks are made up of an identifier and contain with different content, depending on its type. The supported ArgBlocks are listed in a following chapter (see IOLM_SMI_EArgBlockID). If no ArgBlock is used "NULL" is passed instead of the ArgBlock parameter, e.g. for a request. Most SMI services are acknowledged by a separate confirmation. They are executed in the Mainloop. Some simple services are also available with direct confirmation. The normal API should not be used if the SMI is enabled.
The following code snippet shows how to initialize the SMI interface.
It is only required to provide the desired callbacks. There is a generic API for all services, or an API for each single service.
The ArgBlock IDs are listed in IOLM_SMI_EArgBlockID. The following structures are available