include/data.h
changeset 78 ac05410cc1b8
parent 71 95cd3376cc9f
child 91 ed2612282988
equal deleted inserted replaced
77:7b552428b48a 78:ac05410cc1b8
    91 	canSend_t canSend;	
    91 	canSend_t canSend;	
    92 	scanIndexOD_t scanIndexOD;
    92 	scanIndexOD_t scanIndexOD;
    93 };
    93 };
    94 
    94 
    95 /* A macro to initialize the data in client app.*/
    95 /* A macro to initialize the data in client app.*/
       
    96 /* CO_Data structure */
    96 #define CANOPEN_NODE_DATA_INITIALIZER(NODE_PREFIX) {\
    97 #define CANOPEN_NODE_DATA_INITIALIZER(NODE_PREFIX) {\
    97 	/* Object dictionary*/\
    98 	/* Object dictionary*/\
    98 	bDeviceNodeId:& NODE_PREFIX ## _bDeviceNodeId,\
    99 	& NODE_PREFIX ## _bDeviceNodeId,     /* bDeviceNodeId */\
    99 	objdict: NODE_PREFIX ## _objdict,\
   100 	NODE_PREFIX ## _objdict,             /* objdict  */\
   100 	count_sync: NODE_PREFIX ## _count_sync,\
   101 	NODE_PREFIX ## _count_sync,          /* count_sync */\
   101 	firstIndex: & NODE_PREFIX ## _firstIndex,\
   102 	& NODE_PREFIX ## _firstIndex,        /* firstIndex */\
   102 	lastIndex: & NODE_PREFIX ## _lastIndex,\
   103 	& NODE_PREFIX ## _lastIndex,         /* lastIndex */\
   103 	ObjdictSize: & NODE_PREFIX ## _ObjdictSize,\
   104 	& NODE_PREFIX ## _ObjdictSize,       /* ObjdictSize */\
   104 	iam_a_slave: & NODE_PREFIX ## _iam_a_slave,\
   105 	& NODE_PREFIX ## _iam_a_slave,       /* iam_a_slave */\
   105 	valueRangeTest: NODE_PREFIX ## _valueRangeTest,\
   106 	NODE_PREFIX ## _valueRangeTest,      /* valueRangeTest */\
   106 	\
   107 	\
   107 	/* SDO */\
   108 	/* SDO, structure s_transfer */\
   108 	transfers:{{\
   109 	{ /* WARNING. Only the first element of the table is well initialized. */\
   109 		nodeId: 0,\
   110 	  /* May be problems for "timer". Is it ok ? (FD)                      */\
   110 		index: 0,\
   111           {\
   111 		subIndex: 0,\
   112 		0,          /* nodeId */\
   112 		state: SDO_RESET,\
   113 		0,          /* wohami */\
   113 		toggle: 0,\
   114 		SDO_RESET,  /* state */\
   114 		count: 0,\
   115 		0,          /* toggle */\
   115 		offset: 0,\
   116 		0,          /* abortCode */\
   116 		data: {0,},\
   117 		0,          /* index */\
   117 		dataType: 0,\
   118 		0,          /* subIndex */\
   118 		timer: -1,\
   119 		0,          /* count */\
   119 		Callback: NULL},},\
   120 		0,          /* offset */\
   120 	SDOtimeoutError: &NODE_PREFIX ## _SDOtimeoutError,\
   121 		{0},        /* data (static use, so that all the table is initialize at 0)*/\
       
   122 		0,          /* dataType */\
       
   123 		-1,         /* timer */\
       
   124 		NULL        /* Callback */\
       
   125 	  }\
       
   126 	},\
       
   127 	&NODE_PREFIX ## _SDOtimeoutError,    /* SDOtimeoutError */\
   121 	\
   128 	\
   122 	/* State machine */\
   129 	/* State machine*/\
   123 	nodeState:Unknown_state,\
   130 	Unknown_state,      /* nodeState */\
   124 	CurrentCommunicationState:{\
   131 	/* structure s_state_communication */\
   125 		csBoot_Up: 0,\
   132 	{\
   126 		csSDO: 0,\
   133 		0,          /* csBoot_Up */\
   127 		csEmergency: 0,\
   134 		0,          /* csSDO */\
   128 		csSYNC: 0,\
   135 		0,          /* csEmergency */\
   129 		csHeartbeat: 0,\
   136 		0,          /* csSYNC */\
   130 		csPDO: 0},\
   137 		0,          /* csHeartbeat */\
   131 	initialisation: &NODE_PREFIX ## _initialisation,\
   138 		0           /* csPDO */\
   132 	preOperational: &NODE_PREFIX ## _preOperational,\
   139 	},\
   133 	operational: &NODE_PREFIX ## _operational,\
   140 	&NODE_PREFIX ## _initialisation,     /* initialisation */\
   134 	stopped: &NODE_PREFIX ## _stopped,\
   141 	&NODE_PREFIX ## _preOperational,     /* preOperational */\
       
   142 	&NODE_PREFIX ## _operational,        /* operational */\
       
   143 	&NODE_PREFIX ## _stopped,            /* stopped */\
   135 	\
   144 	\
   136 	/* NMT-heartbeat */\
   145 	/* NMT-heartbeat */\
   137 	ConsumerHeartbeatCount: & NODE_PREFIX ## _highestSubIndex_obj1016,\
   146 	& NODE_PREFIX ## _highestSubIndex_obj1016, /* ConsumerHeartbeatCount */\
   138 	ConsumerHeartbeatEntries: NODE_PREFIX ## _obj1016,\
   147 	NODE_PREFIX ## _obj1016,                   /* ConsumerHeartbeatEntries */\
   139 	ConsumerHeartBeatTimers: NODE_PREFIX ## _heartBeatTimers,\
   148 	NODE_PREFIX ## _heartBeatTimers,           /* ConsumerHeartBeatTimers  */\
   140 	ProducerHeartBeatTime: & NODE_PREFIX ## _obj1017,\
   149 	& NODE_PREFIX ## _obj1017,                 /* ProducerHeartBeatTime */\
   141 	ProducerHeartBeatTimer: TIMER_NONE,\
   150 	TIMER_NONE,                                /* ProducerHeartBeatTimer */\
   142 	heartbeatError: NODE_PREFIX ## _heartbeatError,\
   151 	NODE_PREFIX ## _heartbeatError,            /* heartbeatError */\
   143 	NMTable:{Unknown_state,},\
   152 	\
       
   153 	{Unknown_state},                           /* NMTable WARNING : Only the first value */\
       
   154                                                    /* is  well initialized at "Unknown_state". Is it ok ? (FD)*/\
   144 	\
   155 	\
   145 	/* SYNC */\
   156 	/* SYNC */\
   146 	syncTimer: TIMER_NONE,\
   157 	TIMER_NONE,                                /* syncTimer */\
   147 	COB_ID_Sync: & NODE_PREFIX ## _obj1005,\
   158 	& NODE_PREFIX ## _obj1005,                 /* COB_ID_Sync */\
   148 	Sync_Cycle_Period: & NODE_PREFIX ## _obj1006,\
   159 	& NODE_PREFIX ## _obj1006,                 /* Sync_Cycle_Period */\
   149 	/*Sync_window_length: & NODE_PREFIX ## _obj1007,*/\
   160 	/*& NODE_PREFIX ## _obj1007, */            /* Sync_window_length */\
   150 	post_sync: NODE_PREFIX ## _post_sync,\
   161 	NODE_PREFIX ## _post_sync,                 /* post_sync */\
   151 	post_TPDO: NODE_PREFIX ## _post_TPDO,\
   162 	NODE_PREFIX ## _post_TPDO,                 /* post_TPDO */\
   152 	\
   163 	\
   153 	/* PDO */\
   164 	/* PDO, structure s_process_var */\
   154 	process_var: {\
   165         {\
   155 		count: 0,\
   166 		0,          /* count */\
   156 		data: {0,}},\
   167 		{0}         /* data (static use, so that all the table is initialize at 0)*/\
   157 	\
   168         },\
       
   169         \
   158 	/* General */\
   170 	/* General */\
   159 	toggle: 0,\
   171 	0,                                         /* toggle */\
   160 	canSend: NODE_PREFIX ## _canSend,\
   172 	NODE_PREFIX ## _canSend,                   /* canSend */\
   161 	scanIndexOD: NODE_PREFIX ## _scanIndexOD\
   173 	NODE_PREFIX ## _scanIndexOD                /* scanIndexOD */\
   162 }
   174 }
   163 
   175 
   164 #endif /* __data_h__ */
   176 #endif /* __data_h__ */
   165 
   177 
   166 
   178