CANopenNode
CANopen protocol stack
Loading...
Searching...
No Matches
CO_PDO.h File Reference

CANopen Process Data Object protocol. More...

#include "301/CO_ODinterface.h"
#include "301/CO_Emergency.h"
#include "301/CO_SYNC.h"
+ Include dependency graph for CO_PDO.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  CO_PDO_common_t
 PDO object, common properties. More...
 
struct  CO_RPDO_t
 RPDO object. More...
 
struct  CO_TPDO_t
 TPDO object. More...
 

Macros

#define CO_PDO_MAX_SIZE   8U
 Maximum size of PDO message, 8 for standard CAN.
 
#define CO_PDO_MAX_MAPPED_ENTRIES   8U
 Maximum number of entries, which can be mapped to PDO, 8 for standard CAN, may be less to preserve RAM usage.
 
#define CO_RPDO_DEFAULT_CANID_COUNT   4U
 Number of CANopen RPDO objects, which uses default CAN indentifiers.
 
#define CO_TPDO_DEFAULT_CANID_COUNT   4U
 Number of CANopen TPDO objects, which uses default CAN indentifiers.
 
#define CO_RPDO_CAN_BUFFERS_COUNT   2
 Number of buffers for received CAN message for RPDO.
 

Typedefs

typedef uint8_t CO_PDO_size_t
 Variable of type CO_PDO_size_t contains data length in bytes of PDO.
 

Enumerations

enum  CO_PDO_transmissionTypes_t {
  CO_PDO_TRANSM_TYPE_SYNC_ACYCLIC = 0U , CO_PDO_TRANSM_TYPE_SYNC_1 = 1U , CO_PDO_TRANSM_TYPE_SYNC_240 = 0xF0U , CO_PDO_TRANSM_TYPE_SYNC_EVENT_LO = 0xFEU ,
  CO_PDO_TRANSM_TYPE_SYNC_EVENT_HI = 0xFFU
}
 PDO transmission Types. More...
 

Functions

CO_ReturnError_t CO_RPDO_init (CO_RPDO_t *RPDO, OD_t *OD, CO_EM_t *em, CO_SYNC_t *SYNC, uint16_t preDefinedCanId, OD_entry_t *OD_14xx_RPDOCommPar, OD_entry_t *OD_16xx_RPDOMapPar, CO_CANmodule_t *CANdevRx, uint16_t CANdevRxIdx, uint32_t *errInfo)
 Initialize RPDO object.
 
void CO_RPDO_initCallbackPre (CO_RPDO_t *RPDO, void *object, void(*pFunctSignalPre)(void *object))
 Initialize RPDO callback function.
 
void CO_RPDO_process (CO_RPDO_t *RPDO, uint32_t timeDifference_us, uint32_t *timerNext_us, bool_t NMTisOperational, bool_t syncWas)
 Process received PDO messages.
 
CO_ReturnError_t CO_TPDO_init (CO_TPDO_t *TPDO, OD_t *OD, CO_EM_t *em, CO_SYNC_t *SYNC, uint16_t preDefinedCanId, OD_entry_t *OD_18xx_TPDOCommPar, OD_entry_t *OD_1Axx_TPDOMapPar, CO_CANmodule_t *CANdevTx, uint16_t CANdevTxIdx, uint32_t *errInfo)
 Initialize TPDO object.
 
static void CO_TPDOsendRequest (CO_TPDO_t *TPDO)
 Request transmission of TPDO message.
 
void CO_TPDO_process (CO_TPDO_t *TPDO, uint32_t timeDifference_us, uint32_t *timerNext_us, bool_t NMTisOperational, bool_t syncWas)
 Process transmitting PDO messages.
 

Detailed Description

CANopen Process Data Object protocol.

Author
Janez Paternoster

This file is part of https://github.com/CANopenNode/CANopenNode, a CANopen Stack.

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.