1
0
Fork 0
Commit graph

170 commits

Author SHA1 Message Date
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
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
Henrik Brix Andersen
806fa6ead5 Use inttypes.h for 32 bit signed/unsigned format specifiers.
This fixes commit 5338015740.
2019-09-23 10:20:55 +02:00
Martin Wagner
c46a2edd57 Add Linux socketCAN driver for CANopen manager application
This driver is more sophisticated than the normal socketCAN driver. Compared
to the normal socketCAN driver, this one contains the linking exception license.

Changes compared to normal socketCAN driver:
- Re-implementation based on driver template
- Error detection works
- Setting up filters works properly
- Optional Support for socketCAN error frames. This currently handles bus-off
  and no-ack condition by setting driver into listen-only mode. If you decide
  to use this feature have a close look at your own requirements and fit
  error handling functions to that.
- Optional support for CAN interface combining (not redundancy!). With this
  feature enabled you can have multiple CAN interface represented as one within
  CANopenNode stack. By default, all TX messages are sent on all used CAN
  interfaces, but the user can change this behaviour inside own app (e.g. check
  on wich bus rx-sdo is received and set-up tx-sdo accordingly).
  Be aware that no bridging between the interfaces is done!
2019-05-10 09:52:11 +02:00
Martin Wagner
cf02f924ff Fix: Use getter function instead of raw pointer...
see https://github.com/CANopenNode/CANopenNode/issues/100

Using this workaround, the struct passed to the callback still doesn't
match the description (only "data" is passed instead of "data" and
"ODdataStorage"), see CO_ODF_arg_t fields description for details.

However, data pointer is a least valid for all object types.
2019-05-10 09:35:37 +02:00
Martin Wagner
817ddcb786 Revert "nmt: delete double declaration"
This reverts commit 9c7faddd32.
2018-12-14 09:13:26 +01:00
Martin Wagner
691c8095b2 heartbeat consumer: added callback for first received heartbeat
This callback is called when the first heartbeat is received (after BOOTUP)
and when there was a pause between heartbeats (TIMEOUT). This allows
the user to get an event when a bus segment is disconnected and then
reconnected from the server (nodes just start sending heartbeats again
without BOOTUP first).
2018-12-14 09:06:39 +01:00
Martin Wagner
5743e1c998 hb consumer: added query function for current NMT state...
this only works on monitored nodes!
2018-12-14 09:06:16 +01:00
Martin Wagner
9c7faddd32 nmt: delete double declaration 2018-12-14 09:06:07 +01:00
Martin Wagner
54f80b119b LSS slave: LSS startup did not confirm to CiA DSP 305 Figure 47
Added function and changed example code so that NMT boot-up is only started
after receiving LSS switch state global waiting. This also fixes problems
where doing CANopenNode initialization (-> change can HW Filter settings)
lead to missing the LSS switch state global waiting message.

However, now we do not fully comply to the specified sequence in 8.3.1.2
as we do all the startup stuff after switching to LSS waiting. This can't
be split in CANopenNode.
2018-12-14 09:04:49 +01:00
Martin Wagner
8ba7084fb7 fixed null pointer dereference
timerNext_ms is given from user and can be null.
2018-10-09 07:49:03 +02:00
Martin Wagner
ac0b82be35 lss master: Deselect all work in all states and cleans up the master state machine 2018-10-09 07:48:41 +02:00
Martin Wagner
65161afb7f heartbeat consumer: initialization of single consumer is now possible from within code 2018-10-09 07:48:31 +02:00
Martin Wagner
1a85de0bec hearbeat consumer: bootup callback was only called when a heartbeat was received before 2018-10-01 15:13:41 +02:00
Martin Wagner
37c2c4230a sdo master: callback for local OD is not triggered by message rx, so trigger it manually 2018-10-01 15:13:33 +02:00
Martin Wagner
13068f6e44 fixed uninitialized variable 2018-10-01 15:13:15 +02:00
Martin Wagner
cf8d0978c9 sdo: added out-of-bound check to getDataPointer 2018-10-01 15:13:05 +02:00
Martin Wagner
11ef04f828 sdo master: fix missing break, fix typo...
no functional changes
2018-09-13 09:13:13 +02:00
Martin Wagner
94b3eac941 sdo client: use SDO client parameter default entries as start values
to keep current behaviour (auto configuration), just set the default values to "0"
2018-09-13 09:12:48 +02:00
Martin Wagner
0860923e9c Revert "Fix switch case fallthrough warnings"
this commit breaks TPDO generation

This reverts commit c236b455d1.
2018-09-10 14:30:00 +02:00