CANopenNode
LED indicators

Files

file  CO_LEDs.h
 CANopen Indicator specification (CiA 303-3 v1.4.0)
 

Data Structures

struct  CO_LEDs_t
 LEDs object, initialized by CO_LEDs_init() More...
 

Macros

#define CO_LED_RED(LEDs, BITFIELD)   (((LEDs)->LEDred & BITFIELD) ? 1 : 0)
 Get on/off state for green led for specified bitfield.
 
#define CO_LED_GREEN(LEDs, BITFIELD)   (((LEDs)->LEDgreen & BITFIELD) ? 1 : 0)
 Get on/off state for green led for specified bitfield.
 

Enumerations

enum  CO_LED_BITFIELD_t {
  CO_LED_flicker = 0x01, CO_LED_blink = 0x02, CO_LED_flash_1 = 0x04, CO_LED_flash_2 = 0x08,
  CO_LED_flash_3 = 0x10, CO_LED_flash_4 = 0x20, CO_LED_CANopen = 0x80
}
 Bitfield for combining with red or green led. More...
 

Functions

CO_ReturnError_t CO_LEDs_init (CO_LEDs_t *LEDs)
 Initialize LEDs object. More...
 
void CO_LEDs_process (CO_LEDs_t *LEDs, uint32_t timeDifference_us, CO_NMT_internalState_t NMTstate, bool_t LSSconfig, bool_t ErrCANbusOff, bool_t ErrCANbusWarn, bool_t ErrRpdo, bool_t ErrSync, bool_t ErrHbCons, bool_t ErrOther, bool_t firmwareDownload, uint32_t *timerNext_us)
 Process indicator states. More...
 

Detailed Description

CIA 303-3 standard specifies indicator LED diodes, which reflects state of the CANopen device. Green and red leds or bi-color led can be used.

CANopen green led - run led:

CANopen red led - error led:

To apply on/off state to led diode, use CO_LED_RED and CO_LED_GREEN macros. For CANopen leds use CO_LED_BITFIELD_t CO_LED_CANopen. Other bitfields are available for implementing custom leds.

Enumeration Type Documentation

◆ CO_LED_BITFIELD_t

Bitfield for combining with red or green led.

Enumerator
CO_LED_flicker 

LED flickering 10Hz.

CO_LED_blink 

LED blinking 2,5Hz.

CO_LED_flash_1 

LED single flash.

CO_LED_flash_2 

LED double flash.

CO_LED_flash_3 

LED triple flash.

CO_LED_flash_4 

LED quadruple flash.

CO_LED_CANopen 

LED CANopen according to CiA 303-3.

Function Documentation

◆ CO_LEDs_init()

CO_ReturnError_t CO_LEDs_init ( CO_LEDs_t LEDs)

Initialize LEDs object.

Function must be called in the communication reset section.

Parameters
LEDsThis object will be initialized.
Returns
CO_ReturnError_t CO_ERROR_NO or CO_ERROR_ILLEGAL_ARGUMENT.

◆ CO_LEDs_process()

void CO_LEDs_process ( CO_LEDs_t LEDs,
uint32_t  timeDifference_us,
CO_NMT_internalState_t  NMTstate,
bool_t  LSSconfig,
bool_t  ErrCANbusOff,
bool_t  ErrCANbusWarn,
bool_t  ErrRpdo,
bool_t  ErrSync,
bool_t  ErrHbCons,
bool_t  ErrOther,
bool_t  firmwareDownload,
uint32_t timerNext_us 
)

Process indicator states.

Function must be called cyclically.

Parameters
LEDsThis object.
timeDifference_usTime difference from previous function call in [microseconds].
NMTstateNMT operating state.
LSSconfigNode is in LSS configuration state indication.
ErrCANbusOffCAN bus off indication (highest priority).
ErrCANbusWarnCAN error warning limit reached indication.
ErrRpdoRPDO event timer timeout indication.
ErrSyncSync receive timeout indication.
ErrHbConsHeartbeat consumer error (remote node) indication.
ErrOtherOther error indication (lowest priority).
firmwareDownloadFirmware download is in progress indication.
[out]timerNext_usinfo to OS - see CO_process().