CANopenLinux
CANopenNode on Linux devices
Loading...
Searching...
No Matches
Application interface to CANopenNode Application interface, similar to Arduino,

extended to CANopen and additional, realtime thread. More...

Collaboration diagram for Application interface to CANopenNode Application interface, similar to Arduino,:

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.
void app_communicationReset (CO_t *co)
 Function is called after CANopen communication reset.
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().
void app_programRt (CO_t *co, uint32_t timer1usDiff)
 Function is called cyclically from realtime thread at constant intervals.

Detailed Description

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 CO_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