/*
* ico_srdo.h - contains internal defines for SRDO
*
* Copyright (c) 2015-2023 emotas embedded communication GmbH
*
*-------------------------------------------------------------------
* $Id: ico_srdo.h 14544 2016-07-15 08:49:46Z boe $
*-------------------------------------------------------------------
*
*
*
*/

/**
* \file
* \brief dataty type header
*/

#ifndef ICO_SRDO_H
#define ICO_SRDO_H 1


/* datatypes */


/* function prototypes */

void	icoSrdoVarInit(UNSIGNED16 *pSrdoCnt);
void	*icoSrdoGetObjectAddr(CO_LINE_DECL, UNSIGNED16 index, UNSIGNED8 subIndex,
			CO_DATA_TYPE_T dataType);
RET_T	icoSrdoObjChanged(CO_LINE_DECL, UNSIGNED16 index, UNSIGNED8	subIndex,
			CO_DATA_TYPE_T dataType);
RET_T	icoSrdoCheckObjLimit_u8(CO_LINE_DECL, UNSIGNED16 index, UNSIGNED8 subIndex,
			CO_DATA_TYPE_T dataType, UNSIGNED8	value);
RET_T	icoSrdoCheckObjLimit_u16(CO_LINE_DECL, UNSIGNED16 index, UNSIGNED8 subIndex,
			CO_DATA_TYPE_T dataType, UNSIGNED16	value);
RET_T	icoSrdoCheckObjLimit_u32(CO_LINE_DECL, UNSIGNED16 index, UNSIGNED8 subIndex,
			CO_DATA_TYPE_T dataType, UNSIGNED32	value);
void	icoSrdoOperational(CO_LINE_DECL);
void	icoSrdoPreOperational(CO_LINE_DECL);
RET_T	icoSrdoCheckOperational(CO_LINE_DECL);
void	icoSrdoSetDefaultValue(CO_LINE_DECL);
void	icoSrdoReset(CO_LINE_DECL);
void	icoSrdoHandler(CO_LINE_DECL, CO_CONST CO_REC_DATA_T *pRecData);
void	icoSrdoTimerCheck(CO_LINE_DECL);

#endif /* ICO_SRDO_H */
