200 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			200 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
| * co_canopen.h - contains defines for all services
 | |
| *
 | |
| * Copyright (c) 2012-2024 emotas embedded communication GmbH
 | |
| *
 | |
| *-------------------------------------------------------------------
 | |
| * $Id: co_canopen.h 55050 2024-08-08 08:20:45Z boe $
 | |
| *-------------------------------------------------------------------
 | |
| *
 | |
| *
 | |
| */
 | |
| 
 | |
| /**
 | |
| * \brief defines for all services
 | |
| *
 | |
| * \file co_canopen.h - contains defines for all services
 | |
| *
 | |
| * This header inludes defines for all services of the CANopen library.
 | |
| * It can be included instead of header files of each service.
 | |
| *
 | |
| */
 | |
| 
 | |
| #ifndef CO_CANOPEN_H
 | |
| #define CO_CANOPEN_H 1
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif /* __cplusplus */
 | |
| 
 | |
| #include <co_datatype.h>
 | |
| #include <co_cob.h>
 | |
| #include <co_commtask.h>
 | |
| #include <co_drv.h>
 | |
| #include <co_common.h>
 | |
| #include <co_memcpy.h>
 | |
| #include <co_timer.h>
 | |
| #include <co_emcy.h>
 | |
| #include <co_cfgman.h>
 | |
| #include <co_led.h>
 | |
| #include <co_lss.h>
 | |
| #include <co_nmt.h>
 | |
| #include <co_odaccess.h>
 | |
| #include <co_odindex.h>
 | |
| #include <co_pdo.h>
 | |
| #include <co_sdo.h>
 | |
| #include <co_store.h>
 | |
| #include <co_sleep.h>
 | |
| #include <co_sync.h>
 | |
| #include <co_time.h>
 | |
| #include <co_edsparse.h>
 | |
| #ifdef CO_NETWORK_ROUTING_CNT
 | |
| # include <co_network.h>
 | |
| #endif /* CO_NETWORK_ROUTING_CNT */
 | |
| #ifdef CO_SRD_SUPPORTED
 | |
| # include <co_srd.h>
 | |
| #endif /* CO_SRD_SUPPORTED */
 | |
| #ifdef CO_FLYING_MASTER_SUPPORTED
 | |
| # include <co_flyingmaster.h>
 | |
| #endif /* CO_FLYING_MASTER_SUPPORTED */
 | |
| #ifdef CO_BOOTUP_MANAGER
 | |
| # include <co_manager.h>
 | |
| #endif /* CO_BOOTUP_MANAGER */
 | |
| #ifdef CO_USER_EXTENSION_SUPPORTED
 | |
| # include <co_user.h>
 | |
| #endif /* CO_USER_EXTENSION_SUPPORTED */
 | |
| #ifdef CO_GFC_SUPPORTED
 | |
| # include <co_gfc.h>
 | |
| #endif /* CO_GFC_SUPPORTED */
 | |
| #ifdef CO_SRDO_SUPPORTED
 | |
| # include <co_srdo.h>
 | |
| #endif /* CO_SRDO_SUPPORTED */
 | |
| #ifdef CO_ESDO_SUPPORTED
 | |
| # include <co_esdo.h>
 | |
| #endif /* CO_ESDO_SUPPORTED */
 | |
| #ifdef CO_IDNEGO_SUPPORTED
 | |
| # include <co_idnego.h>
 | |
| #endif /* CO_IDNEGO_SUPPORTED */
 | |
| 
 | |
| 
 | |
| /* actual CANopen stack software version */
 | |
| #define CO_STACK_VERSION	0x31300ul
 | |
| 
 | |
| 
 | |
| typedef struct {
 | |
| 	UNSIGNED8	master;		/**< device works as master */
 | |
| } CO_INIT_OPTION_T;
 | |
| 
 | |
| 
 | |
| /**
 | |
| * line parameter definition
 | |
| *
 | |
| * defines number of line parameter for services
 | |
| */
 | |
| 
 | |
| #define CO_SERVICE_INIT_STRUCT_VERSION	0x0005u
 | |
| 
 | |
