diff options
Diffstat (limited to 'ucs2-lib/inc/ucs_rsm_pv.h')
-rw-r--r-- | ucs2-lib/inc/ucs_rsm_pv.h | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/ucs2-lib/inc/ucs_rsm_pv.h b/ucs2-lib/inc/ucs_rsm_pv.h new file mode 100644 index 0000000..5d70aa5 --- /dev/null +++ b/ucs2-lib/inc/ucs_rsm_pv.h @@ -0,0 +1,145 @@ +/*------------------------------------------------------------------------------------------------*/ +/* UNICENS V2.1.0-3491 */ +/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */ +/* */ +/* This program is free software: you can redistribute it and/or modify */ +/* it under the terms of the GNU General Public License as published by */ +/* the Free Software Foundation, either version 2 of the License, or */ +/* (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU General Public License for more details. */ +/* */ +/* You should have received a copy of the GNU General Public License */ +/* along with this program. If not, see <http://www.gnu.org/licenses/>. */ +/* */ +/* You may also obtain this software under a propriety license from Microchip. */ +/* Please contact Microchip for further information. */ +/*------------------------------------------------------------------------------------------------*/ + +/*! + * \file + * \brief Public header file of the Extended Resource Manager. + * \cond UCS_INTERNAL_DOC + * \addtogroup G_RSM + * @{ + */ + +#ifndef UCS_RSM_PB_H +#define UCS_RSM_PB_H + +/*------------------------------------------------------------------------------------------------*/ +/* Includes */ +/*------------------------------------------------------------------------------------------------*/ +#include "ucs_message_pb.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +/*------------------------------------------------------------------------------------------------*/ +/* Enumerators */ +/*------------------------------------------------------------------------------------------------*/ +/*! \brief SyncLost Causes + * \ingroup G_UCS_RSM_TYPES + */ +typedef enum Rsm_SyncLostCause_ +{ + RSM_SLC_NWSHUTDOWN, /*!< \brief "Network Shutdown" causes the SyncLost */ + RSM_SLC_CFGNOTOK, /*!< \brief "Config Not Ok" causes the SyncLost */ + RSM_SLC_SYSMODIF /*!< \brief "System Changes like own node address or MPR changes" cause the SyncLost */ + +} Rsm_SyncLostCause_t; + +/*! \brief RSM Sync states + * \ingroup G_UCS_RSM_TYPES + */ +typedef enum Rsm_DevSyncState_ +{ + RSM_DEV_UNSYNCED, /*!< \brief RSM device is "Unsynced", i.e. not in remote control mode */ + RSM_DEV_SYNCING, /*!< \brief RSM device is "Synching" */ + RSM_DEV_SYNCED /*!< \brief RSM device is "Synced", i.e. in remote control mode */ + +} Rsm_DevSyncState_t; + +/*! \brief Result codes of the Extended Resource Manager. + * \ingroup G_UCS_RSM_TYPES + */ +typedef enum Rsm_ResultCode_ +{ + RSM_RES_SUCCESS, /*!< \brief Device Sync succeeded */ + RSM_RES_ERR_SYNC /*!< \brief Device Sync failed because of not Remote Control Mode */ + +} Rsm_ResultCode_t; + +/*------------------------------------------------------------------------------------------------*/ +/* Structures */ +/*------------------------------------------------------------------------------------------------*/ +/*! \brief Detailed information used for Extended Resource Manager results. */ +typedef struct Rsm_ResultDetails_ +{ + /*! \brief Holds the status of the transmission. */ + Ucs_MsgTxStatus_t tx_result; + /*! \brief Holds the results of the target device. */ + Ucs_StdResult_t inic_result; + +} Rsm_ResultDetails_t; + +/*! \brief Result structure of the Extended Resource Manager. */ +typedef struct Rsm_Result_ +{ + /*! \brief Result code. */ + Rsm_ResultCode_t code; + /*! \brief Detailed information on the returned result. */ + Rsm_ResultDetails_t details; + +} Rsm_Result_t; + +/*------------------------------------------------------------------------------------------------*/ +/* Type definitions */ +/*------------------------------------------------------------------------------------------------*/ +/*! \brief Callback function type to retrieve a RSM result + * \param self The instance (optional) + * \param result The result message object + * \ingroup G_UCS_RSM_TYPES + */ +typedef void (*Rsm_ResultCb_t)(void * self, Rsm_Result_t result); + +/*! + * @} + * \endcond + */ + +/*! + * \def UCS_NUM_REMOTE_DEVICES + * \brief Customer assignment for number of remote devices required by Resources Management modules. + * \details If the macro is not defined, the UNICENS library will use a default value of 0. The user + * can overwrite this default value by defining the macro. Valid values are in the range + * from 0 to 63. + * \ingroup G_UCS_XRM_CFG + */ +#ifndef UCS_NUM_REMOTE_DEVICES +# define UCS_NUM_REMOTE_DEVICES 0U +#endif + +/*! \def UCS_ADDR_LOCAL_DEV + * \brief Defines the address of the local device. + * \details This macro is used to define the address of the local device. It should be used by + * the application to trigger jobs on the local device. + * \ingroup G_UCS_IRM + */ +#define UCS_ADDR_LOCAL_DEV 0x0001U + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef UCS_RSM_PB_H */ + +/*------------------------------------------------------------------------------------------------*/ +/* End of file */ +/*------------------------------------------------------------------------------------------------*/ + |