include/data.h
author Robert Lehmann <robert.lehmann@sitec-systems.de>
Tue, 28 Jul 2015 16:36:55 +0200
changeset 793 72e9e1064432
parent 750 bfb63ff7106e
permissions -rwxr-xr-x
timers_unix: Fix termination problem of WaitReceiveTaskEnd

The function pthread_kill sends the Signal thread and to the own process.
If you use this construct than the application which calls uses the
canfestival api will terminate at the call of canClose. To avoid that
use pthread_cancel instead of pthread_kill. To use the pthread_cancel call
you need to set the cancel ability in the thread function. That means
you need to call pthread_setcancelstate and pthread_setcanceltype.
For the termination of the thread at any time it is important to set the
cancel type to PTHREAD_CANCEL_ASYNCHRONOUS.
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     1
/*
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     2
This file is part of CanFestival, a library implementing CanOpen Stack. 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     3
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     4
Copyright (C): Edouard TISSERANT and Francis DUPIN
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     5
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     6
See COPYING file for copyrights details.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     7
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     8
This library is free software; you can redistribute it and/or
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     9
modify it under the terms of the GNU Lesser General Public
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    10
License as published by the Free Software Foundation; either
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    11
version 2.1 of the License, or (at your option) any later version.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    12
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    13
This library is distributed in the hope that it will be useful,
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    14
but WITHOUT ANY WARRANTY; without even the implied warranty of
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    16
Lesser General Public License for more details.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    17
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    18
You should have received a copy of the GNU Lesser General Public
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    19
License along with this library; if not, write to the Free Software
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    20
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    21
*/
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    22
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    23
#ifndef __data_h__
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    24
#define __data_h__
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    25
251
cab66ef3e68e Some fixes for C++
etisserant
parents: 235
diff changeset
    26
#ifdef __cplusplus
cab66ef3e68e Some fixes for C++
etisserant
parents: 235
diff changeset
    27
