Lely core libraries  2.3.4
nmt_srv.h
Go to the documentation of this file.
1 
23 #ifndef LELY_CO_INTERN_NMT_SRV_H_
24 #define LELY_CO_INTERN_NMT_SRV_H_
25 
26 #include "co.h"
27 #include <lely/co/nmt.h>
28 
30 struct co_nmt_srv {
38  int set;
39 #if !LELY_NO_CO_RPDO
43  co_unsigned16_t nrpdo;
44 #endif
45 #if !LELY_NO_CO_TPDO
49  co_unsigned16_t ntpdo;
50 #endif
54  co_unsigned8_t nssdo;
55 #if !LELY_NO_CO_CSDO
59  co_unsigned8_t ncsdo;
60 #endif
61 #if !LELY_NO_CO_SYNC
64 #endif
65 #if !LELY_NO_CO_TIME
68 #endif
69 #if !LELY_NO_CO_EMCY
72 #endif
73 #if !LELY_NO_CO_LSS
76 #endif
77 };
78 
80 #define CO_NMT_SRV_PDO 0x01
81 
83 #define CO_NMT_SRV_SDO 0x02
84 
86 #define CO_NMT_SRV_SYNC 0x04
87 
89 #define CO_NMT_SRV_TIME 0x08
90 
92 #define CO_NMT_SRV_EMCY 0x10
93 
95 #define CO_NMT_SRV_LSS 0x20
96 
97 #ifdef __cplusplus
98 extern "C" {
99 #endif
100 
102 void co_nmt_srv_init(struct co_nmt_srv *srv, co_nmt_t *nmt);
103 
105 void co_nmt_srv_fini(struct co_nmt_srv *srv);
106 
117 void co_nmt_srv_set(struct co_nmt_srv *srv, co_nmt_t *nmt, int set);
118 
119 #ifdef __cplusplus
120 }
121 #endif
122 
123 #endif // !LELY_CO_INTERN_NMT_SRV_H_
This header file is part of the CANopen library; it contains the network management (NMT) declaration...
void co_nmt_srv_set(struct co_nmt_srv *srv, co_nmt_t *nmt, int set)
Enables/disables the specified CANopen services.
Definition: nmt_srv.c:160
void co_nmt_srv_fini(struct co_nmt_srv *srv)
Finalizes a CANopen NMT service manager.
Definition: nmt_srv.c:152
void co_nmt_srv_init(struct co_nmt_srv *srv, co_nmt_t *nmt)
Initializes a CANopen NMT service manager.
Definition: nmt_srv.c:111
This is the internal header file of the CANopen library.
A CANopen Client-SDO.
Definition: csdo.c:71
A CANopen EMCY producer/consumer service.
Definition: emcy.c:85
A CANopen LSS master/slave service.
Definition: lss.c:44
A CANopen NMT master/slave service.
Definition: nmt.c:148
A CANopen Receive-PDO.
Definition: rpdo.c:44
A CANopen Server-SDO.
Definition: ssdo.c:63
A CANopen SYNC producer/consumer service.
Definition: sync.c:40
A CANopen TIME producer/consumer service.
Definition: time.c:41
A CANopen Transmit-PDO.
Definition: tpdo.c:53
A CANopen NMT service manager.
Definition: nmt_srv.h:30
co_tpdo_t ** tpdos
An array of pointers to the Transmit-PDO services.
Definition: nmt_srv.h:47
co_unsigned16_t ntpdo
The number of Transmit-PDO services.
Definition: nmt_srv.h:49
co_lss_t * lss
A pointer to the LSS master/slave service.
Definition: nmt_srv.h:75
co_ssdo_t ** ssdos
An array of pointers to the Server-SDO services.
Definition: nmt_srv.h:52
int set
The currently enabled CANopen services (any combination of CO_NMT_SRV_PDO, CO_NMT_SRV_SDO,...
Definition: nmt_srv.h:38
co_rpdo_t ** rpdos
An array of pointers to the Receive-PDO services.
Definition: nmt_srv.h:41
co_unsigned8_t ncsdo
The number of Client-SDO services.
Definition: nmt_srv.h:59
co_unsigned8_t nssdo
The number of Server-SDO services.
Definition: nmt_srv.h:54
co_nmt_t * nmt
A pointer to the NMT master/slave service.
Definition: nmt_srv.h:32
co_time_t * time
A pointer to the TIME producer/consumer service.
Definition: nmt_srv.h:67
co_csdo_t ** csdos
An array of pointers to the Client-SDO services.
Definition: nmt_srv.h:57
co_emcy_t * emcy
A pointer to the EMCY producer/consumer service.
Definition: nmt_srv.h:71
co_unsigned16_t nrpdo
The number of Receive-PDO services.
Definition: nmt_srv.h:43
co_sync_t * sync
A pointer to the SYNC producer/consumer service.
Definition: nmt_srv.h:63