include/def.h
author etisserant
Thu, 20 Mar 2008 11:41:06 +0100
changeset 421 6221b4db8c42
parent 343 118c1cabd0b0
child 664 a03f0aa7d219
permissions -rw-r--r--
Added support for null terminated strings as VISIBLE_STRING.
Also fixed size declaration problem with visible_strings.
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
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    24
#ifndef __def_h__
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    25
#define __def_h__
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    26
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    27
#include "config.h"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    28
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    29
/** definitions used for object dictionary access. ie SDO Abort codes . (See DS 301 v.4.02 p.48)
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    30
 */
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    31
#define OD_SUCCESSFUL 	             0x00000000
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    32
#define OD_READ_NOT_ALLOWED          0x06010001
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    33
#define OD_WRITE_NOT_ALLOWED         0x06010002
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    34
#define OD_NO_SUCH_OBJECT            0x06020000
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    35
#define OD_NOT_MAPPABLE              0x06040041
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    36
#define OD_LENGTH_DATA_INVALID       0x06070010
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    37
#define OD_NO_SUCH_SUBINDEX 	     0x06090011
288
26015ee2c2c9 Modified codes in MSG_ERR and MSG_WAR in emcy.c
luis
parents: 235
diff changeset
    38
#define OD_VALUE_RANGE_EXCEEDED      0x06090030 /* Value range test result */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    39
#define OD_VALUE_TOO_LOW             0x06090031 /* Value range test result */
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    40
#define OD_VALUE_TOO_HIGH            0x06090032 /* Value range test result */
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    41
/* Others SDO abort codes 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    42
 */
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    43
#define SDOABT_TOGGLE_NOT_ALTERNED   0x05030000
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    44
#define SDOABT_TIMED_OUT             0x05040000
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    45
#define SDOABT_OUT_OF_MEMORY         0x05040005 /* Size data exceed SDO_MAX_LENGTH_TRANSFERT */
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    46
#define SDOABT_GENERAL_ERROR         0x08000000 /* Error size of SDO message */
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    47
#define SDOABT_LOCAL_CTRL_ERROR      0x08000021 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    48
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    49
/******************** CONSTANTS ****************/
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    50
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    51
/** Constantes which permit to define if a PDO frame
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    52
   is a request one or a data one
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    53
*/
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    54
/* Should not be modified */
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    55
#define REQUEST 1
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    56
#define NOT_A_REQUEST 0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    57
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 0
diff changeset
    58
/* Misc constants */
95cd3376cc9f compilator compatitibility
frdupin
parents: 0
diff changeset
    59
/* -------------- */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    60
/* Should not be modified */
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    61
#define Rx 0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    62
#define Tx 1
320
f82e758840bd Some fixes suggested by Luis Jim?nez, plus some minor enhancements in DCF.
etisserant
parents: 301
diff changeset
    63
#ifndef TRUE
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    64
#define TRUE  1
320
f82e758840bd Some fixes suggested by Luis Jim?nez, plus some minor enhancements in DCF.
etisserant
parents: 301
diff changeset
    65
#endif
f82e758840bd Some fixes suggested by Luis Jim?nez, plus some minor enhancements in DCF.
etisserant
parents: 301
diff changeset
    66
#ifndef FALSE
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    67
#define FALSE 0
320
f82e758840bd Some fixes suggested by Luis Jim?nez, plus some minor enhancements in DCF.
etisserant
parents: 301
diff changeset
    68
#endif
235
f812bf6b7237 Preliminary implementation of Event Timer and Inhibit Timer driven TPDO
etisserant
parents: 71
diff changeset
    69
    
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    70
/** Status of the SDO transmission
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    71
 */
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 0
diff changeset
    72
#define SDO_RESET                0x0      /* Transmission not started. Init state. */
95cd3376cc9f compilator compatitibility
frdupin
parents: 0
diff changeset
    73
#define SDO_FINISHED             0x1      /* data are available */                          
95cd3376cc9f compilator compatitibility
frdupin
parents: 0
diff changeset
    74
#define	SDO_ABORTED_RCV          0x80     /* Received an abort message. Data not available */
95cd3376cc9f compilator compatitibility
frdupin
parents: 0
diff changeset
    75
