library for C++ CANOpen implementation. mbed independant, but is easy to attach into with mbed.

Dependents:   ppCANOpen_Example DISCO-F746NG_rtos_test

Example:

Import programppCANOpen_Example

I am no longer actively working on the ppCANOpen library, however, I want to publish this project so that anyone who wants to pick up any of the pieces can have a good example. This is a a project I was working on using the ppCANOpen library. It has a pretty in deep use of the object dictionary structure. And a number of functions to control high voltage pinball drivers, if you're into that sort of thing.

Revision:
5:22a337cdc0e3
Parent:
4:2034b04c86d2
--- a/include/canopen_api.h	Sat Jan 09 17:15:29 2016 +0000
+++ b/include/canopen_api.h	Sat Feb 13 20:22:59 2016 +0000
@@ -29,6 +29,8 @@
 #ifndef PPCAN_CANOPEN_API_H
 #define PPCAN_CANOPEN_API_H
 
+#include "stdint.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -36,8 +38,7 @@
     /*=========================================================================
      * Forward declarations
      *=========================================================================
-     */  
-    struct CanOpenHandle;
+     */
     struct CanOpenMessage;
 
     /*=========================================================================
@@ -45,10 +46,15 @@
      *=========================================================================
      */    
     
-    int CanOpenApiInit  (CanOpenHandle * hCanOpen);
+    typedef void (* ServiceProviderRxInterruptCallback)(void *pServiceObject);
+    typedef void (* ServiceProviderTickCallback)       (void *pServiceObject);
+    
+    int CanOpenApiInit  (void *object, ServiceProviderRxInterruptCallback rxCallback, ServiceProviderTickCallback tickCallback);
     
-    int CanOpenApiRead  (CanOpenHandle * hCanOpen, CanOpenMessage * canOpenMsg);
-    int CanOpenApiWrite (CanOpenHandle * hCanOpen, CanOpenMessage * canOpenMsg);
+    int CanOpenApiRead  (CanOpenMessage * canOpenMsg);
+    int CanOpenApiWrite (CanOpenMessage * canOpenMsg);
+    
+    uint32_t CanOpenApiGetHardwareTime  (void);
 
 #ifdef __cplusplus
 };