Skip to content

File syn_cia401.h

FileList > proto > syn_cia401.h

Go to the source code of this file

CANopen CiA 401 Device Profile for Generic I/O Modules. More...

  • #include "../common/syn_defs.h"
  • #include "syn_canopen.h"
  • #include <stdbool.h>
  • #include <stddef.h>
  • #include <stdint.h>

Classes

Type Name
struct SYN_CiA401_Device
CiA 401 Generic I/O Device State Instance.

Public Functions

Type Name
bool syn_cia401_check_analog_delta (SYN_CiA401_Device * dev, uint8_t * channel)
Check if any analog input has exceeded its delta threshold for event-driven TPDO.
void syn_cia401_init (SYN_CiA401_Device * dev, uint8_t dig_in_bytes, uint8_t dig_out_bytes, uint8_t analog_in_ch, uint8_t analog_out_ch)
Initialize a CiA 401 device state instance.
size_t syn_cia401_populate_od (SYN_CiA401_Device * dev, SYN_CANOpenODEntry * od_table, size_t max_entries)
Populate a standard CANopen Object Dictionary array with CiA 401 entries.

Macros

Type Name
define SYN_CIA401_MAX_ANALOG_16BIT 8
define SYN_CIA401_MAX_DIGITAL_8BIT 4
Maximum channel capacities for CiA 401 instance.
define SYN_CIA401_OD_ANALOG_INPUT_16BIT 0x6401U
define SYN_CIA401_OD_ANALOG_INPUT_DELTA 0x6421U
define SYN_CIA401_OD_ANALOG_INPUT_LIMIT_H 0x6425U
define SYN_CIA401_OD_ANALOG_INPUT_LIMIT_L 0x6424U
define SYN_CIA401_OD_ANALOG_OUTPUT_16BIT 0x6411U
define SYN_CIA401_OD_DIGITAL_INPUT_8BIT 0x6000U
CiA 401 Standard Object Dictionary Indices.
define SYN_CIA401_OD_DIGITAL_OUTPUT_8BIT 0x6200U

Detailed Description

Implements CiA 401 Object Dictionary definitions and helper binding state for 8-bit digital inputs/outputs and 16-bit analog inputs/outputs.

Public Functions Documentation

function syn_cia401_check_analog_delta

Check if any analog input has exceeded its delta threshold for event-driven TPDO.

bool syn_cia401_check_analog_delta (
    SYN_CiA401_Device * dev,
    uint8_t * channel
) 

Parameters:

  • dev Pointer to CiA 401 device instance.
  • channel Output channel index (0..analog_in_count-1) that changed.

Returns:

True if a change occurred exceeding delta.


function syn_cia401_init

Initialize a CiA 401 device state instance.

void syn_cia401_init (
    SYN_CiA401_Device * dev,
    uint8_t dig_in_bytes,
    uint8_t dig_out_bytes,
    uint8_t analog_in_ch,
    uint8_t analog_out_ch
) 

Parameters:

  • dev Pointer to CiA 401 device handle.
  • dig_in_bytes Number of 8-bit digital input blocks (1..4).
  • dig_out_bytes Number of 8-bit digital output blocks (1..4).
  • analog_in_ch Number of 16-bit analog input channels (1..8).
  • analog_out_ch Number of 16-bit analog output channels (1..8).

function syn_cia401_populate_od

Populate a standard CANopen Object Dictionary array with CiA 401 entries.

size_t syn_cia401_populate_od (
    SYN_CiA401_Device * dev,
    SYN_CANOpenODEntry * od_table,
    size_t max_entries
) 

Parameters:

  • dev Pointer to initialized CiA 401 device instance.
  • od_table Output array of SYN_CANOpenODEntry elements.
  • max_entries Capacity of od_table array.

Returns:

Number of OD entries populated.


Macro Definition Documentation

define SYN_CIA401_MAX_ANALOG_16BIT

#define SYN_CIA401_MAX_ANALOG_16BIT `8`

Maximum 16-bit analog I/O channels


define SYN_CIA401_MAX_DIGITAL_8BIT

Maximum channel capacities for CiA 401 instance.

#define SYN_CIA401_MAX_DIGITAL_8BIT `4`

Maximum 8-bit digital I/O ports


define SYN_CIA401_OD_ANALOG_INPUT_16BIT

#define SYN_CIA401_OD_ANALOG_INPUT_16BIT `0x6401U`

Read 16-bit Analog Inputs


define SYN_CIA401_OD_ANALOG_INPUT_DELTA

#define SYN_CIA401_OD_ANALOG_INPUT_DELTA `0x6421U`

Analog Input Delta Interrupt Threshold


define SYN_CIA401_OD_ANALOG_INPUT_LIMIT_H

#define SYN_CIA401_OD_ANALOG_INPUT_LIMIT_H `0x6425U`

Analog Input High Limit Alarm


define SYN_CIA401_OD_ANALOG_INPUT_LIMIT_L

#define SYN_CIA401_OD_ANALOG_INPUT_LIMIT_L `0x6424U`

Analog Input Low Limit Alarm


define SYN_CIA401_OD_ANALOG_OUTPUT_16BIT

#define SYN_CIA401_OD_ANALOG_OUTPUT_16BIT `0x6411U`

Write 16-bit Analog Outputs


define SYN_CIA401_OD_DIGITAL_INPUT_8BIT

CiA 401 Standard Object Dictionary Indices.

#define SYN_CIA401_OD_DIGITAL_INPUT_8BIT `0x6000U`

Read 8-bit Digital Inputs


define SYN_CIA401_OD_DIGITAL_OUTPUT_8BIT

#define SYN_CIA401_OD_DIGITAL_OUTPUT_8BIT `0x6200U`

Write 8-bit Digital Outputs



The documentation for this class was generated from the following file src/syntropic/proto/syn_cia401.h