00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __sdo_h__
00024 #define __sdo_h__
00025
00026 struct struct_s_transfer;
00027
00028 #include "timer.h"
00029
00030 typedef void (*SDOCallback_t)(CO_Data* d, UNS8 nodeId);
00031
00032
00033
00034
00035
00036
00037
00038 struct struct_s_transfer {
00039 UNS8 nodeId;
00040
00041 UNS8 whoami;
00042 UNS8 state;
00043 UNS8 toggle;
00044 UNS32 abortCode;
00045
00046
00047 UNS16 index;
00048 UNS8 subIndex;
00049 UNS32 count;
00050 UNS32 offset;
00051
00052
00053
00054
00055
00056 UNS8 data [SDO_MAX_LENGTH_TRANSFERT];
00057 UNS8 dataType;
00058
00059
00060
00061 TIMER_HANDLE timer;
00062
00063
00064
00065
00066
00067 SDOCallback_t Callback;
00068 };
00069 typedef struct struct_s_transfer s_transfer;
00070
00071
00072 #include "data.h"
00073
00074
00075 struct BODY{
00076 UNS8 data[8];
00077 };
00078
00079
00080 struct struct_s_SDO {
00081 UNS8 nodeId;
00082 struct BODY body;
00083 };
00084
00085
00086 typedef struct struct_s_SDO s_SDO;
00087
00091 void SDOTimeoutAlarm(CO_Data* d, UNS32 id);
00092
00095 void resetSDO (CO_Data* d);
00096
00097
00101 UNS32 SDOlineToObjdict (CO_Data* d, UNS8 line);
00102
00106 UNS32 objdictToSDOline (CO_Data* d, UNS8 line);
00107
00111 UNS8 lineToSDO (CO_Data* d, UNS8 line, UNS8 nbBytes, UNS8 * data);
00112
00116 UNS8 SDOtoLine (CO_Data* d, UNS8 line, UNS8 nbBytes, UNS8 * data);
00117
00126 UNS8 failedSDO (CO_Data* d, UNS8 nodeId, UNS8 whoami, UNS16 index,
00127 UNS8 subIndex, UNS32 abortCode);
00128
00132 void resetSDOline (CO_Data* d, UNS8 line);
00133
00137 UNS8 initSDOline (CO_Data* d, UNS8 line, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 state);
00138
00147 UNS8 getSDOfreeLine (CO_Data* d, UNS8 whoami, UNS8 *line);
00148
00156 UNS8 getSDOlineOnUse (CO_Data* d, UNS8 nodeId, UNS8 whoami, UNS8 *line);
00157
00162 UNS8 closeSDOtransfer (CO_Data* d, UNS8 nodeId, UNS8 whoami);
00163
00168 UNS8 getSDOlineRestBytes (CO_Data* d, UNS8 line, UNS8 * nbBytes);
00169
00174 UNS8 setSDOlineRestBytes (CO_Data* d, UNS8 line, UNS8 nbBytes);
00175
00182 UNS8 sendSDO (CO_Data* d, UNS8 whoami, s_SDO sdo);
00183
00191 UNS8 sendSDOabort (CO_Data* d, UNS8 whoami, UNS16 index, UNS8 subIndex, UNS32 abortCode);
00192
00200 UNS8 proceedSDO (CO_Data* d, Message *m);
00201
00210 UNS8 writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index,
00211 UNS8 subIndex, UNS8 count, UNS8 dataType, void *data);
00216 UNS8 writeNetworkDictCallBack (CO_Data* d, UNS8 nodeId, UNS16 index,
00217 UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback);
00225 UNS8 readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index,
00226 UNS8 subIndex, UNS8 dataType);
00227
00232 UNS8 readNetworkDictCallback (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, SDOCallback_t Callback);
00233
00249 UNS8 getReadResultNetworkDict (CO_Data* d, UNS8 nodeId, void* data,
00250 UNS8 *size, UNS32 * abortCode);
00251
00268 UNS8 getWriteResultNetworkDict (CO_Data* d, UNS8 nodeId, UNS32 * abortCode);
00269
00270
00271
00272
00273 #endif