38 |
38 |
39 /*Internals prototypes*/ |
39 /*Internals prototypes*/ |
40 |
40 |
41 /** Called by writeNetworkDict */ |
41 /** Called by writeNetworkDict */ |
42 INLINE UNS8 _writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, |
42 INLINE UNS8 _writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, |
43 UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback); |
43 UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback, UNS8 endianize); |
44 |
44 |
45 /** Called by readNetworkDict */ |
45 /** Called by readNetworkDict */ |
46 INLINE UNS8 _readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, |
46 INLINE UNS8 _readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, |
47 UNS8 dataType, SDOCallback_t Callback); |
47 UNS8 dataType, SDOCallback_t Callback); |
48 |
48 |
1068 return 0; |
1068 return 0; |
1069 } |
1069 } |
1070 |
1070 |
1071 /*******************************************************************)******/ |
1071 /*******************************************************************)******/ |
1072 INLINE UNS8 _writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, |
1072 INLINE UNS8 _writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, |
1073 UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback) |
1073 UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback, UNS8 endianize) |
1074 { |
1074 { |
1075 UNS8 err; |
1075 UNS8 err; |
1076 UNS8 SDOfound = 0; |
1076 UNS8 SDOfound = 0; |
1077 UNS8 line; |
1077 UNS8 line; |
1078 s_SDO sdo; /* SDO to transmit */ |
1078 s_SDO sdo; /* SDO to transmit */ |
1135 d->transfers[line].dataType = dataType; |
1135 d->transfers[line].dataType = dataType; |
1136 |
1136 |
1137 /* Copy data to transfers structure. */ |
1137 /* Copy data to transfers structure. */ |
1138 for (j = 0 ; j < count ; j++) { |
1138 for (j = 0 ; j < count ; j++) { |
1139 # ifdef CANOPEN_BIG_ENDIAN |
1139 # ifdef CANOPEN_BIG_ENDIAN |
1140 if (dataType == 0) |
1140 if (dataType == 0 && endianize) |
1141 d->transfers[line].data[count - 1 - j] = ((char *)data)[j]; |
1141 d->transfers[line].data[count - 1 - j] = ((char *)data)[j]; |
1142 else /* String of bytes. */ |
1142 else /* String of bytes. */ |
1143 d->transfers[line].data[j] = ((char *)data)[j]; |
1143 d->transfers[line].data[j] = ((char *)data)[j]; |
1144 # else |
1144 # else |
1145 d->transfers[line].data[j] = ((char *)data)[j]; |
1145 d->transfers[line].data[j] = ((char *)data)[j]; |
1180 /*--------------------------------------------------------------------------*/ |
1180 /*--------------------------------------------------------------------------*/ |
1181 |
1181 |
1182 UNS8 writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, |
1182 UNS8 writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, |
1183 UNS8 subIndex, UNS8 count, UNS8 dataType, void *data) |
1183 UNS8 subIndex, UNS8 count, UNS8 dataType, void *data) |
1184 { |
1184 { |
1185 return _writeNetworkDict (d, nodeId, index, subIndex, count, dataType, data, NULL); |
1185 return _writeNetworkDict (d, nodeId, index, subIndex, count, dataType, data, NULL, 1); |
1186 } |
1186 } |
1187 |
1187 |
1188 /*--------------------------------------------------------------------------*/ |
1188 /*--------------------------------------------------------------------------*/ |
1189 |
1189 |
1190 UNS8 writeNetworkDictCallBack (CO_Data* d, UNS8 nodeId, UNS16 index, |
1190 UNS8 writeNetworkDictCallBack (CO_Data* d, UNS8 nodeId, UNS16 index, |
1191 UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback) |
1191 UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback) |
1192 { |
1192 { |
1193 return _writeNetworkDict (d, nodeId, index, subIndex, count, dataType, data, Callback); |
1193 return _writeNetworkDict (d, nodeId, index, subIndex, count, dataType, data, Callback, 1); |
1194 } |
1194 } |
1195 |
1195 |
1196 |
1196 |
1197 /***************************************************************************/ |
1197 /***************************************************************************/ |
1198 INLINE UNS8 _readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, SDOCallback_t Callback) |
1198 INLINE UNS8 _readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, SDOCallback_t Callback) |