CANopen windows library, multiple devices

3.5k views Asked by At

I am going to write Windows application (for commercial use) which will send/receive and trace CANopen messages.

The problem is I don't know what devices will be used by users of this app. Currently I have one requirement to support only USB-CAN devices. However there is many vendors of such devices and everyone has other api/library/dll to use theirs devices.

(By the way, the problem is because I have to use Windows. As I know on Linux is SocketCAN and everything is more standardized :-()

I don't know which library should I use. Could you recomend me something. Of course this library should support as many vendors (and drivers) as possible. Second requirement is this library shall compile to IL or somehow I can use this library in my C# application.

I have done small research:

  • The most popular is CAN Festival but it is abandoned project, however there is a few forks.
  • There is CANopen for .NET But support only PEAK devices and state is prealpha
  • CANopen for Python Support more devices but state is also alpha and I don't know if I can use this library in my c# application. Maybe when I use IronPython.
  • I also found this library: http://www.emtas.de/en/allgemein/csharpapi. It is commercial, but If support many devices I can buy It. Anyone has used it before??
1

There are 1 answers

0
Oliver Heggelbacher On

We are using and have licensed the Swedish datalink.se CANopen library and it works very well for us. But honestly we are only using the CAN interface driver layer on Windows, for accessing a range of devices like Lawicel, Kvaser, IXXAT a.s.o. I haven't looked at the CANopen parts so much.

I looked at other CANopen SW stacks, too, back then, but like you I wasn't happy about CAN Festival. So what we do in our Kickdrive software is that we implemented just the amount of CANopen that we really need. See my answer in the post How to program a simple CANopen layer.

Depending on what are your actual requirements, this might be good enough already, or even the best approach.