-
Notifications
You must be signed in to change notification settings - Fork 17
/
def.h
178 lines (152 loc) · 5.85 KB
/
def.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
/*
This file is part of CanFestival, a library implementing CanOpen Stack.
Copyright (C): Edouard TISSERANT and Francis DUPIN
See COPYING file for copyrights details.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __def_h__
#define __def_h__
#include "config.h"
/** definitions used for object dictionary access. ie SDO Abort codes . (See DS 301 v.4.02 p.48)
*/
#define OD_SUCCESSFUL 0x00000000
#define OD_READ_NOT_ALLOWED 0x06010001
#define OD_WRITE_NOT_ALLOWED 0x06010002
#define OD_NO_SUCH_OBJECT 0x06020000
#define OD_NOT_MAPPABLE 0x06040041
#define OD_LENGTH_DATA_INVALID 0x06070010
#define OD_NO_SUCH_SUBINDEX 0x06090011
#define OD_VALUE_RANGE_EXCEEDED 0x06090030 /* Value range test result */
#define OD_VALUE_TOO_LOW 0x06090031 /* Value range test result */
#define OD_VALUE_TOO_HIGH 0x06090032 /* Value range test result */
/* Others SDO abort codes
*/
#define SDOABT_TOGGLE_NOT_ALTERNED 0x05030000
#define SDOABT_TIMED_OUT 0x05040000
#define SDOABT_OUT_OF_MEMORY 0x05040005 /* Size data exceed SDO_MAX_LENGTH_TRANSFER */
#define SDOABT_GENERAL_ERROR 0x08000000 /* Error size of SDO message */
#define SDOABT_LOCAL_CTRL_ERROR 0x08000021
/******************** CONSTANTS ****************/
/** Constantes which permit to define if a PDO frame
is a request one or a data one
*/
/* Should not be modified */
#define REQUEST 1
#define NOT_A_REQUEST 0
/* Misc constants */
/* -------------- */
/* Should not be modified */
#define Rx 0
#define Tx 1
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
/** Status of the SDO transmission
*/
#define SDO_RESET 0x0 /* Transmission not started. Init state. */
#define SDO_FINISHED 0x1 /* data are available */
#define SDO_ABORTED_RCV 0x80 /* Received an abort message. Data not available */
#define SDO_ABORTED_INTERNAL 0x85 /* Aborted but not because of an abort message. */
#define SDO_DOWNLOAD_IN_PROGRESS 0x2
#define SDO_UPLOAD_IN_PROGRESS 0x3
#define SDO_BLOCK_DOWNLOAD_IN_PROGRESS 0x4
#define SDO_BLOCK_UPLOAD_IN_PROGRESS 0x5
/** getReadResultNetworkDict may return any of above status value or this one
*/
#define SDO_PROVIDED_BUFFER_TOO_SMALL 0x8A
/* Status of the node during the SDO transfer : */
#define SDO_SERVER 0x1
#define SDO_CLIENT 0x2
#define SDO_UNKNOWN 0x3
/* SDOrx ccs: client command specifier */
#define DOWNLOAD_SEGMENT_REQUEST 0
#define INITIATE_DOWNLOAD_REQUEST 1
#define INITIATE_UPLOAD_REQUEST 2
#define UPLOAD_SEGMENT_REQUEST 3
#define ABORT_TRANSFER_REQUEST 4
#define BLOCK_UPLOAD_REQUEST 5
#define BLOCK_DOWNLOAD_REQUEST 6
/* SDOtx scs: server command specifier */
#define UPLOAD_SEGMENT_RESPONSE 0
#define DOWNLOAD_SEGMENT_RESPONSE 1
#define INITIATE_DOWNLOAD_RESPONSE 3
#define INITIATE_UPLOAD_RESPONSE 2
#define ABORT_TRANSFER_REQUEST 4
#define BLOCK_DOWNLOAD_RESPONSE 5
#define BLOCK_UPLOAD_RESPONSE 6
/* SDO block upload client subcommand */
#define SDO_BCS_INITIATE_UPLOAD_REQUEST 0
#define SDO_BCS_END_UPLOAD_REQUEST 1
#define SDO_BCS_UPLOAD_RESPONSE 2
#define SDO_BCS_START_UPLOAD 3
/* SDO block upload server subcommand */
#define SDO_BSS_INITIATE_UPLOAD_RESPONSE 0
#define SDO_BSS_END_UPLOAD_RESPONSE 1
/* SDO block download client subcommand */
#define SDO_BCS_INITIATE_DOWNLOAD_REQUEST 0
#define SDO_BCS_END_DOWNLOAD_REQUEST 1
/* SDO block download server subcommand */
#define SDO_BSS_INITIATE_DOWNLOAD_RESPONSE 0
#define SDO_BSS_END_DOWNLOAD_RESPONSE 1
#define SDO_BSS_DOWNLOAD_RESPONSE 2
/* Function Codes
---------------
defined in the canopen DS301
*/
#define NMT 0x0
#define SYNC 0x1
#define TIME_STAMP 0x2
#define PDO1tx 0x3
#define PDO1rx 0x4
#define PDO2tx 0x5
#define PDO2rx 0x6
#define PDO3tx 0x7
#define PDO3rx 0x8
#define PDO4tx 0x9
#define PDO4rx 0xA
#define SDOtx 0xB
#define SDOrx 0xC
#define NODE_GUARD 0xE
#define LSS 0xF
/* NMT Command Specifier, sent by master to change a slave state */
/* ------------------------------------------------------------- */
/* Should not be modified */
#define NMT_Start_Node 0x01
#define NMT_Stop_Node 0x02
#define NMT_Enter_PreOperational 0x80
#define NMT_Reset_Node 0x81
#define NMT_Reset_Comunication 0x82
/** Status of the LSS transmission
*/
#define LSS_RESET 0x0 /* Transmission not started. Init state. */
#define LSS_FINISHED 0x1 /* data are available */
#define LSS_ABORTED_INTERNAL 0x2 /* Aborted but not because of an abort message. */
#define LSS_TRANS_IN_PROGRESS 0x3
/* constantes used in the different state machines */
/* ----------------------------------------------- */
/* Must not be modified */
#define state1 0x01
#define state2 0x02
#define state3 0x03
#define state4 0x04
#define state5 0x05
#define state6 0x06
#define state7 0x07
#define state8 0x08
#define state9 0x09
#define state10 0x0A
#define state11 0x0B
#endif /* __def_h__ */