#define	SDO_ABORTED_INTERNAL     0x85     /* Aborted but not because of an abort message. */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    76
#define	SDO_DOWNLOAD_IN_PROGRESS 0x2 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    77
#define	SDO_UPLOAD_IN_PROGRESS   0x3   
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    78
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 0
diff changeset
    79
/* Status of the node during the SDO transfert : */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    80
#define SDO_SERVER  0x1
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    81
#define SDO_CLIENT  0x2
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    82
#define SDO_UNKNOWN 0x3             
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    83
301
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    84
/* SDOrx ccs: client command specifier */
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    85
#define DOWNLOAD_SEGMENT_REQUEST     0
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    86
#define INITIATE_DOWNLOAD_REQUEST    1
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    87
#define INITIATE_UPLOAD_REQUEST      2
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    88
#define UPLOAD_SEGMENT_REQUEST       3
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    89
#define ABORT_TRANSFER_REQUEST       4
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    90
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    91
/* SDOtx scs: server command specifier */
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    92
#define UPLOAD_SEGMENT_RESPONSE      0
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    93
#define DOWNLOAD_SEGMENT_RESPONSE    1
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    94
#define INITIATE_DOWNLOAD_RESPONSE   3
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    95
#define INITIATE_UPLOAD_RESPONSE     2
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    96
#define ABORT_TRANSFER_REQUEST       4
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    97
f4b64aa848e1 more fancy print_message for debug
etisserant
parents: 288
diff changeset
    98
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    99
/*  Function Codes 
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 0
diff changeset
   100
   ---------------
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   101
  defined in the canopen DS301 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   102
*/
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   103
#define NMT	   0x0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   104
#define SYNC       0x1
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   105
#define TIME_STAMP 0x2
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   106
#define PDO1tx     0x3
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   107
#define PDO1rx     0x4
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   108
#define PDO2tx     0x5
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   109
#define PDO2rx     0x6
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   110
#define PDO3tx     0x7
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   111
#define PDO3rx     0x8
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   112
#define PDO4tx     0x9
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   113
#define PDO4rx     0xA
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   114
#define SDOtx      0xB
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   115
#define SDOrx      0xC
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   116
#define NODE_GUARD 0xE
343
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 320
diff changeset
   117
#define LSS 	   0xF
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   118
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 0
diff changeset
   119
/* NMT Command Specifier, sent by master to change a slave state */
95cd3376cc9f compilator compatitibility
frdupin
parents: 0
diff changeset
   120
/* ------------------------------------------------------------- */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   121
/* Should not be modified */
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   122
#define NMT_Start_Node              0x01
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   123
#define NMT_Stop_Node               0x02
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   124
#define NMT_Enter_PreOperational    0x80
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   125
#define NMT_Reset_Node              0x81
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   126
#define NMT_Reset_Comunication      0x82
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   127
343
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 320
diff changeset
   128
/** Status of the LSS transmission
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 320
diff changeset
   129
 */
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 320
diff changeset
   130
#define LSS_RESET                0x0      /* Transmission not started. Init state. */
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 320
diff changeset
   131
#define LSS_FINISHED             0x1      /* data are available */                          
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 320
diff changeset
   132
#define	LSS_ABORTED_INTERNAL     0x2     /* Aborted but not because of an abort message. */
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 320
diff changeset
   133
#define	LSS_TRANS_IN_PROGRESS 	 0x3    
118c1cabd0b0 Primary LSS support, thanks to Jorge Berzosa.
etisserant
parents: 320
diff changeset
   134
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 0
diff changeset
   135
/* constantes used in the different state machines */
95cd3376cc9f compilator compatitibility
frdupin
parents: 0
diff changeset
   136
/* ----------------------------------------------- */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   137
/* Must not be modified */
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   138
#define state1  0x01
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   139
#define state2  0x02
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   140
#define state3  0x03
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   141
#define state4  0x04
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   142
#define state5  0x05
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   143
#define state6  0x06
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   144
#define state7  0x07
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   145
#define state8  0x08
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   146
#define state9  0x09
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   147
#define state10 0x0A
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   148
#define state11 0x0B
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   149
71
95cd3376cc9f compilator compatitibility
frdupin
parents: 0
diff changeset
   150
#endif /* __def_h__ */
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
   151