CANopen.h File Reference
CANopen

Main CANopenNode file. More...

`#include "301/CO_driver.h"`
`#include "301/CO_ODinterface.h"`
`#include "301/CO_NMT_Heartbeat.h"`
`#include "301/CO_HBconsumer.h"`
`#include "301/CO_Emergency.h"`
`#include "301/CO_SDOserver.h"`
`#include "301/CO_SDOclient.h"`
`#include "301/CO_SYNC.h"`
`#include "301/CO_PDO.h"`
`#include "301/CO_TIME.h"`
`#include "303/CO_LEDs.h"`
`#include "304/CO_GFC.h"`
`#include "304/CO_SRDO.h"`
`#include "305/CO_LSSslave.h"`
`#include "305/CO_LSSmaster.h"`
`#include "309/CO_gateway_ascii.h"`
`#include "extra/CO_trace.h"`

Go to the source code of this file.

## Data Structures

struct | CO_config_t
| CANopen configuration, used with CO_new() More...
struct | CO_t
| CANopen object - collection of all CANopenNode objects. More...

## Macros

#define | CO_MULTIPLE_OD
| If macro is defined externally, then configuration with multiple object dictionaries will be possible. More...
#define | CO_USE_GLOBALS
| If macro is defined externally, then global variables for CANopen objects will be used instead of heap. More...

## Functions

CO_t * | CO_new (CO_config_t *config, uint32_t *heapMemoryUsed)
| Create new CANopen object. More...
void | CO_delete (CO_t *co)
| Delete CANopen object and free memory. More...
bool_t | CO_isLSSslaveEnabled (CO_t *co)
| Test if LSS slave is enabled. More...
CO_ReturnError_t | CO_CANinit (CO_t *co, void *CANptr, uint16_t bitRate)
| Initialize CAN driver. More...
CO_ReturnError_t | CO_LSSinit (CO_t *co, CO_LSS_address_t *lssAddress, uint8_t *pendingNodeID, uint16_t *pendingBitRate)
| Initialize CANopen LSS slave. More...
CO_ReturnError_t | CO_CANopenInit (CO_t *co, CO_NMT_t *NMT, CO_EM_t *em, const OD_t *od, const OD_entry_t *OD_statusBits, CO_NMT_control_t NMTcontrol, uint16_t firstHBTime_ms, uint16_t SDOserverTimeoutTime_ms, uint16_t SDOclientTimeoutTime_ms, bool_t SDOclientBlockTransfer, uint8_t nodeId)
| Initialize CANopenNode. More...
CO_NMT_reset_cmd_t | CO_process (CO_t *co, bool_t enableGateway, uint32_t timeDifference_us, uint32_t *timerNext_us)
| Process CANopen objects. More...
bool_t | CO_process_SYNC (CO_t *co, uint32_t timeDifference_us, uint32_t *timerNext_us)
| Process CANopen SYNC objects. More...
void | CO_process_RPDO (CO_t *co, bool_t syncWas)
| Process CANopen RPDO objects. More...
void | CO_process_TPDO (CO_t *co, bool_t syncWas, uint32_t timeDifference_us, uint32_t *timerNext_us)
| Process CANopen TPDO objects. More...
void | CO_process_SRDO (CO_t *co, uint32_t timeDifference_us, uint32_t *timerNext_us)
| Process CANopen SRDO objects. More...

## Detailed Description

Main CANopenNode file.

Author
  Janez Paternoster
  Uwe Kindler

Copyright
  2010 - 2020 Janez Paternoster

This file is part of CANopenNode, an opensource CANopen Stack. Project home page is https://github.com/CANopenNode/CANopenNode. For more information on CANopen see http://www.can-cia.org/.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.