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.
Diff: include/CanOpenMessage.h
- 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>© 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 */