- 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
Before this patch SDO queue process pointer could overrun receive pointer on receiving NMT stop command during active SDO communication.
This fix is applied to 'master' and 'v1.3-master' branches.
GCC 10 static analyzer (-fanalyzer) warn about possible dereference
of NULL ‘ext’ on 'ext->pODFunc'.
This patch adds a guard on 'ext' to fix the issue.
- CO_LSSslave: move expensive code from CAN receive (interrupt) to mainline
CO_LSSslave_process() function.
- LSS slave now runs in parallel to other CANopen objects.
- LSS slave and master can run both on same device.
- LSS slave, LSS master and gateway-ascii(CiA309) LSS functions tested.
- LSSusage.md updated.
* LLSMaster: replace explicit array element copy with memcpy()
Replace explicit array element copy with memcpy()
Signed-off-by: Paolo Teti <paolo.teti@gmail.com>
* SDO server: copy and zeroize arrays using memcpy() and memset()
* Replace array elements copy with memcpy().
* Clear response buffer using memset()
Signed-off-by: Paolo Teti <paolo.teti@gmail.com>
- 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
* Include CO_fifo.h in CO_SDOclient.h in all cases
Struct CO_SDOclient_t has CO_fifo_t member no matter what configuration
is set, so the header is always required. Without this change the build
fails when CO_CONFIG_SDO_CLI_SEGMENTED is not enabled.
* Fix minor copy-paste errors in CO_config.h comments
* Fix new "unused argument" warnings
* Fix "variable may be used uninitialized" in CO_process_SYNC()
With enabled optimization compiler reports:
CANopen.c: In function ‘CO_process_SYNC’:
CANopen.c:890:12: warning: ‘syncWas’ may be used uninitialized in this
function [-Wmaybe-uninitialized]
890 | return syncWas;
| ^~~~~~~
microcontroller independent module.
It includes NMT master, LSS master and SDO client interface.
Interface is non-blocking, it is added to mainline.
Example for Linux stdio and socket is included.
Added CO_fifo.h/c for fifo data buffer, used with rewritten SDO client, etc
SDO client is rewritten. Now includes r/w fifo interface to transfer data.
doc/gettingStarted.md is updated.
Replace hard-coded values with enums and explicit manage all enumeration
values in CO_process_SYNC() to avoid warnings like this:
CANopen.c:837:5: warning: enumeration value ‘CO_SYNC_NONE’ not handled in switch [-Wswitch]
837 | switch (sync_process) {
| ^~~~~~