File syn_canopen_mgr.h¶
FileList > proto > syn_canopen_mgr.h
Go to the source code of this file
CANopen CiA 302 Network Manager, SDO Client & NMT Master. More...
#include "../common/syn_defs.h"#include "../drivers/syn_can.h"#include "syn_canopen.h"#include <stdbool.h>#include <stddef.h>#include <stdint.h>
Classes¶
| Type | Name |
|---|---|
| struct | SYN_CANOpenManager CANopen Manager Master State Handle. |
| struct | SYN_CANOpenNodeMonitor Remote Node Heartbeat Monitor Entry. |
| struct | SYN_CANOpenSDOClient SDO Client Transaction Handle. |
Public Types¶
| Type | Name |
|---|---|
| enum | SYN_SDOClientState SDO Client Transfer States. |
Public Functions¶
| Type | Name |
|---|---|
| void | syn_canopen_mgr_build_nmt (SYN_CAN_Frame * frame, uint8_t target_node, uint8_t nmt_cmd) Build an NMT Master command frame. |
| void | syn_canopen_mgr_init (SYN_CANOpenManager * mgr) Initialize CANopen Manager master instance. |
| void | syn_canopen_mgr_process_frame (SYN_CANOpenManager * mgr, const SYN_CAN_Frame * frame) Process an incoming CAN frame for Manager processing (Heartbeats, SDO responses). |
| SYN_Status | syn_canopen_mgr_sdo_read_init (SYN_CANOpenManager * mgr, SYN_CAN_Frame * frame, uint8_t node_id, uint16_t index, uint8_t subindex) Initiate an SDO Read request to a remote slave node. |
| SYN_Status | syn_canopen_mgr_sdo_write_init (SYN_CANOpenManager * mgr, SYN_CAN_Frame * frame, uint8_t node_id, uint16_t index, uint8_t subindex, const void * data, size_t len) Initiate an SDO Write request to a remote slave node. |
| void | syn_canopen_mgr_step (SYN_CANOpenManager * mgr, uint16_t delta_ms) Advance CANopen Manager periodic timer ticks. |
Detailed Description¶
Provides a lightweight, non-blocking CANopen master engine capable of transmitting NMT node control commands, executing expedited/segmented SDO reads & writes to remote slave nodes, and monitoring network heartbeats.
Public Types Documentation¶
enum SYN_SDOClientState¶
SDO Client Transfer States.
enum SYN_SDOClientState {
SYN_SDO_CLIENT_STATE_IDLE = 0,
SYN_SDO_CLIENT_STATE_WAIT_READ,
SYN_SDO_CLIENT_STATE_WAIT_WRITE,
SYN_SDO_CLIENT_STATE_SUCCESS,
SYN_SDO_CLIENT_STATE_ERROR
};
Public Functions Documentation¶
function syn_canopen_mgr_build_nmt¶
Build an NMT Master command frame.
Parameters:
frameOutput CAN frame buffer.target_nodeTarget node ID (1..127 or 0 for broadcast).nmt_cmdCommand (SYN_CANOPEN_NMT_CMD_*).
function syn_canopen_mgr_init¶
Initialize CANopen Manager master instance.
Parameters:
mgrPointer to manager handle.
function syn_canopen_mgr_process_frame¶
Process an incoming CAN frame for Manager processing (Heartbeats, SDO responses).
Parameters:
mgrPointer to manager handle.frameIncoming CAN frame.
function syn_canopen_mgr_sdo_read_init¶
Initiate an SDO Read request to a remote slave node.
SYN_Status syn_canopen_mgr_sdo_read_init (
SYN_CANOpenManager * mgr,
SYN_CAN_Frame * frame,
uint8_t node_id,
uint16_t index,
uint8_t subindex
)
Parameters:
mgrPointer to manager handle.frameOutput CAN request frame buffer.node_idTarget slave Node-ID.indexTarget Object Dictionary Index.subindexTarget Object Dictionary Subindex.
Returns:
SYN_OK if initiated, SYN_BUSY if SDO client is busy.
function syn_canopen_mgr_sdo_write_init¶
Initiate an SDO Write request to a remote slave node.
SYN_Status syn_canopen_mgr_sdo_write_init (
SYN_CANOpenManager * mgr,
SYN_CAN_Frame * frame,
uint8_t node_id,
uint16_t index,
uint8_t subindex,
const void * data,
size_t len
)
Parameters:
mgrPointer to manager handle.frameOutput CAN request frame buffer.node_idTarget slave Node-ID.indexTarget Object Dictionary Index.subindexTarget Object Dictionary Subindex.dataPointer to payload bytes to write.lenData length (1..4 bytes for expedited write).
Returns:
SYN_OK if initiated, SYN_BUSY if busy.
function syn_canopen_mgr_step¶
Advance CANopen Manager periodic timer ticks.
Parameters:
mgrPointer to manager handle.delta_msMilliseconds elapsed since last call.
The documentation for this class was generated from the following file src/syntropic/proto/syn_canopen_mgr.h