1
0
Fork 0
Commit graph

12 commits

Author SHA1 Message Date
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
c2d0290ac1 Merge branch 'master' into split-driver
update the split-driver with current master
2020-01-19 02:12:14 +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
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
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
Olivier Desenfans
02fd8ee9da Renaming CANdevicePtr to CANdriverState 2019-11-13 08:34:42 +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
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
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