extern "C" {
cab66ef3e68e Some fixes for C++
etisserant
parents: 235
diff changeset
    28
#endif
cab66ef3e68e Some fixes for C++
etisserant
parents: 235
diff changeset
    29
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 32
diff changeset
    30
/* declaration of CO_Data type let us include all necessary headers
95cd3376cc9f compilator compatitibility
frdupin
parents: 32
diff changeset
    31
 struct struct_CO_Data can then be defined later
95cd3376cc9f compilator compatitibility
frdupin
parents: 32
diff changeset
    32
 */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    33
typedef struct struct_CO_Data CO_Data;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    34
145
e747d2e26af0 Win32 Native support and dynamicaly loaded CAN drivers for Linux, Cygwin and Win32.
etisserant
parents: 91
diff changeset
    35
#include "applicfg.h"
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    36
#include "def.h"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    37
#include "can.h"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    38
#include "objdictdef.h"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    39
#include "objacces.h"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    40
#include "sdo.h"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    41
#include "pdo.h"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    42
#include "states.h"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    43
#include "lifegrd.h"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    44
#include "sync.h"
383
7d8afedb8769 Fixed missing includes causing warnings
etisserant
parents: 381
diff changeset
    45
#include "nmtSlave.h"
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    46
#include "nmtMaster.h"
284
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
    47
#include "emcy.h"
343
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
    48
#ifdef CO_ENABLE_LSS
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
    49
#include "lss.h"
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
    50
#endif
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    51
528
0a30e161d63c Re-write doxygen tags in headers files to generate User API documentation
greg
parents: 517
diff changeset
    52
/**
0a30e161d63c Re-write doxygen tags in headers files to generate User API documentation
greg
parents: 517
diff changeset
    53
 * @ingroup od
561
f9be4262c68d Add doxygen comments in headers file
greg
parents: 528
diff changeset
    54
 * @brief This structure contains all necessary informations to define a CANOpen node 
528
0a30e161d63c Re-write doxygen tags in headers files to generate User API documentation
greg
parents: 517
diff changeset
    55
 */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    56
struct struct_CO_Data {
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 32
diff changeset
    57
	/* Object dictionary */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    58
	UNS8 *bDeviceNodeId;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    59
	const indextable *objdict;
235
f812bf6b7237 Preliminary implementation of Event Timer and Inhibit Timer driven TPDO
etisserant
parents: 204
diff changeset
    60
	s_PDO_status *PDO_status;
670
e37511baf56b New feature : event timers allowed for RxPDOs (subidx 5 in RxPDO com paramaters)
Mongo
parents: 669
diff changeset
    61
	TIMER_HANDLE *RxPDO_EventTimers;
e37511baf56b New feature : event timers allowed for RxPDOs (subidx 5 in RxPDO com paramaters)
Mongo
parents: 669
diff changeset
    62
	void (*RxPDO_EventTimers_Handler)(CO_Data*, UNS32);
475
4b63ea646964 Added NMT reset callbacks, patch from Edward
etisserant
parents: 405
diff changeset
    63
	const quick_index *firstIndex;
4b63ea646964 Added NMT reset callbacks, patch from Edward
etisserant
parents: 405
diff changeset
    64
	const quick_index *lastIndex;
4b63ea646964 Added NMT reset callbacks, patch from Edward
etisserant
parents: 405
diff changeset
    65
	const UNS16 *ObjdictSize;
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    66
	const UNS8 *iam_a_slave;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    67
	valueRangeTest_t valueRangeTest;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    68
	
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 32
diff changeset
    69
	/* SDO */
694
8dd1e58b3815 There is no English word "transfert". Fix all the typos.
JaFojtik
parents: 670
diff changeset
    70
	s_transfer transfers[SDO_MAX_SIMULTANEOUS_TRANSFERS];
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 32
diff changeset
    71
	/* s_sdo_parameter *sdo_parameters; */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    72
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 32
diff changeset
    73
	/* State machine */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    74
	e_nodeState nodeState;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    75
	s_state_communication CurrentCommunicationState;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    76
	initialisation_t initialisation;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    77
	preOperational_t preOperational;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    78
	operational_t operational;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    79
	stopped_t stopped;
475
4b63ea646964 Added NMT reset callbacks, patch from Edward
etisserant
parents: 405
diff changeset
    80
     void (*NMT_Slave_Node_Reset_Callback)(CO_Data*);
4b63ea646964 Added NMT reset callbacks, patch from Edward
etisserant
parents: 405
diff changeset
    81
     void (*NMT_Slave_Communications_Reset_Callback)(CO_Data*);
4b63ea646964 Added NMT reset callbacks, patch from Edward
etisserant
parents: 405
diff changeset
    82
     
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 32
diff changeset
    83
	/* NMT-heartbeat */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    84
	UNS8 *ConsumerHeartbeatCount;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    85
	UNS32 *ConsumerHeartbeatEntries;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    86
	TIMER_HANDLE *ConsumerHeartBeatTimers;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    87
	UNS16 *ProducerHeartBeatTime;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    88
	TIMER_HANDLE ProducerHeartBeatTimer;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    89
	heartbeatError_t heartbeatError;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    90
	e_nodeState NMTable[NMT_MAX_NODE_ID]; 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    91
750
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
    92
	/* NMT-nodeguarding */
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
    93
	TIMER_HANDLE GuardTimeTimer;
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
    94
	TIMER_HANDLE LifeTimeTimer;
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
    95
	nodeguardError_t nodeguardError;
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
    96
	UNS16 *GuardTime;
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
    97
	UNS8 *LifeTimeFactor;
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
    98
	UNS8 nodeGuardStatus[NMT_MAX_NODE_ID];
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
    99
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 32
diff changeset
   100
	/* SYNC */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   101
	TIMER_HANDLE syncTimer;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   102
	UNS32 *COB_ID_Sync;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   103
	UNS32 *Sync_Cycle_Period;
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 32
diff changeset
   104
	/*UNS32 *Sync_window_length;;*/
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   105
	post_sync_t post_sync;
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   106
	post_TPDO_t post_TPDO;
343
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   107
	post_SlaveBootup_t post_SlaveBootup;
664
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   108
    post_SlaveStateChange_t post_SlaveStateChange;
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   109
	
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 32
diff changeset
   110
	/* General */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   111
	UNS8 toggle;
405
487b37176423 Changed CAN_HANDLE into CAN_PORT in data.h and lss.h. More semanticaly correct.
etisserant
parents: 384
diff changeset
   112
	CAN_PORT canHandle;	
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   113
	scanIndexOD_t scanIndexOD;
161
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
   114
	storeODSubIndex_t storeODSubIndex; 
178
01d81faa3350 Add concise DCF support
greg
parents: 172
diff changeset
   115
	
01d81faa3350 Add concise DCF support
greg
parents: 172
diff changeset
   116
	/* DCF concise */
322
78615d6a8ddd One more compilation warning fixed.
etisserant
parents: 320
diff changeset
   117
    const indextable* dcf_odentry;
204
44ce74232ccb Some fixes for visual studio C compiler compatiblity.
etisserant
parents: 178
diff changeset
   118
	UNS8* dcf_cursor;
320
f82e758840bd Some fixes suggested by Luis Jim?nez, plus some minor enhancements in DCF.
etisserant
parents: 314
diff changeset
   119
	UNS32 dcf_entries_count;
669
50da44ebaf00 Configuration manager with DCF in object 0x1F22 rewritten almost from scratch.
Mongo
parents: 664
diff changeset
   120
	UNS8 dcf_status;
50da44ebaf00 Configuration manager with DCF in object 0x1F22 rewritten almost from scratch.
Mongo
parents: 664
diff changeset
   121
    UNS32 dcf_size;
50da44ebaf00 Configuration manager with DCF in object 0x1F22 rewritten almost from scratch.
Mongo
parents: 664
diff changeset
   122
    UNS8* dcf_data;
178
01d81faa3350 Add concise DCF support
greg
parents: 172
diff changeset
   123
	
284
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   124
	/* EMCY */
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   125
	e_errorState error_state;
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   126
	UNS8 error_history_size;
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   127
	UNS8* error_number;
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   128
	UNS32* error_first_element;
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   129
	UNS8* error_register;
314
68e83c3ffbb5 Better EMCY support. Now EMCY COB-ID depend on OD 1014h entry, as told in DS-301.
etisserant
parents: 284
diff changeset
   130
    UNS32* error_cobid;
284
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   131
	s_errors error_data[EMCY_MAX_ERRORS];
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   132
	post_emcy_t post_emcy;
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   133
	
343
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   134
#ifdef CO_ENABLE_LSS
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   135
	/* LSS */
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   136
	lss_transfer_t lss_transfer;
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   137
	lss_StoreConfiguration_t lss_StoreConfiguration;
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   138
#endif	
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   139
};
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   140
91
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   141
#define NMTable_Initializer Unknown_state,
750
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
   142
#define nodeGuardStatus_Initializer 0x00,
91
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   143
636
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   144
#ifdef SDO_DYNAMIC_BUFFER_ALLOCATION
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   145
#define s_transfer_Initializer {\
750
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
   146
		0,          /* CliServ{REPEAT_NMT_MAX_NODE_ID_TIMES(NMTable_Initializer)},Nbr */\
636
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   147
		0,          /* wohami */\
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   148
		SDO_RESET,  /* state */\
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   149
		0,          /* toggle */\
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   150
		0,          /* abortCode */\
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   151
		0,          /* index */\
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   152
		0,          /* subIndex */\
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   153
		0,          /* count */\
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   154
		0,          /* offset */\
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   155
		{0},        /* data (static use, so that all the table is initialize at 0)*/\
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   156
    NULL,       /* dynamicData */ \
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   157
    0,          /* dynamicDataSize */ \
664
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   158
		0,          /* peerCRCsupport */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   159
		0,          /* blksize */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   160
		0,          /* ackseq */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   161
		0,          /* objsize */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   162
		0,          /* lastblockoffset */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   163
		0,          /* seqno */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   164
		0,          /* endfield */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   165
		RXSTEP_INIT,/* rxstep */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   166
		{0},        /* tmpData */\
636
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   167
		0,          /* dataType */\
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   168
		-1,         /* timer */\
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   169
		NULL        /* Callback */\
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   170
	  },
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   171
#else
91
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   172
#define s_transfer_Initializer {\
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   173
		0,          /* nodeId */\
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   174
		0,          /* wohami */\
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   175
		SDO_RESET,  /* state */\
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   176
		0,          /* toggle */\
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   177
		0,          /* abortCode */\
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   178
		0,          /* index */\
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   179
		0,          /* subIndex */\
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   180
		0,          /* count */\
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   181
		0,          /* offset */\
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   182
		{0},        /* data (static use, so that all the table is initialize at 0)*/\