| typedef struct  {
 | |
| 	UNSIGNED16		structVersion;
 | |
| 	UNSIGNED16		objectCnt[1];
 | |
| 	UNSIGNED16		pdoTrCnt[1];
 | |
| 	UNSIGNED16		pdoRecCnt[1];
 | |
| #ifdef CO_SRDO_SUPPORTED
 | |
| 	UNSIGNED16		srdoCnt[1];
 | |
| #endif /* CO_SRDO_SUPPORTED */
 | |
| 	UNSIGNED8		sdoServerCnt[1];
 | |
| 	UNSIGNED8		sdoClientCnt[1];
 | |
| 	UNSIGNED8		errorCtrlCnt[1];
 | |
| 	UNSIGNED8		emcyErrHistCnt[1];
 | |
| 	UNSIGNED8		emcyActiveErrHistCnt[1];
 | |
| 	UNSIGNED8		emcyConsCnt[1];
 | |
| #ifdef CO_NETWORK_ROUTING_CNT
 | |
| 	UNSIGNED8		networkCnt[1];
 | |
| #endif /* CO_NETWORK_ROUTING_CNT */
 | |
| 	UNSIGNED8		slaveAssign[1];
 | |
| 	UNSIGNED8		guardingCnt[1];
 | |
| 	UNSIGNED8		nodeId[1];
 | |
| 	CO_NODE_ID_T	nodeIdFct[1];
 | |
| } CO_SERVICE_INIT_VAL_T;
 | |
| 
 | |
| 
 | |
| /* function prototypes */
 | |
| 
 | |
| /**
 | |
| * \brief coCanOpenStackInit - init of CANopen stack
 | |
| *
 | |
| * This function is normally generated by the CANopen Device Designer
 | |
| * and responsible for the whole intialization of the CANopen stack.
 | |
| *
 | |
| * \param  pLoadFunction
 | |
| *			pointer to loadFunction
 | |
| *			pointer to mode List (NULL - use default line settings from CDD)
 | |
| *
 | |
| * \return RET_T
 | |
| */
 | |
| EXTERN_DECL RET_T coCanOpenStackInit(CO_EVENT_STORE_T pLoadFunction);
 | |
| 
 | |
| /**
 | |
| * \brief coCanOpenStackInit - init of CANopen stack
 | |
| * This function is normally generated by the CANopen Device Designer
 | |
| * and responsible for the intialization of the CANopen stack.
 | |
| * In addition to coCanOpenStackInit some options for services can be added.
 | |
| *
 | |
| * \param  pLoadFunction
 | |
| *			pointer to loadFunction
 | |
| * \param  pCoOptions
 | |
| *			pointer to coOptions
 | |
| *
 | |
| *
 | |
| * \return RET_T
 | |
| */
 | |
| EXTERN_DECL RET_T coCanOpenStackInitPara(CO_EVENT_STORE_T pLoadFunction,
 | |
| 		CO_INIT_OPTION_T *pCoOptions);
 | |
| 
 | |
| /**
 | |
| * \brief coCanOpenStackInit_common - init of common part of CANopen stack
 | |
| * This function is generated by the CANopen Device Designer
 | |
| * and responsible for the common intialization of the CANopen stack.
 | |
| * Normally called from coCanOpenStackInit();
 | |
| *
 | |
| * \param  pLoadFunction
 | |
| *			pointer to loadFunction
 | |
| *
 | |
| * \return RET_T
 | |
| */
 | |
| RET_T coCanOpenStackInit_common(CO_EVENT_STORE_T pLoadFunction
 | |
| );
 | |
| 
 | |
| /**
 | |
| * \brief coCanOpenStackInit_line - init one CAN line of CANopen stack
 | |
| * This function is generated by the CANopen Device Designer
 | |
| * and responsible for the line depending intialization of the CANopen stack.
 | |
| * Normally called from coCanOpenStackInit();
 | |
| *
 | |
| * \param  pCoOptions
 | |
| *			pointer to coOptions
 | |
| *
 | |
| * \return RET_T
 | |
| */
 | |
| RET_T coCanOpenStackInit_line(CO_INIT_OPTION_T *pCoOptions
 | |
| );
 | |
| 
 | |
| /**
 | |
| * \brief coCanOpenStackDeInit - deinit of CANopen stack
 | |
| *
 | |
| * This function is normally generated by the CANopen Device Designer
 | |
| * and responsible for the de-intialization of the CANopen stack.
 | |
| *
 | |
| */
 | |
| EXTERN_DECL void coCanOpenStackDeInit(void);
 | |
| 
 | |
| 
 | |
| EXTERN_DECL RET_T coCanOpenStackVarInit(CO_SERVICE_INIT_VAL_T *pServiceInitVals);
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif /* __cplusplus */
 | |
| 
 | |
| #endif /* CO_CANOPEN_H */
 |