CANopenLinux
CANopenNode on Linux devices
Files | Functions
Application interface to CANopenNode

Application interface, similar to Arduino, extended to CANopen and additional, realtime thread. More...

+ Collaboration diagram for Application interface to CANopenNode:

Files

file  CO_application.h
 Application interface for CANopenNode.
 

Functions

CO_ReturnError_t app_programStart (uint16_t *bitRate, uint8_t *nodeId, uint32_t *errInfo)
 Function is called once on the program startup, after Object dictionary initialization and before CANopen initialization. More...
 
void app_communicationReset (CO_t *co)
 Function is called after CANopen communication reset. More...
 
void app_programEnd ()
 Function is called just before program ends.
 
void app_programAsync (CO_t *co, uint32_t timer1usDiff)
 Function is called cyclically from main(). More...
 
void app_programRt (CO_t *co, uint32_t timer1usDiff)
 Function is called cyclically from realtime thread at constant intervals. More...
 

Detailed Description

Application interface, similar to Arduino, extended to CANopen and additional, realtime thread.

Function Documentation

◆ app_programStart()

CO_ReturnError_t app_programStart ( uint16_t bitRate,
uint8_t nodeId,
uint32_t errInfo 
)

Function is called once on the program startup, after Object dictionary initialization and before CANopen initialization.

Parameters
[in,out]bitRateStored CAN bit rate, can be overridden.
[in,out]nodeIdStored CANopen NodeId, can be overridden.
[out]errInfoVariable may indicate error information - index of erroneous OD entry.
Returns
CO_ReturnError_t CO_ERROR_NO in case of success.

◆ app_communicationReset()

void app_communicationReset ( CO_t co)

Function is called after CANopen communication reset.

Parameters
coCANopen object.

◆ app_programAsync()

void app_programAsync ( CO_t co,
uint32_t  timer1usDiff 
)

Function is called cyclically from main().

Place for the slower code (all must be non-blocking).

Warning
Mind race conditions between this functions and app_programRt(), which run from the realtime thread. If accessing Object dictionary variable which is also mappable to PDO, it is necessary to use CO_LOCK_OD() and CO_UNLOCK_OD() macros from Critical sections.
Parameters
coCANopen object.
timer1usDiffTime difference since last call in microseconds

◆ app_programRt()

void app_programRt ( CO_t co,
uint32_t  timer1usDiff 
)

Function is called cyclically from realtime thread at constant intervals.

Code inside this function must be executed fast. Take care on race conditions with app_programAsync.

Parameters
coCANopen object.
timer1usDiffTime difference since last call in microseconds