/*
* ico_queue.h - contains defines for internal queue handling
*
* Copyright (c) 2012-2023 emotas embedded communication GmbH
*
*-------------------------------------------------------------------
* $Id: ico_queue.h 48620 2023-08-28 14:18:44Z boe $
*
*-------------------------------------------------------------------
*
*
*/

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

#ifndef ICO_QUEUE_H
#define ICO_QUEUE_H 1


/* datatypes */

typedef struct {
	CO_SERVICE_T 	service;		/* canopen service */
	UNSIGNED16		spec;			/* service specification */
	CO_CAN_REC_MSG_T	msg;		/* can message */
} CO_REC_DATA_T;



/* function prototypes */

BOOL_T	icoQueueGetReceiveMessage(CO_LINE_DECL, CO_REC_DATA_T *pRecData);
RET_T	icoTransmitMessage(CO_LINE_DECL, COB_REFERENZ_T cobRef,
			CO_CONST UNSIGNED8 *pData, UNSIGNED8 flags);
void	icoQueueHandler(CO_LINE_DECL);
void	icoQueueDisable(CO_LINE_DECL, BOOL_T on);
void	icoQueueDeleteInhibit(CO_LINE_DECL, COB_REFERENZ_T cobRef);
void	icoQueueVarInit(CO_CONST UNSIGNED16 *recQueueCnt, CO_CONST UNSIGNED16 *trQueueCnt);
BOOL_T	icoQueueInhibitActive(CO_LINE_DECL, COB_REFERENZ_T cobRef);
void	icoQueueSetSyncId(CO_LINE_DECL, UNSIGNED32 syncId, UNSIGNED8 flags, BOOL_T enable);

#endif /* ICO_QUEUE_H */

