NorthStar-Endurance-TestBench/NorthStar-Emotas-Stack/colib_sl/inc/co_edsparse.h

66 lines
1.8 KiB
C

/*
* co_edsparse.h - contains defines for eds parser services
*
* Copyright (c) 2016-2022 emotas embedded communication GmbH
*
*-------------------------------------------------------------------
* $Id: co_edsparse.h 43757 2022-11-30 11:29:14Z boe $
*-------------------------------------------------------------------
*
*
*
*/
/**
* \brief defines for eds parser services
*
* \file co_edsparse.h - contains defines for eds parser services
*/
#ifndef CO_EDSPARSER_H
#define CO_EDSPARSER_H 1
#include <co_datatype.h>
/* datatypes */
typedef struct {
UNSIGNED16 index;
UNSIGNED8 subIndex;
UNSIGNED8 dataType;
} CO_EDS_MAP_ENTRY_T;
typedef struct {
UNSIGNED16 nodeId;
UNSIGNED16 pdoNr;
UNSIGNED8 nrOfSubs;
UNSIGNED8 nrOfMappedObj;
CO_EDS_MAP_ENTRY_T mapEntry[8];
BOOL_T writable;
} CO_EDS_MAP_TABLE_T;
/** \brief function pointer to detect slave finish indication
* \param nodeId - node id
* \param pEdsFileName - EDS file name fitting the node
*
*/
typedef void (* CO_DETECT_SLAVE_FCT_T)(UNSIGNED8 nodeId, char *pEdsFileName);
RET_T coEdsparseAddEdsToRepository(const char *edsFilePath);
RET_T coEdsparseDetectSlaveEds(UNSIGNED8 nodeId,
UNSIGNED8 sdoClientNr, CO_DETECT_SLAVE_FCT_T finishFct);
RET_T coEdsparseReadEdsMapping(UNSIGNED8 nodeId,
const char *edsFileName);
CO_EDS_MAP_TABLE_T *coEdsparseGetRPdoMapEntry(UNSIGNED16 mapIdx);
CO_EDS_MAP_TABLE_T *coEdsparseGetTPdoMapEntry(UNSIGNED16 mapIdx);
UNSIGNED16 coEdsparseGetSupportedObjCnt(const char *edsFileName, const char *section);
RET_T coEdsparseGetObjectDesc(const char *edsFileName,
UNSIGNED16 index, UNSIGNED8 subIndex,
UNSIGNED16 *pDataType, UNSIGNED16 *pAttr, char *pDefaultVal);
RET_T coEdsparseGetIndexDesc(const char *edsFileName, const char *pSection,
UNSIGNED16 edsIdx, UNSIGNED16 *pIndex, UNSIGNED8 *pNrOfSubs);
#endif /* CO_EDSPARSER_H */