664
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   183
		0,          /* peerCRCsupport */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   184
		0,          /* blksize */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   185
		0,          /* ackseq */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   186
		0,          /* objsize */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   187
		0,          /* lastblockoffset */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   188
		0,          /* seqno */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   189
		0,          /* endfield */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   190
		RXSTEP_INIT,/* rxstep */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   191
		{0},        /* tmpData */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   192
		0,          /*  */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   193
		-1,         /*  */\
a03f0aa7d219 CHANGE: SDO block mode added, without CRC support
fbeaulier
parents: 636
diff changeset
   194
		NULL        /*  */\
91
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   195
	  },
636
033fe6f1ec3c ADDED: - dynamic memory allocation for sdo transfer using malloc and free
Christian Taedcke
parents: 635
diff changeset
   196
#endif //SDO_DYNAMIC_BUFFER_ALLOCATION
91
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   197
284
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   198
#define ERROR_DATA_INITIALIZER \
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   199
	{\
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   200
	0, /* errCode */\
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   201
	0, /* errRegMask */\
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   202
	0 /* active */\
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   203
	},
343
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   204
	
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   205
#ifdef CO_ENABLE_LSS
381
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   206
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   207
#ifdef CO_ENABLE_LSS_FS	
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   208
#define lss_fs_Initializer \
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   209
		,0,						/* IDNumber */\
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   210
  		128, 					/* BitChecked */\
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   211
  		0,						/* LSSSub */\
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   212
  		0, 						/* LSSNext */\
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   213
  		0, 						/* LSSPos */\
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   214
  		LSS_FS_RESET,			/* FastScan_SM */\
