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:
4:2034b04c86d2
Child:
5:22a337cdc0e3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/CanOpenMessage.h	Sat Jan 09 17:15:29 2016 +0000
@@ -0,0 +1,68 @@
+/**
+ ******************************************************************************
+ * @file
+ * @author  Paul Paterson
+ * @version
+ * @date    2015-12-14
+ * @brief   CANOpen implementation library
+ ******************************************************************************
+ * @attention
+ *
+ * <h2><center>&copy; COPYRIGHT(c) 2015 Paul Paterson
+ *
+ * All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef PPCAN_CANOPEN_MESSAGE_H
+#define PPCAN_CANOPEN_MESSAGE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*=========================================================================
+ * CANOpen Message Structure
+ *=========================================================================
+ */
+
+/** CANOpen Message Format */
+typedef enum {
+    CANOPEN_FORMAT_STANDARD = 0,
+    CANOPEN_FORMAT_EXTENDED,
+    CANOPEN_FORMAT_ANY
+} CanOpenFormat;
+
+/** CANOpen Message Data Type */
+typedef enum {
+    CANOPEN_TYPE_DATA = 0,
+    CANOPEN_TYPE_REMOTE
+} CanOpenType;
+
+
+/** CANOpen Message */
+typedef struct CanOpenMessage {
+    unsigned int    id;
+    char   data[8];
+    CanOpenFormat   format;
+    CanOpenType     type;
+    unsigned char   dataCount;
+} CanOpenMessage;
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif /* PPCAN_CANOPEN_MESSAGE_H */