equal
deleted
inserted
replaced
1507 { |
1507 { |
1508 return _readNetworkDict (d, nodeId, index, subIndex, dataType, Callback); |
1508 return _readNetworkDict (d, nodeId, index, subIndex, dataType, Callback); |
1509 } |
1509 } |
1510 |
1510 |
1511 /*! |
1511 /*! |
1512 ** |
1512 ** |
1513 ** |
1513 ** |
1514 ** @param d |
1514 ** @param d |
1515 ** @param nodeId |
1515 ** @param nodeId |
1516 ** @param data |
1516 ** @param data |
1517 ** @param size |
1517 ** @param size pointer to expected size, changed into returned size. Expected size will be truncated to transfered data size |
1518 ** @param abortCode |
1518 ** @param abortCode |
1519 ** |
1519 ** |
1520 ** @return |
1520 ** @return |
1521 **/ |
1521 **/ |
1522 UNS8 getReadResultNetworkDict (CO_Data* d, UNS8 nodeId, void* data, UNS8 *size, |
1522 UNS8 getReadResultNetworkDict (CO_Data* d, UNS8 nodeId, void* data, UNS8 *size, |
1523 UNS32 * abortCode) |
1523 UNS32 * abortCode) |
1524 { |
1524 { |
1525 UNS8 i; |
1525 UNS8 i; |
1535 } |
1535 } |
1536 if (d->transfers[line].state != SDO_FINISHED) |
1536 if (d->transfers[line].state != SDO_FINISHED) |
1537 return d->transfers[line].state; |
1537 return d->transfers[line].state; |
1538 |
1538 |
1539 /* Transfert is finished. Put the value in the data. */ |
1539 /* Transfert is finished. Put the value in the data. */ |
1540 * size = (UNS8)d->transfers[line].count; |
1540 /* use transfers[line].count as max size */ |
|
1541 if( (UNS8)d->transfers[line].count < *size ) |
|
1542 *size = (UNS8)d->transfers[line].count; |
1541 for ( i = 0 ; i < *size ; i++) { |
1543 for ( i = 0 ; i < *size ; i++) { |
1542 # ifdef CANOPEN_BIG_ENDIAN |
1544 # ifdef CANOPEN_BIG_ENDIAN |
1543 if (d->transfers[line].dataType != visible_string) |
1545 if (d->transfers[line].dataType != visible_string) |
1544 ( (char *) data)[*size - 1 - i] = d->transfers[line].data[i]; |
1546 ( (char *) data)[*size - 1 - i] = d->transfers[line].data[i]; |
1545 else /* String of bytes. */ |
1547 else /* String of bytes. */ |