517
003679edc437 FastScan review
groke6
parents: 475
diff changeset
   215
  		-1,						/* timerFS */\
003679edc437 FastScan review
groke6
parents: 475
diff changeset
   216
  		{{0,0,0,0},{0,0,0,0}}   /* lss_fs_transfer */
381
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   217
#else
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   218
#define lss_fs_Initializer
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   219
#endif		
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   220
343
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   221
#define lss_Initializer {\
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   222
		LSS_RESET,  			/* state */\
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   223
		0,						/* command */\
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   224
		LSS_WAITING_MODE, 		/* mode */\
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   225
		0,						/* dat1 */\
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   226
		0,						/* dat2 */\
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   227
		0,          			/* NodeID */\
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   228
		0,          			/* addr_sel_match */\
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   229
		0,          			/* addr_ident_match */\
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   230
		"none",         		/* BaudRate */\
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   231
		0,          			/* SwitchDelay */\
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   232
		SDELAY_OFF,   			/* SwitchDelayState */\
381
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   233
		NULL,					/* canHandle_t */\
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   234
		-1,						/* TimerMSG */\
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   235
		-1,          			/* TimerSDELAY */\
343
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   236
		NULL,        			/* Callback */\
381
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   237
		0						/* LSSanswer */\
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   238
		lss_fs_Initializer		/*FastScan service initialization */\
343
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   239
	  },\
384
83793fc7ce48 added canChangeBaudRate to the driver interface
groke6
parents: 383
diff changeset
   240
	  NULL 	/* _lss_StoreConfiguration*/
343
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   241
#else
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   242
#define lss_Initializer
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   243
#endif
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   244
284
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   245
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 32
diff changeset
   246
/* A macro to initialize the data in client app.*/
78
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   247
/* CO_Data structure */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   248
#define CANOPEN_NODE_DATA_INITIALIZER(NODE_PREFIX) {\
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   249
	/* Object dictionary*/\
78
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   250
	& NODE_PREFIX ## _bDeviceNodeId,     /* bDeviceNodeId */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   251
	NODE_PREFIX ## _objdict,             /* objdict  */\
235
f812bf6b7237 Preliminary implementation of Event Timer and Inhibit Timer driven TPDO
etisserant
parents: 204
diff changeset
   252
	NODE_PREFIX ## _PDO_status,          /* PDO_status */\
670
e37511baf56b New feature : event timers allowed for RxPDOs (subidx 5 in RxPDO com paramaters)
Mongo
parents: 669
diff changeset
   253
	NULL,                                /* RxPDO_EventTimers */\
e37511baf56b New feature : event timers allowed for RxPDOs (subidx 5 in RxPDO com paramaters)
Mongo
parents: 669
diff changeset
   254
	_RxPDO_EventTimers_Handler,          /* RxPDO_EventTimers_Handler */\
78
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   255
	& NODE_PREFIX ## _firstIndex,        /* firstIndex */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   256
	& NODE_PREFIX ## _lastIndex,         /* lastIndex */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   257
	& NODE_PREFIX ## _ObjdictSize,       /* ObjdictSize */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   258
	& NODE_PREFIX ## _iam_a_slave,       /* iam_a_slave */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   259
	NODE_PREFIX ## _valueRangeTest,      /* valueRangeTest */\
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   260
	\
