# HG changeset patch # User etisserant # Date 1177424163 -7200 # Node ID cd1638bc0cb0042784d6fbf1be5fe6c05df0478f # Parent d776314a1efc26157f4a852dc6238127705d8b5b Added _writenetworkdictionary option to avoir endianiation diff -r d776314a1efc -r cd1638bc0cb0 src/sdo.c --- a/src/sdo.c Tue Apr 24 14:41:19 2007 +0200 +++ b/src/sdo.c Tue Apr 24 16:16:03 2007 +0200 @@ -40,7 +40,7 @@ /** Called by writeNetworkDict */ INLINE UNS8 _writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, - UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback); + UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback, UNS8 endianize); /** Called by readNetworkDict */ INLINE UNS8 _readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, @@ -1070,7 +1070,7 @@ /*******************************************************************)******/ INLINE UNS8 _writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, - UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback) + UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback, UNS8 endianize) { UNS8 err; UNS8 SDOfound = 0; @@ -1137,7 +1137,7 @@ /* Copy data to transfers structure. */ for (j = 0 ; j < count ; j++) { # ifdef CANOPEN_BIG_ENDIAN - if (dataType == 0) + if (dataType == 0 && endianize) d->transfers[line].data[count - 1 - j] = ((char *)data)[j]; else /* String of bytes. */ d->transfers[line].data[j] = ((char *)data)[j]; @@ -1182,7 +1182,7 @@ UNS8 writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 count, UNS8 dataType, void *data) { - return _writeNetworkDict (d, nodeId, index, subIndex, count, dataType, data, NULL); + return _writeNetworkDict (d, nodeId, index, subIndex, count, dataType, data, NULL, 1); } /*--------------------------------------------------------------------------*/ @@ -1190,7 +1190,7 @@ UNS8 writeNetworkDictCallBack (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback) { - return _writeNetworkDict (d, nodeId, index, subIndex, count, dataType, data, Callback); + return _writeNetworkDict (d, nodeId, index, subIndex, count, dataType, data, Callback, 1); }