- 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.
* CANopen Safety (SRDO according to DIN EN 50325-5:2016)
* GFC code and docs
* clang-format on GFC
* SRDO tx and rx extension
added CANopen Safety to README.md
allow manual SRDO transmit
some minor bug fixes
Co-authored-by: rg1 <r.gruening@miunske.com>
When CO_CONFIG_GTW_ASCII is not enabled in configuration, this module
produces multiple important warnings, like 2 warnings about implicit
function declaration. Instead of making the source more complex and
fixing each warning individually, in this case it is much easier to just
completely disable compilation of the whole thing.
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.
- Rename local variable 'token' into 'tok' in CO_GTWA_process().
- CO_LSSmaster: replace CO_LSSmaster_InquireNodeId() with more generic
CO_LSSmaster_Inquire(). CiA309-3 command 'lss_inquire_addr' now works
also according to standard.
- CANopen.h: fix doxygen.
- gettingStarted.md: Change example "master" device from node-Id=3 to 1...
* 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;
| ^~~~~~~