78
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   261
	/* SDO, structure s_transfer */\
91
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   262
	{\
694
8dd1e58b3815 There is no English word "transfert". Fix all the typos.
JaFojtik
parents: 670
diff changeset
   263
          REPEAT_SDO_MAX_SIMULTANEOUS_TRANSFERS_TIMES(s_transfer_Initializer)\
78
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   264
	},\
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   265
	\
78
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   266
	/* State machine*/\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   267
	Unknown_state,      /* nodeState */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   268
	/* structure s_state_communication */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   269
	{\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   270
		0,          /* csBoot_Up */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   271
		0,          /* csSDO */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   272
		0,          /* csEmergency */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   273
		0,          /* csSYNC */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   274
		0,          /* csHeartbeat */\
381
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   275
		0,           /* csPDO */\
854c43cdc24a added TestMasterSlaveLSS. LSS protocol revised.
groke6
parents: 361
diff changeset
   276
		0           /* csLSS */\
78
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   277
	},\
167
b2f8b91d89b5 Removed compilation warnings with some GCC.
etisserant
parents: 161
diff changeset
   278
	_initialisation,     /* initialisation */\
b2f8b91d89b5 Removed compilation warnings with some GCC.
etisserant
parents: 161
diff changeset
   279
	_preOperational,     /* preOperational */\
b2f8b91d89b5 Removed compilation warnings with some GCC.
etisserant
parents: 161
diff changeset
   280
	_operational,        /* operational */\
b2f8b91d89b5 Removed compilation warnings with some GCC.
etisserant
parents: 161
diff changeset
   281
	_stopped,            /* stopped */\
475
4b63ea646964 Added NMT reset callbacks, patch from Edward
etisserant
parents: 405
diff changeset
   282
	NULL,                /* NMT node reset callback */\
4b63ea646964 Added NMT reset callbacks, patch from Edward
etisserant
parents: 405
diff changeset
   283
	NULL,                /* NMT communications reset callback */\
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   284
	\
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   285
	/* NMT-heartbeat */\
78
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   286
	& NODE_PREFIX ## _highestSubIndex_obj1016, /* ConsumerHeartbeatCount */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   287
	NODE_PREFIX ## _obj1016,                   /* ConsumerHeartbeatEntries */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   288
	NODE_PREFIX ## _heartBeatTimers,           /* ConsumerHeartBeatTimers  */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   289
	& NODE_PREFIX ## _obj1017,                 /* ProducerHeartBeatTime */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   290
	TIMER_NONE,                                /* ProducerHeartBeatTimer */\
167
b2f8b91d89b5 Removed compilation warnings with some GCC.
etisserant
parents: 161
diff changeset
   291
	_heartbeatError,           /* heartbeatError */\
78
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   292
	\
91
ed2612282988 - Better array initialization in data.h CANOPEN_NODE_DATA_INITIALIZER macro. Use a little hack with configure and config.h to create the "pure Ansi C" initializer.
etisserant
parents: 78
diff changeset
   293
	{REPEAT_NMT_MAX_NODE_ID_TIMES(NMTable_Initializer)},\
78
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   294
                                                   /* is  well initialized at "Unknown_state". Is it ok ? (FD)*/\
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   295
	\
750
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
   296
	/* NMT-nodeguarding */\
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
   297
	TIMER_NONE,                                /* GuardTimeTimer */\
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
   298
	TIMER_NONE,                                /* LifeTimeTimer */\
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
   299
	_nodeguardError,           /* nodeguardError */\
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
   300
	& NODE_PREFIX ## _obj100C,                 /* GuardTime */\
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
   301
	& NODE_PREFIX ## _obj100D,                 /* LifeTimeFactor */\
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
   302
	{REPEAT_NMT_MAX_NODE_ID_TIMES(nodeGuardStatus_Initializer)},\
bfb63ff7106e Implementation of a basic working node-guarding
mwildbolz
parents: 694
diff changeset
   303
	\
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   304
	/* SYNC */\
78
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   305
	TIMER_NONE,                                /* syncTimer */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   306
	& NODE_PREFIX ## _obj1005,                 /* COB_ID_Sync */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   307
	& NODE_PREFIX ## _obj1006,                 /* Sync_Cycle_Period */\
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   308
	/*& NODE_PREFIX ## _obj1007, */            /* Sync_window_length */\
