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:
2:c724ff3a4e4d
Child:
3:12b3c25bdeba
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/Node.cpp	Wed Dec 30 13:33:41 2015 +0000
@@ -0,0 +1,101 @@
+/**
+ ******************************************************************************
+ * @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/>.
+ */
+
+#include "Node.h"
+#include "ObjectDictionary.h"
+
+namespace ppCANOpen
+{
+
+Node::Node (void) {}
+
+/*=============================================================================
+ * Methods to handle message indication and confirmation
+ *=============================================================================
+ */
+
+int Node::ConsumePdo (const int pdoNum, char *const data)
+{
+    return 0;
+}
+
+int Node::HandlePdoReadRequest (const int pdoNum)
+{
+    return 0;
+}
+
+int Node::ConsumeEmergency (void)
+{
+    return 0;
+}
+
+int Node::HandleNodeControl (void)
+{
+    return 0;
+}
+
+int Node::HandleNodeGuardRequest (const int masterId)
+{
+    return 0;
+}
+
+int Node::ConsumeHeartbeat (const int producerId)
+{
+    return 0;
+}
+
+/*=============================================================================
+ * Methods to handle operation of node device
+ *=============================================================================
+ */
+ 
+void Node::Update (void)
+{
+     
+}
+
+/*=============================================================================
+ * Methods to implement node control in derived classes
+ *=============================================================================
+ */
+
+void Node::OnInitialize (void){}
+void Node::OnPreoperational (void){}
+void Node::OnOperational (void){}
+void Node::OnStopped (void){}
+
+/*=============================================================================
+ * Local functions
+ *=============================================================================
+ */
+ 
+ 
+
+} /* namspace ppCANOpen */
+
+