IO-Link Master  1.03.03
SMI Config

Overview

SMI Configuration.

Typedefs

typedef void(* IOLM_SMI_CBMasterIdentificationCnf) (INT8U u8ClientID_p, INT16U u16Error_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
 Get Master identification confirmation callback. More...
 
typedef void(* IOLM_SMI_CBMasterConfigurationCnf) (INT8U u8ClientID_p, INT16U u16Error_p)
 Get Master configuration confirmation callback. More...
 
typedef void(* IOLM_SMI_CBPortConfigurationCnf) (INT8U u8ClientID_p, INT8U u8Port_p, INT16U u16Error_p)
 Set port configuration confirmation callback. More...
 
typedef void(* IOLM_SMI_CBReadbackPortConfigurationCnf) (INT8U u8ClientID_p, INT8U u8Port_p, INT16U u16Error_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
 Read back port configuration confirmation callback. More...
 
typedef void(* IOLM_SMI_CBPortStatusCnf) (INT8U u8ClientID_p, INT8U u8Port_p, INT16U u16Error_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
 Get port status confirmation callback. More...
 
typedef void(* IOLM_SMI_CBDSBackupToParServCnf) (INT8U u8ClientID_p, INT8U u8Port_p, INT16U u16Error_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
 Backup to parameter server confirmation callback. More...
 
typedef void(* IOLM_SMI_CBDSBackupFromParServCnf) (INT8U u8ClientID_p, INT8U u8Port_p, INT16U u16Error_p)
 Backup from parameter server confirmation callback. More...
 

Functions

IOL_FUNC_DECL void IOLM_SMI_vMasterIdentificationReq (INT8U u8ClientID_p)
 Get Master identification. More...
 
IOL_FUNC_DECL void IOLM_SMI_vMasterConfigurationReq (INT8U u8ClientID_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
 Set Master configuration. More...
 
IOL_FUNC_DECL void IOLM_SMI_vPortConfigurationReq (INT8U u8ClientID_p, INT8U u8Port_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
 Set port configuration. More...
 
IOL_FUNC_DECL void IOLM_SMI_vReadbackPortConfigurationReq (INT8U u8ClientID_p, INT8U u8Port_p)
 Read back port configuration. More...
 
IOL_FUNC_DECL void IOLM_SMI_vPortStatusReq (INT8U u8ClientID_p, INT8U u8Port_p)
 Get port status. More...
 
IOL_FUNC_DECL INT16U IOLM_SMI_u16PortStatusReqCnf (INT8U u8Port_p, INT16U *pu16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
 Get port status request and confirmation. More...
 
IOL_FUNC_DECL void IOLM_SMI_vDSBackupToParServReq (INT8U u8ClientID_p, INT8U u8Port_p)
 Backup to parameter server. More...
 
IOL_FUNC_DECL void IOLM_SMI_vDSBackupFromParServReq (INT8U u8ClientID_p, INT8U u8Port_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
 Backup from parameter server. More...
 
IOL_FUNC_DECL INT16U IOLM_SMI_u16PortPowerOffOnReqCnf (INT8U u8Port_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
 Port power off on request and confirmation. More...
 

Typedef Documentation

◆ IOLM_SMI_CBDSBackupFromParServCnf

IOLM_SMI_CBDSBackupFromParServCnf

Backup from parameter server confirmation callback.

With the help of this service, an SMI client such as a gateway application is able to restore the technology parameter set of a Device within Data Storage from an upper level parameter server. Confirmation to the IOLM_SMI_vDSBackupFromParServReq request.

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.
[in]u16Error_pError message as IOL_EErrorType.
See also
IOLM_SMI_SCallbacks, IOLM_SMI_vInit, IOLM_SMI_EArgBlockID

◆ IOLM_SMI_CBDSBackupToParServCnf

IOLM_SMI_CBDSBackupToParServCnf

Backup to parameter server confirmation callback.

With the help of this service, an SMI client such as a gateway application is able to retrieve the technology parameter set of a Device from Data Storage and back it up within an upper level parameter server. Confirmation to the IOLM_SMI_vDSBackupToParServReq request.

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.
[in]u16Error_pError message as IOL_EErrorType.
[in]u16ArgBlockLength_pLength of ArgBlock.
[in]pu8ArgBlock_pData pointer which points to the backup to parameter server.
See also
IOLM_SMI_SCallbacks, IOLM_SMI_vInit, IOLM_SMI_EArgBlockID

◆ IOLM_SMI_CBMasterConfigurationCnf

IOLM_SMI_CBMasterConfigurationCnf

Get Master configuration confirmation callback.

This callback service is called by the stack and is used to get the general configuration of the Master. Confirmation to the IOLM_SMI_vMasterConfigurationReq request.

Parameters
[in]u8ClientID_pClient ID.
[in]u16Error_pError message as IOL_EErrorType.
See also
IOLM_SMI_SCallbacks, IOLM_SMI_vInit, IOLM_SMI_EArgBlockID

◆ IOLM_SMI_CBMasterIdentificationCnf

IOLM_SMI_CBMasterIdentificationCnf

Get Master identification confirmation callback.

Confirmation callback to a request of the Master identification from the stack to the IOLM_SMI_vMasterIdentificationReq request. Since this is hardware specific, it has to be implemented in the application code.

Parameters
[in]u8ClientID_pClient ID.
[in]u16Error_pError message as IOL_EErrorType.
[in]u16ArgBlockLength_pLength of the ArgBlock.
[in]pu8ArgBlock_pData pointer which points to the master identification (IOLM_SMI_SMasterident).
Example
void IOLM_SMI_vMasterIdentificationCnf(INT8U u8ClientID_p, INT16U u16Error_p,
INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
{
IOLM_SMI_SMasterident *psuMasterIdent = (IOLM_SMI_SMasterident *)pu8ArgBlock_p;
psuMasterIdent->u16ArgBlockID = IOLM_SMI_ENDIAN_16(IOLM_SMI_eArgBlockID_MasterIdent);
...
// ToDo: Insert application specific code here
}
See also
IOLM_SMI_SCallbacks, IOLM_SMI_vInit, IOLM_SMI_EArgBlockID

◆ IOLM_SMI_CBPortConfigurationCnf

IOLM_SMI_CBPortConfigurationCnf

Set port configuration confirmation callback.

With the help of this service, an SMI client such as a gateway application launches the indicated Master port and the connected Device using the elements in parameter PortConfigList. The service shall be accepted immediately and performed without delay. Content of Data Storage for that port will be deleted at each new port configuration via "DS_Delete". Confirmation to the IOLM_SMI_vPortConfigurationReq request.

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.
[in]u16Error_pError message as IOL_EErrorType.
See also
IOLM_SMI_SCallbacks, IOLM_SMI_vInit, IOLM_SMI_EArgBlockID

◆ IOLM_SMI_CBPortStatusCnf

IOLM_SMI_CBPortStatusCnf

Get port status confirmation callback.

This service allows for retrieval of the effective status of the indicated Master port. Confirmation to the IOLM_SMI_vPortStatusReq request. See also IOLM_SMI_u16PortStatusReqCnf for a combined request/confirmation service.

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.
[in]u16Error_pError message as IOL_EErrorType.
[in]u16ArgBlockLength_pLength of ArgBlock.
[in]pu8ArgBlock_pData pointer which points to the port status (IOLM_SMI_SPortStatusList).
Example
void IOLM_SMI_vPortStatusCnf(INT8U u8ClientID_p, INT8U u8Port_p, INT16U u16Error_p,
INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
{
IOLM_SMI_SPortStatusList *psuPortStatus = (IOLM_SMI_SPortStatusList *)pu8ArgBlock_p;
// ArgBlockID
psuPortStatus->u16ArgBlockID;
// Port mode (See IOLM_SMI_EPortMode)
psuPortStatus->u8PortStatusInfo; // See #IOLM_SMI_EPortStatus.
...
// ToDo: Insert application specific code here
}
See also
IOLM_SMI_SCallbacks, IOLM_SMI_vInit, IOLM_SMI_EArgBlockID

◆ IOLM_SMI_CBReadbackPortConfigurationCnf

IOLM_SMI_CBReadbackPortConfigurationCnf

Read back port configuration confirmation callback.

This service allows for retrieval of the effective configuration of the indicated Master port. Confirmation to the IOLM_SMI_vReadbackPortConfigurationReq request.

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.
[in]u16ArgBlockLength_pLength of ArgBlock.
[in]pu8ArgBlock_pData pointer which points to the port configuration (IOLM_SMI_SPortConfigList).
Example
void IOLM_SMI_vReadbackPortConfigurationCnf(INT8U u8Port_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
{
IOLM_SMI_SPortConfigList *psuPortConfig = (IOLM_SMI_SPortConfigList *)pu8ArgBlock_p;
// ArgBlockID
psuPortConfig->u16ArgBlockID;
// Port mode (See IOLM_SMI_EPortMode)
psuPortConfig->u8PortMode;
...
// ToDo: Insert application specific code here
}
See also
IOLM_SMI_SCallbacks, IOLM_SMI_vInit, IOLM_SMI_EArgBlockID

Function Documentation

◆ IOLM_SMI_u16PortPowerOffOnReqCnf()

IOL_FUNC_DECL INT16U IOLM_SMI_u16PortPowerOffOnReqCnf ( INT8U  u8Port_p,
INT16U  u16ArgBlockLength_p,
INT8U pu8ArgBlock_p 
)

Port power off on request and confirmation.

This service allows for switching power of a particular port off and on.

Parameters
[in]u8Port_pPort ID.
[in,out]u16ArgBlockLength_pPointer which points to the length of ArgBlock.
[in,out]pu8ArgBlock_pData pointer which points to the PortPowerOffOn data (IOLM_SMI_SPortPowerOffOn).
Returns
Error as IOL_EErrorType
Example
IOLM_SMI_SPortPowerOffOn suPortPowerOffOn;
INT16U u16Error;
// Fill in request
suPortPower.u16ArgBlockID = IOLM_SMI_ENDIAN_16(IOLM_SMI_eArgBlockID_PortPowerOffOn);
suArgBlock.pu8ArgBlock = (INT8U*)&suPortPowerOffOn;
suArgBlock.u16ArgBlockLength = sizeof(suPortPowerOffOn);
suArgBlock.u16ArgBlockLengthMax = sizeof(suPortPowerOffOn);
// Set PowerOff time to 500 ms and select ONE_TIME_SWITCH_OFF to switch off port power only for 500 ms.
// To switch off permanently use IOLM_SMI_ePortPowerMode_OFF
// and to switch on use IOLM_SMI_ePortPowerMode_ON
suPortPower.u8PortPowerMode = (INT8U)IOLM_SMI_ePortPowerMode_ONE_TIME_SWITCH_OFF;
suPortPower.u16PowerOffTime = IOLM_SMI_ENDIAN_16(500);
u16Error = (IOL_EErrorType)IOLM_SMI_u16PortPowerOffOnCnf(u8Port, sizeof(IOLM_SMI_SPortPowerOffOn), &suPortPowerOffOn);
if (u16Error =/= IOL_eErrorType_NONE)
{
// ToDo: Insert application specific code here
}

◆ IOLM_SMI_u16PortStatusReqCnf()

IOL_FUNC_DECL INT16U IOLM_SMI_u16PortStatusReqCnf ( INT8U  u8Port_p,
INT16U pu16ArgBlockLength_p,
INT8U pu8ArgBlock_p 
)

Get port status request and confirmation.

This service allows for retrieval of the effective status of the indicated Master port. It combines the request (IOLM_SMI_vPortStatusReq) and confirmation (IOLM_SMI_CBPortStatusCnf) service.

Parameters
[in]u8Port_pPort ID.
[in,out]pu16ArgBlockLength_pPointer to length of ArgBlock.
[in,out]pu8ArgBlock_pData pointer which points to the port status (IOLM_SMI_SPortStatusList).
Returns
Error as IOL_EErrorType
Example
INT16U u16Length = sizeof(IOLM_SMI_SPortStatusList);
INT16U u16Error;
// Get Port Status
u16Error = IOLM_SMI_u16PortStatusReqCnf(u8Port, &u16Length, (INT8U *)&suPortStatus);
if (u16Error == IOL_eErrorType_NONE)
{
// ToDo: Insert application specific code here
}

◆ IOLM_SMI_vDSBackupFromParServReq()

IOL_FUNC_DECL void IOLM_SMI_vDSBackupFromParServReq ( INT8U  u8ClientID_p,
INT8U  u8Port_p,
INT16U  u16ArgBlockLength_p,
INT8U pu8ArgBlock_p 
)

Backup from parameter server.

With the help of this service, an SMI client such as a gateway application is able to restore the technology parameter set of a Device within Data Storage from an upper level parameter server. The answer to the request is the function IOLM_SMI_CBDSBackupFromParServCnf.

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.
[in]u16ArgBlockLength_pLength of ArgBlock.
[in]pu8ArgBlock_pData pointer which points to the backup to parameter server.

◆ IOLM_SMI_vDSBackupToParServReq()

IOL_FUNC_DECL void IOLM_SMI_vDSBackupToParServReq ( INT8U  u8ClientID_p,
INT8U  u8Port_p 
)

Backup to parameter server.

With the help of this service, an SMI client such as a gateway application is able to retrieve the technology parameter set of a Device from Data Storage and back it up within an upper level parameter server. The answer to the request is the function IOLM_SMI_CBDSBackupToParServCnf.

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.

◆ IOLM_SMI_vMasterConfigurationReq()

IOL_FUNC_DECL void IOLM_SMI_vMasterConfigurationReq ( INT8U  u8ClientID_p,
INT16U  u16ArgBlockLength_p,
INT8U pu8ArgBlock_p 
)

Set Master configuration.

This service allows to set the general configuration of the Master. The answer to the request is the function IOLM_SMI_CBMasterConfigurationCnf.

Parameters
[in]u8ClientID_pClient ID.
[in]u16ArgBlockLength_pLength of the ArgBlock.
[in]pu8ArgBlock_pData pointer which points to the Master configuration (IOLM_SMI_SVoidArgBlock).
Example
// ToDo: Set up suMasterConfig parameters
sizeof(suMasterConfig),
(INT8U *)&suMasterConfig);

◆ IOLM_SMI_vMasterIdentificationReq()

IOL_FUNC_DECL void IOLM_SMI_vMasterIdentificationReq ( INT8U  u8ClientID_p)

Get Master identification.

Request of the Master identification. The answer to the request is the function IOLM_SMI_CBMasterIdentificationCnf.

Parameters
[in]u8ClientID_pClient ID.

◆ IOLM_SMI_vPortConfigurationReq()

IOL_FUNC_DECL void IOLM_SMI_vPortConfigurationReq ( INT8U  u8ClientID_p,
INT8U  u8Port_p,
INT16U  u16ArgBlockLength_p,
INT8U pu8ArgBlock_p 
)

Set port configuration.

With the help of this service, an SMI client such as a gateway application launches the indicated Master port and the connected Device using the elements in parameter PortConfigList. The service shall be accepted immediately and performed without delay. Content of Data Storage for that port will be deleted at each new port configuration via "DS_Delete". The answer to the request is the function IOLM_SMI_CBPortConfigurationCnf.

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.
[in]u16ArgBlockLength_pLength of the ArgBlock.
[in]pu8ArgBlock_pData pointer which points to the port configuration (IOLM_SMI_SPortConfigList).
Example
// Set up port configuration ArgBlock
suPortConfig.u16ArgBlockID = IOLM_SMI_ENDIAN_16(IOLM_SMI_eArgBlockID_PortConfigList);
suPortConfig.u8PortMode = IOLM_SMI_ePortMode_IOL_AUTOSTART;
suPortConfig.u8ValidationBackup = IOLM_SMI_ePortValBack_NoDeviceCheck;
suPortConfig.u8IQBehavior = IOLM_SMI_ePortIQBehavior_NotSupported;
// If IOLM_SMI_ePortValBack_NoDeviceCheck is set,
// the stack will retrieve the following values from the device
suPortConfig.u8PortCycleTime = 0;
suPortConfig.u16VendorID = 0;
suPortConfig.u32DeviceID = 0;
u8Port,
sizeof(suPortConfig),
(INT8U *)&suPortConfig);

◆ IOLM_SMI_vPortStatusReq()

IOL_FUNC_DECL void IOLM_SMI_vPortStatusReq ( INT8U  u8ClientID_p,
INT8U  u8Port_p 
)

Get port status.

This service allows for retrieval of the effective status of the indicated Master port. The answer to the request is the function IOLM_SMI_CBPortStatusCnf. See also IOLM_SMI_u16PortStatusReqCnf for a combined request/confirmation service.

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.

◆ IOLM_SMI_vReadbackPortConfigurationReq()

IOL_FUNC_DECL void IOLM_SMI_vReadbackPortConfigurationReq ( INT8U  u8ClientID_p,
INT8U  u8Port_p 
)

Read back port configuration.

This service allows for retrieval of the effective configuration of the indicated Master port. The answer to the request is the function IOLM_SMI_CBReadbackPortConfigurationCnf.

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.
IOLM_SMI_SPortPowerOffOn::u16ArgBlockID
INT16U u16ArgBlockID
Big endian.
Definition: IOLM_SMI_Types.h:735
IOL_EErrorType
IOL_EErrorType
This enumeration indicates the permissible ISDU ErrorTypes resulting from the Device application.
Definition: IOL_Types.h:528
IOLM_SMI_SVoidArgBlock
This structure is used as general and void ArgBlock.
Definition: IOLM_SMI_Types.h:322
IOLM_SMI_SPortConfigList::u16ArgBlockID
INT16U u16ArgBlockID
Big endian.
Definition: IOLM_SMI_Types.h:458
IOLM_SMI_SPortStatusList
This structure is used to store port status.
Definition: IOLM_SMI_Types.h:563
IOLM_SMI_SPortPowerOffOn
This structure is used for PortPowerOffOn requests.
Definition: IOLM_SMI_Types.h:734
IOLM_SMI_SMasterident::u16ArgBlockID
INT16U u16ArgBlockID
Big endian.
Definition: IOLM_SMI_Types.h:348
IOLM_SMI_vMasterConfigurationReq
void IOLM_SMI_vMasterConfigurationReq(INT8U u8ClientID_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
Set Master configuration.
Definition: IOLM_SMI.c:2940
IOLM_SMI_SPortConfigList::u32DeviceID
INT32U u32DeviceID
Big endian.
Definition: IOLM_SMI_Types.h:464
IOLM_SMI_vPortConfigurationReq
void IOLM_SMI_vPortConfigurationReq(INT8U u8ClientID_p, INT8U u8Port_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
Set port configuration.
Definition: IOLM_SMI.c:2859
IOLM_SMI_SPortConfigList
This structure is used to store port configuration.
Definition: IOLM_SMI_Types.h:457
INT16U
uint16_t INT16U
16 bit unsigned integer
Definition: IOL_Port_Types.h:44
IOLM_SMI_u16PortStatusReqCnf
INT16U IOLM_SMI_u16PortStatusReqCnf(INT8U u8Port_p, INT16U *pu16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
Get port status request and confirmation.
Definition: IOLM_SMI.c:807
IOLM_SMI_SPortConfigList::u8ValidationBackup
INT8U u8ValidationBackup
See IOLM_SMI_EValidationBackup.
Definition: IOLM_SMI_Types.h:460
IOLM_SMI_SPortConfigList::u8IQBehavior
INT8U u8IQBehavior
See IOLM_SMI_EIQBehavior.
Definition: IOLM_SMI_Types.h:461
IOLM_SMI_SPortStatusList::u8PortStatusInfo
INT8U u8PortStatusInfo
IOLM_SMI_EPortStatus.
Definition: IOLM_SMI_Types.h:565
IOL_eErrorType_NONE
@ IOL_eErrorType_NONE
No error.
Definition: IOL_Types.h:530
IOLM_SMI_SPortConfigList::u16VendorID
INT16U u16VendorID
Big endian.
Definition: IOLM_SMI_Types.h:463
IOLM_SMI_SPortStatusList::u16ArgBlockID
INT16U u16ArgBlockID
Big endian.
Definition: IOLM_SMI_Types.h:564
IOLM_SMI_SPortConfigList::u8PortMode
INT8U u8PortMode
See IOLM_SMI_EPortMode.
Definition: IOLM_SMI_Types.h:459
IOLM_SMI_SMasterident
This structure is used to get Master identification.
Definition: IOLM_SMI_Types.h:347
INT8U
uint8_t INT8U
8 bit unsigned integer
Definition: IOL_Port_Types.h:42