167
b2f8b91d89b5 Removed compilation warnings with some GCC.
etisserant
parents: 161
diff changeset
   309
	_post_sync,                 /* post_sync */\
b2f8b91d89b5 Removed compilation warnings with some GCC.
etisserant
parents: 161
diff changeset
   310
	_post_TPDO,                 /* post_TPDO */\
343
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   311
	_post_SlaveBootup,			/* post_SlaveBootup */\
635
30a0e926bb2e ADDED: - new callback post_SlaveStateChange so that a master can monitor the state of its slave nodes using a heartbeat.
Christian Taedcke
parents: 561
diff changeset
   312
  _post_SlaveStateChange,			/* post_SlaveStateChange */\
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   313
	\
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   314
	/* General */\
78
ac05410cc1b8 compilers compatibility
frdupin
parents: 71
diff changeset
   315
	0,                                         /* toggle */\
167
b2f8b91d89b5 Removed compilation warnings with some GCC.
etisserant
parents: 161
diff changeset
   316
	NULL,                   /* canSend */\
161
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
   317
	NODE_PREFIX ## _scanIndexOD,                /* scanIndexOD */\
178
01d81faa3350 Add concise DCF support
greg
parents: 172
diff changeset
   318
	_storeODSubIndex,                /* storeODSubIndex */\
320
f82e758840bd Some fixes suggested by Luis Jim?nez, plus some minor enhancements in DCF.
etisserant
parents: 314
diff changeset
   319
    /* DCF concise */\
f82e758840bd Some fixes suggested by Luis Jim?nez, plus some minor enhancements in DCF.
etisserant
parents: 314
diff changeset
   320
    NULL,       /*dcf_odentry*/\
178
01d81faa3350 Add concise DCF support
greg
parents: 172
diff changeset
   321
	NULL,		/*dcf_cursor*/\
320
f82e758840bd Some fixes suggested by Luis Jim?nez, plus some minor enhancements in DCF.
etisserant
parents: 314
diff changeset
   322
	1,		/*dcf_entries_count*/\
669
50da44ebaf00 Configuration manager with DCF in object 0x1F22 rewritten almost from scratch.
Mongo
parents: 664
diff changeset
   323
	0,		/* dcf_status*/\
50da44ebaf00 Configuration manager with DCF in object 0x1F22 rewritten almost from scratch.
Mongo
parents: 664
diff changeset
   324
    0,      /* dcf_size */\
50da44ebaf00 Configuration manager with DCF in object 0x1F22 rewritten almost from scratch.
Mongo
parents: 664
diff changeset
   325
    NULL,   /* dcf_data */\
284
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   326
	\
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   327
	/* EMCY */\
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   328
	Error_free,                      /* error_state */\
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   329
	sizeof(NODE_PREFIX ## _obj1003) / sizeof(NODE_PREFIX ## _obj1003[0]),      /* error_history_size */\
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   330
	& NODE_PREFIX ## _highestSubIndex_obj1003,    /* error_number */\
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   331
	& NODE_PREFIX ## _obj1003[0],    /* error_first_element */\
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   332
	& NODE_PREFIX ## _obj1001,       /* error_register */\
314
68e83c3ffbb5 Better EMCY support. Now EMCY COB-ID depend on OD 1014h entry, as told in DS-301.
etisserant
parents: 284
diff changeset
   333
    & NODE_PREFIX ## _obj1014,       /* error_cobid */\
284
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   334
	/* error_data: structure s_errors */\
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   335
	{\
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   336
	REPEAT_EMCY_MAX_ERRORS_TIMES(ERROR_DATA_INITIALIZER)\
24bf3d692993 Implemented EMCY objects.
luis
parents: 251
diff changeset
   337
	},\
343
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   338
	_post_emcy,              /* post_emcy */\
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   339
	/* LSS */\
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 322
diff changeset
   340
	lss_Initializer\
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   341
}
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   342
251
cab66ef3e68e Some fixes for C++
etisserant
parents: 235
diff changeset
   343
#ifdef __cplusplus
cab66ef3e68e Some fixes for C++
etisserant
parents: 235
diff changeset
   344
};
cab66ef3e68e Some fixes for C++
etisserant
parents: 235
diff changeset
   345
#endif
cab66ef3e68e Some fixes for C++
etisserant
parents: 235
diff changeset
   346
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 32
diff changeset
   347
#endif /* __data_h__ */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   348
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   349