There was a problem with block transfer, when transmitting sequence of
data. If CANsend() failed (socket buffer full), message was dropped.
Now dropped message is marked with bufferFull flag and then it is
re-transmitted later by the driver, as is in the original behaviour of
CANopenNode. Same as commit acd719e27 in v2.0.
- Rename files to CO_epoll_interface
- Object oriented, more flexible, separate functions
- move epoll, timerfd and eventfd system calls from CO_driver.c to CO_epoll_interface.c
- rearranged and better documented
- default values moved from CO_driver.h into appropriate files
- rearranged also in CO_driver_target.h files
- parts of the stack or whole objects can be disabled.
- configuration is verified for depencies
Additional:
- renamed some members of CO_Default_CAN_ID_t
- moved helpers CO_setUint32() etc from CO_SDOserver.h into CO_driver.h.
- change wrong CO_ERROR_PARAMETERS to CO_ERROR_ILLEGAL_ARGUMENT.
- renamed CO_ERROR_PARAMETERS to CO_ERROR_OD_PARAMETERS
- add CO_fifo_st enumerator for use in CO_fifo_cpyTok2xx functions.
- 309/CO_gateway_ascii: add x8 to x64 nonstandard data types
- example compiles now
- Fix "unused argument" warnings in socketCAN
With -Wextra GCC gives:
socketCAN/CO_driver.c: In function ‘setRxFilters’:
socketCAN/CO_driver.c:159:19: warning: comparison of integer expressions
of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’}
[-Wsign-compare]
159 | for (i = 0; i < CANmodule->CANinterfaceCount; i ++) {
| ^
- Necessary to update Time base in OS too - call to CO_process() function.
- timerNext_us info to OS implemented in in all objects.
- CO_NMT_blinkingProcess50ms() moved inside CO_NMT_process().
- CO_HBconsumer_process() function optimized and revised.
- Bugfix "timeDifference_us = 0;" inside the for loop.