1
0
Fork 0
Commit graph

188 commits

Author SHA1 Message Date
Janez
4495e32fe8 Rename macros CO_CANrxNew_* into CO_FLAG_* 2020-02-04 20:39:10 +01:00
Janez
c19879b659 Time base CHANGED TO MICROSECONDS in all objects. FIX OS!
- 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.
2020-02-04 20:28:33 +01:00
Janez
1d051aa3d2 minor compiler error in CO_SDOmaster.c #56 2020-02-01 10:14:52 +01:00
Miles Simpson
38d5181807 Implemented changes based on PR feedback 2020-01-31 17:13:04 +01:00
Janez
1de453c92f Update CO_SYNC.c
`*timerNext_us` added also to 'Verify timeout'
2020-01-31 17:13:04 +01:00
Miles Simpson
729a139c12 Implementing PDO and SYNC timerNext_us return value 2020-01-31 17:13:04 +01:00
Marcel Maage
0efcf4b1b5 Added typecast needed for g++
g++ throws several errors when compiling because of missed typecasts. Files can no be compiled to .o.
2020-01-27 12:44:50 +01:00
Janez
d50e50e2c6 socketCAN related updates
- move stack/socketCAN/CO_OD_storage.* in socketCAN/CO_OD_storage.*
- CO_CANrxNew_ macros updated
- some corrections
2020-01-25 12:57:17 +01:00
Janez
23a37f0d92 New socketCAN/CO_driver_target.h
- Reduce CO_driver.h and CO_driver_base.h into CO_driver_target.h
- New functions: CO_CANrxMsg_readIdent, _DLC, _data
- rxArray[i].pFunct  changed to   -> rxArray[i].CANrx_callback
- (*pFunct)(void *object, const CO_CANrxMsg_t *message))  changed to
  (*CANrx_callback)(void *object, void *message))
- change to '#define CO_CANrxNew_READ(rxNew) ((bool_t)rxNew)'
2020-01-24 14:59:45 +01:00
Janez
fdda4c8340 move stack/neuberger-socketCAN/ socketCAN
Compare with initial commit of neuberger-socketCAN.
Try to use original code.
2020-01-24 12:22:54 +01:00
Janez
efe87c8b7c minor corrections
example/application.* removed
2020-01-22 07:57:42 +01:00
Janez
63df34d194 Rename CANdriverState to CANptr 2020-01-21 00:16:51 +01:00
Janez
8e33f80b8f minor corrections 2020-01-19 02:36:18 +01:00
Janez
c2d0290ac1 Merge branch 'master' into split-driver
update the split-driver with current master
2020-01-19 02:12:14 +01:00
Janez
12fa8e5173 Extract target specific code from CO_driver.h into /example/CO_driver_target.h
- Keep example code CO_driver_target.h also in CO_driver.h (for doxygen).
- Add extra members into enum CO_ReturnError_t
- Move enum CO_Default_CAN_ID_t from CANopen.h into CO_driver.h
- Make files in 'stack' directory independent form CANopen.h.
  CANopen.h file is more part of the application example than the stack.
- Second argument to receive callback function is 'void*' instead of
  'const CO_CANrxMsg_t*'. New (macros) are introduced:
  CO_CANrxMsg_readIdent(), CO_CANrxMsg_readDLC() and CO_CANrxMsg_readData()
  CAN receive functions in all source files are updated.
- IS_CANrxNew, SET_CANrxNew and CLEAR_CANrxNew renamed to CO_CANrxNew_READ,
  CO_CANrxNew_SET and CO_CANrxNew_CLEAR. Replace broken link in doc.
- Doxyfile: parameter change 'INPUT = README.md stack'. CANopen.h is
  excluded and updated. Doxywizard saved file to newer version of doxygen.
