nxdrvlinux/libcifx/Toolkit/Common/HilscherDefinitions/Hil_ApplicationCmd.h

1364 lines
53 KiB
C
Raw Normal View History

/**************************************************************************************
Copyright (c) Hilscher Gesellschaft fuer Systemautomation mbH. All Rights Reserved.
***************************************************************************************
  $HeadURL: https://subversion01/svn/HilscherDefinitions/netXFirmware/Headers/tags/20230403-00/includes/Hil_ApplicationCmd.h $: *//*!
\file Hil_ApplicationCmd.h
Hilscher Packet Command Codes Handled by the Application Task.
**************************************************************************************/
#ifndef HIL_APPLICATIONCMD_H_
#define HIL_APPLICATIONCMD_H_
#include "Hil_Packet.h"
#ifdef __HIL_PRAGMA_PACK_ENABLE
#pragma __HIL_PRAGMA_PACK_1(HIL_APPLICATIONCMD)
#endif
/***************************************************************************************/
/* Common global stack commands */
#define HIL_GET_DIAG_INFO_COMMON_STATE_REQ 0x00002F00
#define HIL_GET_DIAG_INFO_COMMON_STATE_CNF 0x00002F01
#define HIL_GET_WATCHDOG_TIME_REQ 0x00002F02
#define HIL_GET_WATCHDOG_TIME_CNF 0x00002F03
#define HIL_SET_WATCHDOG_TIME_REQ 0x00002F04
#define HIL_SET_WATCHDOG_TIME_CNF 0x00002F05
#define HIL_GET_DIAG_INFO_EXTENDED_STATE_REQ 0x00002F06
#define HIL_GET_DIAG_INFO_EXTENDED_STATE_CNF 0x00002F07
#define HIL_GET_SLAVE_HANDLE_REQ 0x00002F08
#define HIL_GET_SLAVE_HANDLE_CNF 0x00002F09
#define HIL_GET_SLAVE_CONN_INFO_REQ 0x00002F0A
#define HIL_GET_SLAVE_CONN_INFO_CNF 0x00002F0B
/*! \defgroup HIL_GET_DPM_IO_INFO_doc Get DPM I/O information
* \{ */
#define HIL_GET_DPM_IO_INFO_REQ 0x00002F0C /*!< Get DPM I/O information request */
#define HIL_GET_DPM_IO_INFO_CNF 0x00002F0D /*!< Get DPM I/O information confirmation */
/*! \} */
/*! \defgroup HIL_REGISTER_APP_doc Register application
* \{ */
#define HIL_REGISTER_APP_REQ 0x00002F10 /*!< Register application request */
#define HIL_REGISTER_APP_CNF 0x00002F11 /*!< Register application confirmation */
/*! \} */
/*! \defgroup HIL_UNREGISTER_APP_doc Unregister application
* \{ */
#define HIL_UNREGISTER_APP_REQ 0x00002F12 /*!< Unregister application request */
#define HIL_UNREGISTER_APP_CNF 0x00002F13 /*!< Unregister application confirmation */
/*! \} */
#define HIL_DELETE_CONFIG_REQ 0x00002F14
#define HIL_DELETE_CONFIG_CNF 0x00002F15
#define HIL_READ_IO_DATA_IMAGE_REQ 0x00002F20
#define HIL_READ_IO_DATA_IMAGE_CNF 0x00002F21
#define HIL_BUSSCAN_REQ 0x00002f22
#define HIL_BUSSCAN_CNF 0x00002f23
#define HIL_GET_DEVICE_INFO_REQ 0x00002f24
#define HIL_GET_DEVICE_INFO_CNF 0x00002f25
/*! \defgroup HIL_START_STOP_COMM_doc Start or stop bus communication
* \{ */
#define HIL_START_STOP_COMM_REQ 0x00002F30 /*!< Start or stop bus communication request */
#define HIL_START_STOP_COMM_CNF 0x00002F31 /*!< Start or stop bus communication confirmation */
/*! \} */
/*! \defgroup HIL_LOCK_UNLOCK_CONFIG_doc Lock or unlock configuration
* \{ */
#define HIL_LOCK_UNLOCK_CONFIG_REQ 0x00002F32 /*!< Lock or unlock configuration request */
#define HIL_LOCK_UNLOCK_CONFIG_CNF 0x00002F33 /*!< Lock or unlock configuration confirmation */
/*! \} */
#define HIL_SET_HANDSHAKE_CONFIG_REQ 0x00002F34
#define HIL_SET_HANDSHAKE_CONFIG_CNF 0x00002F35
/*! \defgroup HIL_CHANNEL_INIT_doc Channel initialization
* \{ */
#define HIL_CHANNEL_INIT_REQ 0x00002F80 /*!< Channel initialization request */
#define HIL_CHANNEL_INIT_CNF 0x00002F81 /*!< Channel initialization confirmation */
/*! \} */
#define HIL_VERIFY_DATABASE_REQ 0x00002F82
#define HIL_VERIFY_DATABASE_CNF 0x00002F83
#define HIL_ACTIVATE_DATABASE_REQ 0x00002F84
#define HIL_ACTIVATE_DATABASE_CNF 0x00002F85
/*! \defgroup HIL_SET_FW_PARAMETER_doc Set firmware parameter
* \{ */
#define HIL_SET_FW_PARAMETER_REQ 0x00002F86 /*!< Set firmware parameter request */
#define HIL_SET_FW_PARAMETER_CNF 0x00002F87 /*!< Set firmware parameter confirmation */
/*! \} */
/*! \defgroup HIL_GET_FW_PARAMETER_doc Get firmware parameter
* \{ */
#define HIL_GET_FW_PARAMETER_REQ 0x00002F88 /*!< Get firmware parameter request */
#define HIL_GET_FW_PARAMETER_CNF 0x00002F89 /*!< Get firmware parameter confirmation */
/*! \} */
/*! \defgroup HIL_LINK_STATUS_CHANGE_doc Link status change
* \{ */
#define HIL_LINK_STATUS_CHANGE_IND 0x00002F8A /*!< Link status change indication */
#define HIL_LINK_STATUS_CHANGE_RES 0x00002F8B /*!< Link status change response */
/*! \} */
/*! \defgroup HIL_SET_REMANENT_DATA_doc Set remanent data service
* \{ */
#define HIL_SET_REMANENT_DATA_REQ 0x00002F8C /*!< Set remanent data service request */
#define HIL_SET_REMANENT_DATA_CNF 0x00002F8D /*!< Set remanent data service confirmation */
/*! \} */
/*! \defgroup HIL_STORE_REMANENT_DATA_doc Store remanent data
* \{ */
#define HIL_STORE_REMANENT_DATA_IND 0x00002F8E /*!< Store remanent data indication */
#define HIL_STORE_REMANENT_DATA_RES 0x00002F8F /*!< Store remanent data response */
/*! \} */
/*! \defgroup HIL_SET_TRIGGER_TYPE_doc Set data exchange trigger mode
* \{ */
#define HIL_SET_TRIGGER_TYPE_REQ 0x00002F90 /*!< Set data exchange trigger mode request */
#define HIL_SET_TRIGGER_TYPE_CNF 0x00002F91 /*!< Set data exchange trigger mode confirmation */
/*! \} */
/*! \defgroup HIL_GET_TRIGGER_TYPE_doc Get data exchange trigger mode
* \{ */
#define HIL_GET_TRIGGER_TYPE_REQ 0x00002F92 /*!< Get data exchange trigger mode request */
#define HIL_GET_TRIGGER_TYPE_CNF 0x00002F93 /*!< Get data exchange trigger mode confirmation */
/*! \} */
/*! \defgroup HIL_READ_LOG_BOOK_ENTRIES_doc Read out the logbook
* \{ */
#define HIL_READ_LOG_BOOK_ENTRIES_REQ 0x00002F94 /*!< Read out the logbook request */
#define HIL_READ_LOG_BOOK_ENTRIES_CNF 0x00002F95 /*!< Read out the logbook confirmation */
/*! \} */
/*! \defgroup HIL_GET_LOG_BOOK_LAYOUT_doc Get logbook layout
* \{ */
#define HIL_GET_LOG_BOOK_LAYOUT_REQ 0x00002F96 /*!< Get logbook layout request */
#define HIL_GET_LOG_BOOK_LAYOUT_CNF 0x00002F97 /*!< Get logbook layout confirmation */
/*! \} */
/*! \defgroup HIL_CLEAR_LOG_BOOK_doc Clear the logbook
* \{ */
#define HIL_CLEAR_LOG_BOOK_REQ 0x00002F98 /*!< Clear the logbook request */
#define HIL_CLEAR_LOG_BOOK_CNF 0x00002F99 /*!< Clear the logbook confirmation */
/*! \} */
/*! \defgroup HIL_SET_LOG_BOOK_SEVERITY_LEVEL_doc Set severity level of logbook
* \{ */
#define HIL_SET_LOG_BOOK_SEVERITY_LEVEL_REQ 0x00002F9A /*!< Set severity level of logbook request */
#define HIL_SET_LOG_BOOK_SEVERITY_LEVEL_CNF 0x00002F9B /*!< Set severity level of logbook confirmation */
/*! \} */
/******************************************************************************
* Packet Definition
******************************************************************************/
/******************************************************************************
* Packet: HIL_GET_DIAG_INFO_COMMON_STATE_REQ/HIL_GET_DIAG_INFO_COMMON_STATE_CNF
*
* This packet allows to read out the common state block of the
* channel over the mailbox.
*/
/***** request packet *****/
typedef HIL_EMPTY_PACKET_T HIL_GET_DIAG_INFO_COMMON_STATE_REQ_T;
/***** confirmation packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_DIAG_INFO_COMMON_STATE_CNF_DATA_Ttag
{
uint8_t abCommonState[64];
} HIL_GET_DIAG_INFO_COMMON_STATE_CNF_DATA_T;
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_DIAG_INFO_COMMON_STATE_CNF_Ttag
{
HIL_PACKET_HEADER_T tHead;
HIL_GET_DIAG_INFO_COMMON_STATE_CNF_DATA_T tData;
} HIL_GET_DIAG_INFO_COMMON_STATE_CNF_T;
/******************************************************************************
* Packet: HIL_GET_WATCHDOG_TIME_REQ/HIL_GET_WATCHDOG_TIME_CNF
*
* This packet allows retrieving the actual watchdog time
*/
/***** request packet *****/
typedef HIL_EMPTY_PACKET_T HIL_GET_WATCHDOG_TIME_REQ_T;
/***** confirmation packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_WATCHDOG_TIME_CNF_DATA_Ttag
{
/** watchdog time in ms */
uint32_t ulWdgTime;
} HIL_GET_WATCHDOG_TIME_CNF_DATA_T;
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_WATCHDOG_TIME_CNF_Ttag
{
HIL_PACKET_HEADER_T tHead;
HIL_GET_WATCHDOG_TIME_CNF_DATA_T tData;
} HIL_GET_WATCHDOG_TIME_CNF_T;
/******************************************************************************
* Packet: HIL_SET_WATCHDOG_TIME_REQ/HIL_SET_WATCHDOG_TIME_CNF
*
* This packet allows setting the actual watchdog time
*/
/***** request packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_SET_WATCHDOG_TIME_REQ_DATA_Ttag
{
/** watchdog time in ms */
uint32_t ulWdgTime;
} HIL_SET_WATCHDOG_TIME_REQ_DATA_T;
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_SET_WATCHDOG_TIME_REQ_Ttag
{
HIL_PACKET_HEADER_T tHead;
HIL_SET_WATCHDOG_TIME_REQ_DATA_T tData;
} HIL_SET_WATCHDOG_TIME_REQ_T;
/***** confirmation packet *****/
typedef HIL_EMPTY_PACKET_T HIL_SET_WATCHDOG_TIME_CNF_T;
/******************************************************************************
* Packet: HIL_GET_DIAG_INFO_EXTENDED_STATE_REQ/HIL_GET_DIAG_INFO_EXTENDED_STATE_CNF
*
* This packet allows to read out the extended state block of the
* channel over the mailbox.
*/
/***** request packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_DIAG_INFO_EXTENDED_STATE_REQ_DATA_Ttag
{
uint32_t ulOffset;
uint32_t ulDataLen;
} HIL_GET_DIAG_INFO_EXTENDED_STATE_REQ_DATA_T;
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_DIAG_INFO_EXTENDED_STATE_REQ_Ttag
{
HIL_PACKET_HEADER_T tHead;
HIL_GET_DIAG_INFO_EXTENDED_STATE_REQ_DATA_T tData;
} HIL_GET_DIAG_INFO_EXTENDED_STATE_REQ_T;
/***** confirmation packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_DIAG_INFO_EXTENDED_STATE_CNF_DATA_Ttag
{
uint32_t ulOffset;
uint32_t ulDataLen;
uint8_t abExtendedState[432];
} HIL_GET_DIAG_INFO_EXTENDED_STATE_CNF_DATA_T;
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_DIAG_INFO_EXTENDED_STATE_CNF_Ttag
{
HIL_PACKET_HEADER_T tHead;
HIL_GET_DIAG_INFO_EXTENDED_STATE_CNF_DATA_T tData;
} HIL_GET_DIAG_INFO_EXTENDED_STATE_CNF_T;
/******************************************************************************
* Packet: HIL_PACKET_GET_SLAVE_HANDLE_REQ/HIL_PACKET_GET_SLAVE_HANDLE_CNF
*
* This packet allows retrieving diagnostic information of the
* connected devices
*/
/***** request packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_PACKET_GET_SLAVE_HANDLE_REQ_DATA_Tag
{
uint32_t ulParam;
} HIL_PACKET_GET_SLAVE_HANDLE_REQ_DATA_T;
#define HIL_LIST_CONF_SLAVES 0x00000001
#define HIL_LIST_ACTV_SLAVES 0x00000002
#define HIL_LIST_FAULTED_SLAVES 0x00000003
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_PACKET_GET_SLAVE_HANDLE_REQ_Tag
{
HIL_PACKET_HEADER_T tHead;
HIL_PACKET_GET_SLAVE_HANDLE_REQ_DATA_T tData;
} HIL_PACKET_GET_SLAVE_HANDLE_REQ_T;
/***** confirmation packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_PACKET_GET_SLAVE_HANDLE_CNF_DATA_Tag
{
uint32_t ulParam;
uint32_t aulHandle[1];
} HIL_PACKET_GET_SLAVE_HANDLE_CNF_DATA_T;
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_PACKET_GET_SLAVE_HANDLE_CNF_Tag
{
HIL_PACKET_HEADER_T tHead;
HIL_PACKET_GET_SLAVE_HANDLE_CNF_DATA_T tData;
} HIL_PACKET_GET_SLAVE_HANDLE_CNF_T;
/******************************************************************************
* Packet: HIL_PACKET_GET_SLAVE_CONN_INFO_REQ/HIL_PACKET_GET_SLAVE_CONN_INFO_CNF
*
* This packet allows retrieving detail information of a slave
*/
/***** request packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_PACKET_GET_SLAVE_CONN_INFO_REQ_DATA_Tag
{
uint32_t ulHandle;
} HIL_PACKET_GET_SLAVE_CONN_INFO_REQ_DATA_T;
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_PACKET_GET_SLAVE_CONN_INFO_REQ_Tag
{
HIL_PACKET_HEADER_T tHead;
HIL_PACKET_GET_SLAVE_CONN_INFO_REQ_DATA_T tData;
} HIL_PACKET_GET_SLAVE_CONN_INFO_REQ_T;
/***** confirmation packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_PACKET_GET_SLAVE_CONN_INFO_CNF_DATA_Tag
{
uint32_t ulHandle;
uint32_t ulStructID;
/*
Feldbus specific structure
*/
} HIL_PACKET_GET_SLAVE_CONN_INFO_CNF_DATA_T;
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_PACKET_GET_SLAVE_CONN_INFO_CNF_Tag
{
HIL_PACKET_HEADER_T tHead;
HIL_PACKET_GET_SLAVE_CONN_INFO_CNF_DATA_T tData;
} HIL_PACKET_GET_SLAVE_CONN_INFO_CNF_T;
/******************************************************************************/
/*! \addtogroup HIL_GET_DPM_IO_INFO_doc
* Read the configured size of the I/O process data image.
*
* \note For more information please refer netX Dual-Port Memory
* packet-based services manual (DOC161001APIxxxx).
*
* \{ */
/*! Get DPM IO information request packet. */
typedef HIL_EMPTY_PACKET_T HIL_GET_DPM_IO_INFO_REQ_T;
/*! DPM IO block information. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_DPM_IO_BLOCK_INFO_Ttag
{
/*! Index of sub block.
* The value identifies the index of the sub block. This field is only informative
* and shall not be used by an application.
* The values shall be set (for default DPM layouts) to
* - 6 for standard input image
* - and to 5 for standard output */
uint32_t ulSubblockIndex;
/*! Type of sub block.
* The type definitions (HIL_BLOCK_*) can be found in Hil_DualPortMemory.h. */
uint32_t ulType;
/*! Flags of the sub block.
* The flag definitions (HIL_DIRECTION_* and HIL_TRANSMISSION_TYPE_*)
* can be found in Hil_DualPortMemory.h. */
uint16_t usFlags;
/*! Reserved */
uint16_t usReserved;
/*! Start offset of the IO data */
uint32_t ulOffset;
/*! Length of used IO data */
uint32_t ulLength;
} HIL_DPM_IO_BLOCK_INFO_T;
/*! Get DPM IO information confirmation data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_DPM_IO_INFO_CNF_DATA_Ttag
{
uint32_t ulNumIOBlockInfo; /*!< Number of IO Block Info */
HIL_DPM_IO_BLOCK_INFO_T atIOBlockInfo[2]; /*!< Array of I/O Block information */
} HIL_GET_DPM_IO_INFO_CNF_DATA_T;
/*! Get DPM IO information confirmation packet. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_DPM_IO_INFO_CNF_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_GET_DPM_IO_INFO_CNF_DATA_T tData; /*!< Packet data. */
} HIL_GET_DPM_IO_INFO_CNF_T;
/*! \} ************************************************************************/
/******************************************************************************/
/*! \addtogroup HIL_REGISTER_APP_doc
* Registering the application at the protocol (application task).
*
* \note For more information please refer netX Dual-Port Memory
* packet-based services manual (DOC161001APIxxxx).
*
* \{ */
/*! Register application request packet. */
typedef HIL_EMPTY_PACKET_T HIL_REGISTER_APP_REQ_T;
/*! Register application confirmation packet. */
typedef HIL_EMPTY_PACKET_T HIL_REGISTER_APP_CNF_T;
/*! \} ************************************************************************/
/******************************************************************************/
/*! \addtogroup HIL_UNREGISTER_APP_doc
* Unregister the application at the protocol (application task).
*
* \note For more information please refer netX Dual-Port Memory
* packet-based services manual (DOC161001APIxxxx).
*
* \{ */
/*! Unregister application request packet. */
typedef HIL_EMPTY_PACKET_T HIL_UNREGISTER_APP_REQ_T;
/*! Unregister application confirmation packet. */
typedef HIL_EMPTY_PACKET_T HIL_UNREGISTER_APP_CNF_T;
/*! \} ************************************************************************/
/******************************************************************************
* Packet: HIL_DELETE_CONFIG_REQ/HIL_DELETE_CONFIG_CNF
*
* This packet allows to delete the actual configuration
*/
/***** request packet *****/
typedef HIL_EMPTY_PACKET_T HIL_DELETE_CONFIG_REQ_T;
/***** confirmation packet *****/
typedef HIL_EMPTY_PACKET_T HIL_DELETE_CONFIG_CNF_T;
/******************************************************************************
* HIL_BUSSCAN_REQ
******************************************************************************/
#define HIL_BUSSCAN_CMD_START 0x01
#define HIL_BUSSCAN_CMD_STATUS 0x02
#define HIL_BUSSCAN_CMD_ABORT 0x03
/***** request packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_BUSSCAN_REQ_DATA_Ttag
{
uint32_t ulAction;
} HIL_BUSSCAN_REQ_DATA_T;
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_BUSSCAN_REQ_Ttag
{
HIL_PACKET_HEADER_T tHead;
HIL_BUSSCAN_REQ_DATA_T tData;
} HIL_BUSSCAN_REQ_T;
#define HIL_BUSSCAN_REQ_SIZE (sizeof(HIL_BUSSCAN_REQ_DATA_T))
/***** confirmation packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_BUSSCAN_CNF_DATA_Ttag
{
uint32_t ulMaxProgress;
uint32_t ulActProgress;
uint8_t abDeviceList[4];
} HIL_BUSSCAN_CNF_DATA_T;
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_BUSSCAN_CNF_Ttag
{
HIL_PACKET_HEADER_T tHead;
HIL_BUSSCAN_CNF_DATA_T tData;
} HIL_BUSSCAN_CNF_T;
#define HIL_BUSSCAN_CNF_SIZE (sizeof(HIL_BUSSCAN_CNF_DATA_T) - 4)
/******************************************************************************
* HIL_GET_DEVICE_INFO_REQ
******************************************************************************/
/***** request packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_DEVICE_INFO_REQ_DATA_Ttag
{
uint32_t ulDeviceIdx;
} HIL_GET_DEVICE_INFO_REQ_DATA_T;
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_DEVICE_INFO_REQ_Ttag
{
HIL_PACKET_HEADER_T tHead;
HIL_GET_DEVICE_INFO_REQ_DATA_T tData;
} HIL_GET_DEVICE_INFO_REQ_T;
#define HIL_GET_DEVICE_INFO_REQ_SIZE (sizeof(HIL_GET_DEVICE_INFO_REQ_DATA_T))
/***** confirmation packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_DEVICE_INFO_CNF_DATA_Ttag
{
uint32_t ulDeviceIdx;
uint32_t ulStructId;
/* uint8_t tStruct; Fieldbus specific structure */
} HIL_GET_DEVICE_INFO_CNF_DATA_T;
typedef struct HIL_GET_DEVICE_INFO_CNF_Ttag
{
HIL_PACKET_HEADER_T tHead;
HIL_GET_DEVICE_INFO_CNF_DATA_T tData;
} HIL_GET_DEVICE_INFO_CNF_T;
#define HIL_GET_DEVICE_INFO_CNF_SIZE (sizeof(HIL_GET_DEVICE_INFO_CNF_DATA_T))
/******************************************************************************/
/*! \addtogroup HIL_START_STOP_COMM_doc
* Start or stop bus communication.
*
* \note For more information please refer netX Dual-Port Memory
* packet-based services manual (DOC161001APIxxxx).
*
* \{ */
#define HIL_START_STOP_COMM_PARAM_START 0x00000001 /*!< Start the bus communication. */
#define HIL_START_STOP_COMM_PARAM_STOP 0x00000002 /*!< Stop the bus communication. */
/*! Start or stop bus communication request data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_START_STOP_COMM_REQ_DATA_Ttag
{
/*! Parameter (HIL_START_STOP_COMM_PARAM_*) to control the bus communication state. */
uint32_t ulParam;
} HIL_START_STOP_COMM_REQ_DATA_T;
/*! Start or stop bus communication request packet. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_START_STOP_COMM_REQ_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_START_STOP_COMM_REQ_DATA_T tData; /*!< Packet data. */
} HIL_START_STOP_COMM_REQ_T;
/*! Start or stop bus communication confirmation packet. */
typedef HIL_EMPTY_PACKET_T HIL_START_STOP_COMM_CNF_T;
/*! \} ************************************************************************/
/******************************************************************************/
/*! \addtogroup HIL_LOCK_UNLOCK_CONFIG_doc
* Lock or unlock the configuration settings.
*
* \note For more information please refer netX Dual-Port Memory
* packet-based services manual (DOC161001APIxxxx).
*
* \{ */
#define HIL_LOCK_UNLOCK_CONFIG_PARAM_LOCK 0x00000001
#define HIL_LOCK_UNLOCK_CONFIG_PARAM_UNLOCK 0x00000002
/*! Lock or unlock the configuration settings request data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_LOCK_UNLOCK_CONFIG_REQ_DATA_Ttag
{
/*! Parameter (HIL_LOCK_UNLOCK_CONFIG_PARAM_*) to control the configuration lock state. */
uint32_t ulParam;
} HIL_LOCK_UNLOCK_CONFIG_REQ_DATA_T;
/*! Lock or unlock the configuration settings request packet. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_LOCK_UNLOCK_CONFIG_REQ_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_LOCK_UNLOCK_CONFIG_REQ_DATA_T tData; /*!< Packet data. */
} HIL_LOCK_UNLOCK_CONFIG_REQ_T;
/*! Lock or unlock the configuration settings confirmation packet. */
typedef HIL_EMPTY_PACKET_T HIL_LOCK_UNLOCK_CONFIG_CNF_T;
/*! \} ************************************************************************/
/******************************************************************************
* HIL_SET_HANDSHAKE_CONFIG_REQ
******************************************************************************/
/***** request packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_SET_HANDSHAKE_CONFIG_REQ_DATA_Ttag
{
/*! Input process data handshake mode */
uint8_t bPDInHskMode;
/*! Input process data trigger source. Currently unused, set to zero. */
uint8_t bPDInSource;
/*! Threshold for input process data handshake handling errors */
uint16_t usPDInErrorTh;
/*! Output process data handshake mode */
uint8_t bPDOutHskMode;
/*! Output process data trigger source. Currently unused, set to zero. */
uint8_t bPDOutSource;
/*! Threshold for output process data handshake handling errors */
uint16_t usPDOutErrorTh;
/*! Synchronization handshake mode */
uint8_t bSyncHskMode;
/*! Synchronization source */
uint8_t bSyncSource;
/*! Threshold for synchronization handshake handling errors */
uint16_t usSyncErrorTh;
/*! Reserved for future use. Set to zero. */
uint32_t aulReserved[2];
} HIL_SET_HANDSHAKE_CONFIG_REQ_DATA_T;
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_SET_HANDSHAKE_CONFIG_REQ_Ttag
{
HIL_PACKET_HEADER_T tHead;
HIL_SET_HANDSHAKE_CONFIG_REQ_DATA_T tData;
} HIL_SET_HANDSHAKE_CONFIG_REQ_T;
#define HIL_SET_HANDSHAKE_CONFIG_REQ_SIZE (sizeof(HIL_SET_HANDSHAKE_CONFIG_REQ_DATA_T))
/***** confirmation packet *****/
typedef HIL_EMPTY_PACKET_T HIL_SET_HANDSHAKE_CONFIG_CNF_T;
#define HIL_SET_HANDSHAKE_CONFIG_CNF_SIZE (0)
/******************************************************************************/
/*! \addtogroup HIL_CHANNEL_INIT_doc
* Initialization or re-initialization of the channel.
*
* \note For more information please refer netX Dual-Port Memory
* packet-based services manual (DOC161001APIxxxx).
*
* \{ */
/*! Initialization of channel request packet. */
typedef HIL_EMPTY_PACKET_T HIL_CHANNEL_INIT_REQ_T;
/*! Initialization of channel confirmation packet. */
typedef HIL_EMPTY_PACKET_T HIL_CHANNEL_INIT_CNF_T;
/*! \} ************************************************************************/
/******************************************************************************
* Packet: HIL_VERIFY_DATABASE_REQ /HIL_VERIFY_DATABASE_CNF
*
* This packet adds new slaves to the database
*/
/***** request packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_VERIFY_DATABASE_REQ_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< packet header */
} HIL_VERIFY_DATABASE_REQ_T;
#define HIL_VERIFY_DATABASE_REQ_SIZE 0
/***** confirmation packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_VERIFY_SLAVE_DATABASE_LIST_Ttag
{
uint32_t ulLen;
uint8_t abData[16];
} HIL_VERIFY_SLAVE_DATABASE_LIST_T;
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_VERIFY_MASTER_DATABASE_Ttag
{
uint32_t ulMasterSettings; /*!< field bus independent changes */
uint32_t ulMasterStatus; /*!< field bus specific status */
uint32_t ulReserved[2];
} HIL_VERIFY_MASTER_DATABASE_T;
#define HIL_VERIFY_SLAVE_DATABASE_LIST_SIZE sizeof(HIL_VERIFY_SLAVE_DATABASE_LIST_T)
#define HIL_CIR_MST_SET_STARTUP 0x00000001
#define HIL_CIR_MST_SET_WATCHDOG 0x00000002
#define HIL_CIR_MST_SET_STATUSOFFSET 0x00000004
#define HIL_CIR_MST_SET_BUSPARAMETER 0x00000008
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_VERIFY_DATABASE_CNF_DATA_Ttag
{
HIL_VERIFY_SLAVE_DATABASE_LIST_T tNewSlaves;
HIL_VERIFY_SLAVE_DATABASE_LIST_T tDeactivatedSlaves;
HIL_VERIFY_SLAVE_DATABASE_LIST_T tChangedSlaves;
HIL_VERIFY_SLAVE_DATABASE_LIST_T tUnchangedSlaves;
HIL_VERIFY_SLAVE_DATABASE_LIST_T tImpossibleSlaveChanges;
HIL_VERIFY_MASTER_DATABASE_T tMasterChanges;
} HIL_VERIFY_DATABASE_CNF_DATA_T;
#define HIL_VERIFY_DATABASE_CNF_DATA_SIZE sizeof(HIL_VERIFY_DATABASE_CNF_DATA_T)
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_VERIFY_DATABASE_CNF_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< packet header */
HIL_VERIFY_DATABASE_CNF_DATA_T tData; /*!< packet data */
} HIL_VERIFY_DATABASE_CNF_T;
#define HIL_VERFIY_DATABASE_CNF_PACKET_SIZE sizeof(HIL_VERIFY_DATABASE_CNF_T)
/******************************************************************************
* Packet: HIL_CHANNEL_ACTIVATE_REQ/HIL_CHANNEL_NEW_DATABASE_CNF
*
* This packet activates the new configured slaves
*/
/***** request packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_ACTIVATE_DATABASE_REQ_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< packet header */
} HIL_ACTIVATE_DATABASE_REQ_T;
/***** confirmation packet *****/
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_ACTIVATE_DATABASE_CNF_DATA_Ttag
{
uint8_t abSlvSt[16]; /*!< State of the slaves after configuration */
} HIL_ACTIVATE_DATABASE_CNF_DATA_T;
#define HIL_ACTIVATE_DATABASE_CNF_DATA_SIZE sizeof(HIL_ACTIVATE_DATABASE_CNF_DATA_T)
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_ACTIVATE_DATABASE_CNF_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< packet header */
HIL_ACTIVATE_DATABASE_CNF_DATA_T tData;
} HIL_ACTIVATE_DATABASE_CNF_T;
#define HIL_ACTIVATE_DATABASE_CNF_PACKET_SIZE sizeof(HIL_ACTIVATE_DATABASE_CNF_T)
/******************************************************************************/
/*! \addtogroup HIL_SET_FW_PARAMETER_doc
*
* This service allows a host application to modify certain protocol stack
* parameters from the current configuration. This requires that Controlled
* Start of Communication is set in the configuration database file and the
* protocol stack is waiting for the BUS ON / APPLICATION READY command.
*
* \note For more information please refer netX Dual-Port Memory
* packet-based services manual (DOC161001APIxxxx).
*
* \{ */
/***** Parameter IDs defines *****/
#define HIL_FW_PID_STATION_ADDRESS 0x30000001 /*!< Station address of device */
#define HIL_FW_PID_BAUDRATE 0x30000002 /*!< Baudrate of device */
#define HIL_FW_PID_PN_NAME_OF_STATION 0x30015001 /*!< PROFINET: Name of Station String */
#define HIL_FW_PID_ECS_DEVICE_IDENTIFICATION 0x30009001 /*!< EtherCAT: Value for Explicit Device Identification */
#define HIL_FW_PID_ECS_SCND_STATION_ADDRESS 0x30009002 /*!< EtherCAT: Second Station Address */
/*! Set firmware parameter request data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_SET_FW_PARAMETER_REQ_DATA_Ttag
{
/*! Parameter ID which shall be modified, see HIL_FW_PID_* */
uint32_t ulParameterID;
/*! Length of following abParameter member in bytes */
uint32_t ulParameterLen;
/*! Parameter data, structure depend on ulParameterID.
* Please refer the related API Manual of Protocol stack for more information. */
uint8_t abParameter[__HIL_VARIABLE_LENGTH_ARRAY];
} HIL_SET_FW_PARAMETER_REQ_DATA_T;
/*! Set firmware parameter request. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_SET_FW_PARAMETER_REQ_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_SET_FW_PARAMETER_REQ_DATA_T tData; /*!< Packet data. */
} HIL_SET_FW_PARAMETER_REQ_T;
#define HIL_SET_FW_PARAMETER_REQ_SIZE(parameterLen) (2 * sizeof(uint32_t) + (parameterLen) * sizeof(uint8_t))
/*! Set firmware parameter confirmation. */
typedef HIL_EMPTY_PACKET_T HIL_SET_FW_PARAMETER_CNF_T;
#define HIL_SET_FW_PARAMETER_CNF_SIZE (0)
/*! \} ************************************************************************/
/******************************************************************************/
/*! \addtogroup HIL_GET_FW_PARAMETER_doc
*
* \note This service is usually not supported by any application layer.
*
* \{ */
/*! Get firmware parameter request data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_FW_PARAMETER_REQ_DATA_Ttag
{
/*! Parameter ID which shall be read, see HIL_FW_PID_* */
uint32_t ulParameterID;
} HIL_GET_FW_PARAMETER_REQ_DATA_T;
/*! Get firmware parameter request. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_FW_PARAMETER_REQ_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_GET_FW_PARAMETER_REQ_DATA_T tData; /*!< Packet data. */
} HIL_GET_FW_PARAMETER_REQ_T;
#define HIL_GET_FW_PARAMETER_REQ_SIZE (sizeof(HIL_GET_FW_PARAMETER_REQ_DATA_T))
/*! Get firmware parameter confirmation. */
typedef HIL_SET_FW_PARAMETER_REQ_T HIL_GET_FW_PARAMETER_CNF_T;
#define HIL_GET_FW_PARAMETER_CNF_SIZE HIL_SET_FW_PARAMETER_REQ_SIZE
/*! \} ************************************************************************/
/******************************************************************************/
/*! \addtogroup HIL_LINK_STATUS_CHANGE_doc
*
* The link status change indication is generated by the device to inform the
* host application about a change of PHY link.
* The indication is only send when the host has registered his application
* by sending "HIL_REGISTER_APP_REQ" to the channel. After registration the
* actual status is will be notified with this indication.
*
* There is only one indication at any time send to the host application.
* This indication gives no guarantee that all changes of the PHYs can be
* observed with this indication (e.g. fast link changes and slow host
* application). However the host application gets always the last
* (actual) status reported.
*
* \note For more information please refer netX Dual-Port Memory
* packet-based services manual (DOC161001APIxxxx).
*
* \{ */
/*! Link status change indication data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_LINK_STATUS_Ttag
{
uint32_t ulPort; /*!< Port ID, starting with 0.
This is also the index of atLinkData field in the
HIL_LINK_STATUS_CHANGE_IND_DATA_T structure. */
uint32_t fIsFullDuplex; /*!< If a full duplex link is available on this port. */
uint32_t fIsLinkUp; /*!< If a link is available on this port. */
uint32_t ulSpeed; /*!< Speed of the link in MBit. */
} HIL_LINK_STATUS_T;
/*! Link status change indication data array. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_LINK_STATUS_CHANGE_IND_DATA_Ttag
{
/** Link data for PHYs on netX.
* \note For netX51/52/100/500/90 the array always contain 2 entries, regardless of
* actual number of used PHYs (e.g. single port devices).
* Other chips may use different amount of entries. */
HIL_LINK_STATUS_T atLinkData[2];
} HIL_LINK_STATUS_CHANGE_IND_DATA_T;
/*! Link status change indication. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_LINK_STATUS_CHANGE_IND_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_LINK_STATUS_CHANGE_IND_DATA_T tData; /*!< Packet data. */
} HIL_LINK_STATUS_CHANGE_IND_T;
/*! Link status change response. */
typedef HIL_EMPTY_PACKET_T HIL_LINK_STATUS_CHANGE_RES_T;
/*! \} ************************************************************************/
/******************************************************************************/
/*! \addtogroup HIL_SET_REMANENT_DATA_doc
*
* This service shall be used by the application once after the system is started
* to hand over (set) the last stored remanent data to the component.
* In case the application has no currently stored remanent data for the component,
* the service shall be initiated with the correct Component ID but a remanent data
* size of zero. Otherwise, it is not ensured that the component can start properly.
* In case of a protocol stack the network communication will not start.
*
* \note The application shall send the last stored remanent data without matching the size
* that the component has reported.
* \note The service is only usable in case the component is in bus off state.
* \note In case the component detects an invalid Component ID, the service
* shall be confirmed with the error code ERR_HIL_INVALID_COMPONENT_ID.
* \note In case the component detects an invalid remanent data length,
* the service shall be confirmed with the error code ERR_HIL_INVALID_DATA_LENGTH.
* \note In case the component detects invalid remanent data (inconsistent, wrong data),
* the service shall be confirmed with the error code ERR_HIL_INCONSISTENT_DATA_SET.
* \note In case the component detected an invalid HIL_SET_REMANENT_DATA_REQ service the
* component shall act as if it has received HIL_SET_REMANENT_DATA_REQ with
* remanent data size of zero. Additionally, a permanent logbook entry shall be generated.
*
* \{ */
/*! Set remanent data request data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_SET_REMANENT_DATA_REQ_DATA_Ttag
{
/*! Unique component identifier HIL_COMPONENT_ID_*. */
uint32_t ulComponentId;
/*! Remanent data buffer. */
uint8_t abData[__HIL_VARIABLE_LENGTH_ARRAY];
} HIL_SET_REMANENT_DATA_REQ_DATA_T;
/*! Set remanent data request. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_SET_REMANENT_DATA_REQ_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_SET_REMANENT_DATA_REQ_DATA_T tData; /*!< Packet data. */
} HIL_SET_REMANENT_DATA_REQ_T;
#define HIL_SET_REMANENT_DATA_REQ_SIZE(remanentDataBytes) (sizeof(uint32_t) + (remanentDataBytes) * sizeof(uint8_t))
/*! Set remanent data confirmation data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_SET_REMANENT_DATA_CNF_DATA_Ttag
{
/*! Unique component identifier HIL_COMPONENT_ID_*. */
uint32_t ulComponentId;
} HIL_SET_REMANENT_DATA_CNF_DATA_T;
/*! Set remanent data confirmation. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_SET_REMANENT_DATA_CNF_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_SET_REMANENT_DATA_CNF_DATA_T tData; /*!< Packet data. */
} HIL_SET_REMANENT_DATA_CNF_T;
#define HIL_SET_REMANENT_DATA_CNF_SIZE (sizeof(HIL_SET_REMANENT_DATA_CNF_DATA_T))
/*! \} ************************************************************************/
/******************************************************************************/
/*! \addtogroup HIL_STORE_REMANENT_DATA_doc
*
* This component generates this indication each time when the remanent data
* needs to be stored.
*
* The remanent indication always contains the complete data block which must be
* stored remanently. The application shall compare the remanent data with the last
* stored remanent data in order to avoid writing the same data again and again.
* It is up to the application to consider the wear of the storage device.
*
* \note The application shall be able to store remanent data even if the reported
* remanent data size changes (e.g. due to update of component).
* \note The response should be generated synchronously to remanent data storage,
* i.e. after all data has been written to the storage device.
* \note The response message must always contain at least the Component ID,
* even if the service is replied to with an error code.
* \note Depending on the component a response to the network may
* be generated even if the application has not answered yet.
*
* \{ */
/*! Store remanent indication data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_STORE_REMANENT_DATA_IND_DATA_Ttag
{
/*! Unique component identifier HIL_COMPONENT_ID_*. */
uint32_t ulComponentId;
/*! Remanent data buffer. */
uint8_t abData[__HIL_VARIABLE_LENGTH_ARRAY];
} HIL_STORE_REMANENT_DATA_IND_DATA_T;
/*! Store remanent indication. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_STORE_REMANENT_DATA_IND_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_STORE_REMANENT_DATA_IND_DATA_T tData; /*!< Packet data. */
} HIL_STORE_REMANENT_DATA_IND_T;
#define HIL_STORE_REMANENT_DATA_IND_SIZE(remanentDataBytes) (sizeof(uint32_t) + (remanentDataBytes) * sizeof(uint8_t))
/*! Store remanent response data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_STORE_REMANENT_DATA_RES_DATA_Ttag
{
/*! Unique component identifier HIL_COMPONENT_ID_*. */
uint32_t ulComponentId;
} HIL_STORE_REMANENT_DATA_RES_DATA_T;
/*! Store remanent response. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_STORE_REMANENT_DATA_RES_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_STORE_REMANENT_DATA_RES_DATA_T tData; /*!< Packet data. */
} HIL_STORE_REMANENT_DATA_RES_T;
#define HIL_STORE_REMANENT_DATA_RES_SIZE (sizeof(HIL_STORE_REMANENT_DATA_RES_DATA_T))
/*! \} ************************************************************************/
/******************************************************************************/
/*! \addtogroup HIL_SET_TRIGGER_TYPE_doc
*
* This service offers the application to configure the data exchange trigger mode.
* The trigger mode defines on which network-specific event the synchronization or
* provider/consumer data update will be finished by the protocol stack.
*
* The synchronization or consumer data update is finished by the protocol stack:
* - immediately in free-run mode HIL_TRIGGER_TYPE_*_NONE
* - in case a new network connection is opened and new data is received
* HIL_TRIGGER_TYPE_*_RX_DATA_RECEIVED (bus cycle synchronous)
* - in case a defined time point is reached HIL_TRIGGER_TYPE_*_TIMED_ACTIVATION
* (time isochronous). The time point is protocol stack specific.
*
* The synchronization or provider data update is finished by the protocol stack:
* - immediately in free-run mode HIL_TRIGGER_TYPE_*_NONE
* - in case new data on the bus is required. E.g. the protocol stack will delay
* the update process until a new network connection is established
* HIL_TRIGGER_TYPE_*_READY_FOR_TX_DATA (bus cycle synchronous)
* - in case a defined time point is reached HIL_TRIGGER_TYPE_*_TIMED_LATCH
* (time isochronous). The time point is protocol stack specific.
*
* The configuration of the consumer and provider data update trigger mode are
* independent from each other and can be used individually or combined.
* However, the synchronization trigger mode can only be configured unequal to
* HIL_TRIGGER_TYPE_SYNC_NONE in case both the consumer and provider trigger modes
* are configured in free-run mode (HIL_TRIGGER_TYPE_*_NONE). In case the trigger mode
* is not supported by the protocol stack, an error code in the response will be set
* to signal an invalid configuration.
*
* \note In case the protocol stack is configured with a trigger mode unequal to free-run,
* it is protocol stack specific at which point of time the synchronization or
* provider/consumer data update is finished. E.g. the protocol stack will wait for
* a network connection to be established.
* \note The protocol stack accepts the service in bus off mode. It is protocol stack specific
* if the service is accepted in bus on mode.
* \note In case the application does not use the service, the protocol stack will start in
* default trigger mode. The default trigger mode is free-run (HIL_TRIGGER_TYPE_*_NONE).
* \note On channel initialization the protocol stack keeps the previously configured
* trigger mode until active change or device reset.
* \note The exchange trigger mode is restored to default on delete config.
* \note The protocol stack which is configured for defined data exchange mode monitors if
* the host application handles the handshake as expected. Every time an error symptom
* occurs the respective handshake error counter is incremented.
* The error counter counts up to the maximal possible value and saturates.
* \note In case the trigger mode is configured in default mode, the handshake error counters
* are set to 0 and do not count.
* \note The protocol stack resets the handshake error counter to initial value (zero) after
* each channel init.
*
* \{ */
#define HIL_TRIGGER_TYPE_PDIN_NONE 0x0010 /*!< No input data synchronization (free-run). */
#define HIL_TRIGGER_TYPE_PDIN_RX_DATA_RECEIVED 0x0011 /*!< Input data will be updated when new data was received. (bus cycle synchronous). */
#define HIL_TRIGGER_TYPE_PDIN_TIMED_ACTIVATION 0x0012 /*!< Input data will be updated on time event (time isochronous). */
#define HIL_TRIGGER_TYPE_PDOUT_NONE 0x0010 /*!< No output data synchronization (free-run). */
#define HIL_TRIGGER_TYPE_PDOUT_READY_FOR_TX_DATA 0x0011 /*!< Output data will be send in next bus cycle. (bus cycle synchronous). */
#define HIL_TRIGGER_TYPE_PDOUT_TIMED_LATCH 0x0012 /*!< Output data will be delayed until next time event (time isochronous). */
#define HIL_TRIGGER_TYPE_SYNC_NONE 0x0010 /*!< No sync signal generation */
#define HIL_TRIGGER_TYPE_SYNC_RX_DATA_RECEIVED 0x0011 /*!< Generate Sync event when new data was received. */
#define HIL_TRIGGER_TYPE_SYNC_READY_FOR_TX_DATA 0x0012 /*!< Generate Sync event when new data will be send. */
#define HIL_TRIGGER_TYPE_SYNC_TIMED_LATCH 0x0013 /*!< Generate Sync event when data shall be latched. */
#define HIL_TRIGGER_TYPE_SYNC_TIMED_ACTIVATION 0x0014 /*!< Generate Sync event when data shall be applied. */
/*! Set data exchange trigger data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_SET_TRIGGER_TYPE_REQ_DATA_Ttag
{
/*! Consumer data trigger type HIL_TRIGGER_TYPE_PDIN_*. */
uint16_t usPdInHskTriggerType;
/*! Provider data trigger type HIL_TRIGGER_TYPE_PDOUT_*. */
uint16_t usPdOutHskTriggerType;
/*! Synchronization trigger type HIL_TRIGGER_TYPE_SYNC_*. */
uint16_t usSyncHskTriggerType;
} HIL_SET_TRIGGER_TYPE_REQ_DATA_T;
/*! Set data exchange trigger request. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_SET_TRIGGER_TYPE_REQ_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_SET_TRIGGER_TYPE_REQ_DATA_T tData; /*!< Packet data. */
} HIL_SET_TRIGGER_TYPE_REQ_T;
#define HIL_SET_TRIGGER_TYPE_REQ_SIZE (sizeof(HIL_SET_TRIGGER_TYPE_REQ_DATA_T))
/*! Set data exchange trigger confirmation structure. */
typedef HIL_EMPTY_PACKET_T HIL_SET_TRIGGER_TYPE_CNF_T;
#define HIL_SET_TRIGGER_TYPE_CNF_SIZE (0)
/*! \} ************************************************************************/
/******************************************************************************/
/*! \addtogroup HIL_GET_TRIGGER_TYPE_doc
*
* This service is used by the application to read the current
* handshake trigger type configured in the protocol stack.
*
* \{ */
/*! Get data exchange trigger request. */
typedef HIL_EMPTY_PACKET_T HIL_GET_TRIGGER_TYPE_REQ_T;
#define HIL_GET_TRIGGER_TYPE_REQ_SIZE (0)
/*! Get data exchange trigger data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_TRIGGER_TYPE_CNF_DATA_Ttag
{
/*! Input process data trigger type.
* Value is a type of HIL_TRIGGER_TYPE_PDIN_*. */
uint16_t usPdInHskTriggerType;
/*! Output process data trigger type.
* Value is a type of HIL_TRIGGER_TYPE_PDOUT_*. */
uint16_t usPdOutHskTriggerType;
/*! Synchronization trigger type.
* Value is a type of HIL_TRIGGER_TYPE_SYNC_*. */
uint16_t usSyncHskTriggerType;
/*! Minimal provide/consumer data update interval in free-run mode.
* The application shall ensure in free-run mode to not request faster
* provider/consumer data update than this interval.
* Unit of microseconds, default value is 1000us, value 0-31 is not valid. */
uint16_t usMinFreeRunUpdateInterval;
} HIL_GET_TRIGGER_TYPE_CNF_DATA_T;
/*! Get data exchange trigger confirmation structure. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST HIL_GET_TRIGGER_TYPE_CNF_Ttag
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_GET_TRIGGER_TYPE_CNF_DATA_T tData; /*!< Packet data. */
} HIL_GET_TRIGGER_TYPE_CNF_T;
#define HIL_GET_TRIGGER_TYPE_CNF_SIZE (sizeof(HIL_GET_TRIGGER_TYPE_CNF_DATA_T))
/*! \} ************************************************************************/
/******************************************************************************/
/*! \addtogroup HIL_READ_LOG_BOOK_ENTRIES_doc
*
* This service is used by the application to read out the log book
* of an communication channel.
*
* \{ */
/*! Get log book entries request data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST
{
/*! How many of the recent made entries shall be skipped */
uint32_t ulSkipRecentEntries;
/*! Number of entries to read.
* \note Big numbers may lead to fragmentation of the packet. For normal
* communication channel mailbox 64 entries can be read without fragmentation. */
uint32_t ulNumberOfEntriesToRead;
} HIL_READ_LOG_BOOK_ENTRIES_REQ_DATA_T;
/*! Get log book entries request. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_READ_LOG_BOOK_ENTRIES_REQ_DATA_T tData; /*!< Packet data. */
} HIL_READ_LOG_BOOK_ENTRIES_REQ_T;
#define HIL_READ_LOG_BOOK_ENTRIES_REQ_SIZE (sizeof(HIL_READ_LOG_BOOK_ENTRIES_REQ_DATA_T))
/*! Get log book entry data.
* \note This structure is compatible with HIL_LOGBOOK_ENTRY_T structure, which
* is internally used in the firmware. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST {
/*! Time stamp of the OS in Millisecond when the entry was made */
uint32_t ulSystemTicks;
/*! Severity level of this entry. Levels are defined in the Hil_Logbook.h */
uint8_t bLevel;
/*! This field is reserved for later use, will be set to 0. */
uint8_t bReserved;
/*! The type is used to determine how the following abData filed must be
* interpreted. Types and related structures are defined in the Hil_Logbook.h */
uint16_t usType;
/*! Data length and format depends on usType */
uint8_t abData[16];
} HIL_READ_LOG_BOOK_ENTRY_DATA_T;
/*! Get log book entries confirmation data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST
{
/*! Requested amount of skipped entries */
uint32_t ulSkipRecentEntries;
/*! Successfully read entries. Valid in atEntries[] array */
uint32_t ulNumberOfReadEntries;
/*! Array of read entries, size is defined by ulNumberOfReadEntries */
HIL_READ_LOG_BOOK_ENTRY_DATA_T atEntries[__HIL_VARIABLE_LENGTH_ARRAY];
} HIL_READ_LOG_BOOK_ENTRIES_CNF_DATA_T;
/*! Get log book entries confirmation. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_READ_LOG_BOOK_ENTRIES_CNF_DATA_T tData; /*!< Packet data. */
} HIL_READ_LOG_BOOK_ENTRIES_CNF_T;
#define HIL_READ_LOG_BOOK_ENTRIES_CNF_SIZE(numberOfEntries) (2 * sizeof(uint32_t) + (numberOfEntries) * sizeof(HIL_LOGBOOK_ENTRY_T))
/*! \} ************************************************************************/
/******************************************************************************/
/*! \addtogroup HIL_GET_LOG_BOOK_LAYOUT_doc
*
* Get the amount of entries that the logbook can hold. Permanent entries
* will not be overwritten with new entries.
*
* \{ */
/*! Get log book layout request. */
typedef HIL_EMPTY_PACKET_T HIL_GET_LOG_BOOK_LAYOUT_REQ_T;
#define HIL_GET_LOG_BOOK_LAYOUT_REQ_SIZE (0)
/*! Get log book layout confirmation data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST
{
/*! Total number of entries the logbook can hold */
uint32_t ulNumberOfEntries;
/*! Number of entries which will no be overwritten by new ones */
uint32_t ulPermanentEntries;
} HIL_GET_LOG_BOOK_LAYOUT_CNF_DATA_T;
/*! Get log book layout confirmation. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_GET_LOG_BOOK_LAYOUT_CNF_DATA_T tData; /*!< Packet data. */
} HIL_GET_LOG_BOOK_LAYOUT_CNF_T;
#define HIL_GET_LOG_BOOK_LAYOUT_CNF_SIZE (sizeof(HIL_GET_LOG_BOOK_LAYOUT_CNF_DATA_T))
/*! \} ************************************************************************/
/******************************************************************************/
/*! \addtogroup HIL_CLEAR_LOG_BOOK_doc
*
* Clears all logbook entries. This also effects the Permanent entries.
*
* \{ */
/*! Clear log book entries request. */
typedef HIL_EMPTY_PACKET_T HIL_CLEAR_LOG_BOOK_REQ_T;
#define HIL_CLEAR_LOG_BOOK_REQ_SIZE (0)
/*! Clear log book entries confirmation. */
typedef HIL_EMPTY_PACKET_T HIL_CLEAR_LOG_BOOK_CNF_T;
#define HIL_CLEAR_LOG_BOOK_CNF_SIZE (0)
/*! \} ************************************************************************/
/******************************************************************************/
/*! \addtogroup HIL_SET_LOG_BOOK_SEVERITY_LEVEL_doc
*
* Set the severity levels which shall be logged.
*
* \{ */
/*! Set the severity levels request data. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST
{
/*! Bit list of severity levels which shall be logged.
* Set related bit position to 1 to enable logging of level, or set to 0
* to disable related level.
* e.g. ulLevelsToBeLogged = (1<<HIL_LOGBOOK_SEVERITY_LEVEL_CRITICAL) | (1<<HIL_LOGBOOK_SEVERITY_LEVEL_WARNING) */
uint32_t ulLevelsToBeLogged;
} HIL_SET_LOG_BOOK_SEVERITY_LEVEL_REQ_DATA_T;
/*! Set the severity levels request. */
typedef __HIL_PACKED_PRE struct __HIL_PACKED_POST
{
HIL_PACKET_HEADER_T tHead; /*!< Packet header. */
HIL_SET_LOG_BOOK_SEVERITY_LEVEL_REQ_DATA_T tData; /*!< Packet data. */
} HIL_SET_LOG_BOOK_SEVERITY_LEVEL_REQ_T;
#define HIL_SET_LOG_BOOK_SEVERITY_LEVEL_REQ_SIZE (sizeof(HIL_SET_LOG_BOOK_SEVERITY_LEVEL_REQ_DATA_T))
/*! Set the severity levels confirmation. */
typedef HIL_EMPTY_PACKET_T HIL_SET_LOG_BOOK_SEVERITY_LEVEL_CNF_T;
#define HIL_SET_LOG_BOOK_SEVERITY_LEVEL_CNF_SIZE (0)
/*! \} ************************************************************************/
#ifdef __HIL_PRAGMA_PACK_ENABLE
#pragma __HIL_PRAGMA_UNPACK_1(HIL_APPLICATIONCMD)
#endif
#endif /* HIL_APPLICATIONCMD_H_ */