- Documentation in CO_driver.h is updated.
- Full documentation for CO_driver_target.h file is added to CO_driver.h.
- used clang-format on the CO_driver.h
2020-01-19 02:06:46 +01:00
Oleg
2fb8dfd223 fix NMTstartup handling if device is NOT the NMT Master (#150)
* fix NMTstartup handling if device is NOT the NMT Master and now OD_NMTStartup (0x1F80 OD) can be optional

issue #149

* Correctly use of NMTstartup to self start slave

According to DSP302, part2, V4.1.0, 2009 for object 1F80h (NMT startup):
bit0=0 - "CANopen device is not NMT master. The entries of the object 1F81h shall be ignored. All other bits of object 1F80h shall be ignored with the exception: value = 00000000 00000000 00000000 00001000b - "NMT slave that shall enter the NMT state Operational after the NMT state Initialisation autonomously (self starting)"
2020-01-16 07:58:01 +01:00
Oleg
f2283e3ca9 Warnings omitted (#144)
* All Warnings omitted
Now all warnings that came up in previous versions are fixed in a clean way directly in the code.
Inlcudes:
Shadowing
Missing default cases
Missing cases in switch statements
unused variables
Pointer problems
Function declarations' visibility

* Default case for NMTsendCommand
Default case was not catched before and could led to errors.

* fix typo when omitting warnings

* Omitting more warnings, and fix TIME->CANrxNew nulling

Inlcudes:
large integer implicitly truncated to unsigned type
this statement may fall through

* rename CO_this to co

* fix CO_process_SYNC name (CANopenNode master merging issue)

Co-authored-by: Michele B. <MicheleBlank@gmx-topmail.de>

----
Verified before merge. It is cleanup, no deep changes.
2020-01-15 13:40:30 +01:00
Janez
1459c7d154 Move files from stack/drvTemplate to stack/ and example/. Makefile updated. 2020-01-14 16:56:41 +01:00
Olivier Desenfans
ecaa660b9d Revert "Single project-wide header for driver functions"
This reverts commit 07c61316b3.

Will start from beginning. Try to keep git history.
2020-01-14 16:31:32 +01:00
Martin Wagner
5ff3493859 License changed to Apache 2.0 - Neuberger part 2020-01-14 15:45:41 +01:00
Janez
dadf5023df License changed to Apache 2.0 - part3 2020-01-09 08:16:31 +01:00
Janez
9c2f0a1c64 License changed to Apache 2.0 - main part 2020-01-08 14:52:56 +01:00
Martin Wagner
e1244868db
Merge pull request #137 from JuPrgn/trace-optional
guard CO_trace to be optionnal
2019-12-20 07:47:43 +01:00
Martin Wagner
f6fb0894f6
Merge pull request #128 from wilkinsw/sync-optional
change SYNC module to be optional
2019-12-20 07:34:46 +01:00
Martin Wagner
175574ef1f Merge branch 'common-header-for-drivers' of https://github.com/odesenfans/CANopenNode into odesenfans-common-header-for-drivers 2019-12-18 08:21:13 +01:00
Martin Wagner
da096728c4 Fix: cast for new type 2019-12-18 08:18:33 +01:00
Martin Wagner
4b89ca387c Merge branch 'fix-bool-equality-checks' of https://github.com/odesenfans/CANopenNode into odesenfans-fix-bool-equality-checks 2019-12-18 07:58:50 +01:00
Wilkins White
bdfe25f7da update examples with CO_process_SYNC_RPDO changes 2019-12-10 16:33:21 -08:00
Wilkins White
f6d93fc300 change SYNC module to be optional
allows CO_NO_SYNC to be zero
2019-12-10 16:33:21 -08:00
Julien PEYREGNE
0cdec897c2 guard CO_trace to be optionnal 2019-12-09 13:03:10 +01:00
Martin Wagner
f9ea788caa
Merge pull request #124 from heliochronix/conditional_led
Conditionally compile LED state code
2019-12-09 08:36:12 +01:00
Martin Wagner
88e2513072
Merge pull request #88 from JuPrgn/patch-1
Fix dsPIC33 CO_driver.h
2019-12-09 08:25:12 +01:00
Martin Wagner
96fd0aa02b
Merge pull request #110 from JuPrgn/FeatTimestamp
feat: Add TimeStamp feature
2019-12-09 08:23:16 +01:00
Julien PEYREGNE
15a0cdbc0f doc: update TIME doc and add an example 2019-12-06 15:34:02 +01:00
Miles Simpson
b506e74ca3 Changed drivers to conditionally compile LED code if application specifies CO_USE_LEDS 2019-11-19 13:35:59 -08:00
Miles Simpson
4ad282d716 Fixed direct use of msg->ident to use driver abstraction function instead, since not all drivers employ the same msg struct 2019-11-15 14:38:54 -08:00
Miles Simpson
79994e0ec9 Conditionally compile LED state code 2019-11-15 14:26:02 -08:00
Olivier Desenfans
07c61316b3 Single project-wide header for driver functions
Created a single header file (`CO_driver.h`) to declare the functions
of the drivers API. This forces drivers to use a common API.

Previously, each driver declared these functions in its specific
`CO_driver.h` file. This causes two issues:
1. while these functions are used in target-independent code,
   the declarations could be target specific, leading to API/ABI
   compatibility issues.
2. the declarations were duplicated for each driver.

The `CO_driver.h` files for each driver were renamed to
`CO_driver_target.h`. This file is included from `CO_driver.h`.

Added a new header for types: `CO_types.h`. This file currently
holds the definition of `CO_ReturnError_t` that was previously
duplicated for all drivers. Added a few enum values to support
the `neuberger-socketCAN` code.
2019-11-13 13:28:21 +01:00
Martin Wagner
10cf9a30b0
Merge pull request #116 from odesenfans/can-base-address-void-ptr
Use a void pointer for the CAN device address
2019-11-13 08:54:34 +01:00
Olivier Desenfans
02fd8ee9da Renaming CANdevicePtr to CANdriverState 2019-11-13 08:34:42 +01:00
Julien PEYREGNE
bba140f943 feat: Add TIME producer and refactor TIME consumer 2019-11-12 12:28:33 +01:00
Olivier Desenfans
eb4293c4e5 Fix inverted 1003 condition 2019-11-12 08:41:08 +01:00
Olivier Desenfans
c36d73b590 Fix bool equality checks
Removed comparisons of boolean values to `false` and `true`. Evaluating
them is enough.
2019-11-11 16:36:55 +01:00
Olivier Desenfans
c7349b9dde Sync: fix cast to integer of different size
Cast the pointer to `uintptr_t` instead of `int` in the implementations
of `IS_CANrxNew`.
2019-11-11 16:34:09 +01:00
Olivier Desenfans
e7d9652658 Use a void pointer for the CAN device address
Previously, the address of the CAN device (`CANbaseAddress`)
was specified as a signed or unsigned integer of variable size.
This made the ABI specific for each driver and is not generic
enough for some use cases.

Replaced all usages by using a void pointer instead.
Renamed `CANbaseAddress` to `CANdevicePtr`.
Refactored the code where it needed to be (some comparisons to -1).

Use a pointer to a user-defined variable/structure instead of
a 32-bit integer for CANbaseAddress. Renamed CANbaseAddress
to CANbaseStruct to reflect that change in behavior.

This is more modular and avoids casts.
2019-11-10 13:14:53 +01:00
Martin Wagner
6ac1c62c34
Merge pull request #106 from vestas-wind-systems/co_trace_format_specifiers
Use inttypes.h for 32 bit signed/unsigned format specifiers.
2019-10-09 17:11:12 +02:00
Julien PEYREGNE
b411ebb48c fix: Typo CO_ERR_ERG_TEMPERATUR 2019-10-09 14:32:54 +02:00
Julien PEYREGNE
e8262dc88f feat: Add TimeStamp feature 2019-10-09 14:31:26 +02:00
Martin Wagner
e336b3ad26 Changed for two callbacks, as one is called inside ISR context. This also keeps backward compatibility for current useres that don't need RX EMCY events 2019-10-08 10:17:03 +02:00
Martin Wagner
fa5f81e0a9 Merge branch 'master' of https://github.com/wilkinsw/CANopenNode 2019-10-08 10:01:50 +02:00