Lely core libraries 1.9.2
wtm.h
Go to the documentation of this file.
1
22#ifndef LELY_CO_WTM_H_
23#define LELY_CO_WTM_H_
24
25#include <lely/can/msg.h>
26#include <lely/co/co.h>
27#include <lely/libc/time.h>
28
33#define CO_WTM_MAX_LEN 261
34
36#define CO_WTM_AC_ERROR UINT32_C(0x01000000)
37
39#define CO_WTM_AC_TIMEOUT UINT32_C(0x01000001)
40
42#define CO_WTM_AC_NO_MEM UINT32_C(0x01000002)
43
45#define CO_WTM_AC_HARDWARE UINT32_C(0x01000003)
46
51#define CO_WTM_AC_DATA UINT32_C(0x01000004)
52
57#define CO_WTM_AC_DATA_CTL UINT32_C(0x01000005)
58
63#define CO_WTM_AC_DATA_DEV UINT32_C(0x01000006)
64
66#define CO_WTM_AC_NO_DATA UINT32_C(0x01000007)
67
69#define CO_WTM_AC_NO_IF UINT32_C(0x01000008)
70
72#define CO_WTM_AC_IF_DOWN UINT32_C(0x01000009)
73
75#define CO_WTM_AC_DIAG UINT32_C(0x0100000a)
76
81#define CO_WTM_AC_DIAG_CAN UINT32_C(0x0100000b)
82
87#define CO_WTM_AC_DIAG_WTM UINT32_C(0x0100000c)
88
90#define CO_WTM_AC_FRAME UINT32_C(0x02000000)
91
93#define CO_WTM_AC_PREAMBLE UINT32_C(0x02000001)
94
96#define CO_WTM_AC_SEQ UINT32_C(0x02000002)
97
99#define CO_WTM_AC_TYPE UINT32_C(0x02000003)
100
102#define CO_WTM_AC_PAYLOAD UINT32_C(0x02000004)
103
105#define CO_WTM_AC_CRC UINT32_C(0x02000005)
106
108#define CO_WTM_AC_CAN UINT32_C(0x02000006)
109
110struct __co_wtm;
111#ifndef __cplusplus
113typedef struct __co_wtm co_wtm_t;
114#endif
115
116#ifdef __cplusplus
117extern "C" {
118#endif
119
144typedef void co_wtm_diag_can_con_t(co_wtm_t *wtm, uint8_t nif, uint8_t st,
145 uint8_t err, uint8_t load, uint16_t ec, uint16_t foc,
146 uint16_t coc, void *data);
147
159 co_wtm_t *wtm, uint8_t nif, uint8_t quality, void *data);
160
169typedef void co_wtm_diag_can_ind_t(co_wtm_t *wtm, uint8_t nif, void *data);
170
178typedef void co_wtm_diag_wtm_ind_t(co_wtm_t *wtm, void *data);
179
188typedef void co_wtm_diag_ac_ind_t(co_wtm_t *wtm, uint32_t ac, void *data);
189
204typedef int co_wtm_recv_func_t(co_wtm_t *wtm, uint8_t nif,
205 const struct timespec *tp, const struct can_msg *msg,
206 void *data);
207
221 co_wtm_t *wtm, const void *buf, size_t nbytes, void *data);
222
224const char *co_wtm_ac_str(uint32_t ac);
225
226void *__co_wtm_alloc(void);
227void __co_wtm_free(void *ptr);
228struct __co_wtm *__co_wtm_init(struct __co_wtm *wtm);
229void __co_wtm_fini(struct __co_wtm *wtm);
230
240
246void co_wtm_destroy(co_wtm_t *wtm);
247
253uint8_t co_wtm_get_nif(const co_wtm_t *wtm);
254
266int co_wtm_set_nif(co_wtm_t *wtm, uint8_t nif);
267
293int co_wtm_set_diag_can(co_wtm_t *wtm, uint8_t nif, uint8_t st, uint8_t err,
294 uint8_t load, uint16_t ec, uint16_t foc, uint16_t coc);
295
306int co_wtm_set_diag_wtm(co_wtm_t *wtm, uint8_t quality);
307
321 void **pdata);
322
335 co_wtm_t *wtm, co_wtm_diag_can_con_t *con, void *data);
336
350 void **pdata);
351
364 co_wtm_t *wtm, co_wtm_diag_wtm_con_t *con, void *data);
365
379 void **pdata);
380
393 co_wtm_t *wtm, co_wtm_diag_can_ind_t *con, void *data);
394
408 void **pdata);
409
422 co_wtm_t *wtm, co_wtm_diag_wtm_ind_t *con, void *data);
423
437 const co_wtm_t *wtm, co_wtm_diag_ac_ind_t **pind, void **pdata);
438
453 co_wtm_t *wtm, co_wtm_diag_ac_ind_t *ind, void *data);
454
464void co_wtm_recv(co_wtm_t *wtm, const void *buf, size_t nbytes);
465
479 const co_wtm_t *wtm, co_wtm_recv_func_t **pfunc, void **pdata);
480
492void co_wtm_set_recv_func(co_wtm_t *wtm, co_wtm_recv_func_t *func, void *data);
493
506int co_wtm_get_time(const co_wtm_t *wtm, uint8_t nif, struct timespec *tp);
507
521int co_wtm_set_time(co_wtm_t *wtm, uint8_t nif, const struct timespec *tp);
522
536int co_wtm_send(co_wtm_t *wtm, uint8_t nif, const struct can_msg *msg);
537
546
557int co_wtm_send_diag_can_req(co_wtm_t *wtm, uint8_t nif);
558
569int co_wtm_send_diag_wtm_req(co_wtm_t *wtm, uint8_t nif);
570
580int co_wtm_send_diag_can_rst(co_wtm_t *wtm, uint8_t nif);
581
591int co_wtm_send_diag_wtm_rst(co_wtm_t *wtm, uint8_t nif);
592
603int co_wtm_send_diag_ac(co_wtm_t *wtm, uint32_t ac);
604
612int co_wtm_flush(co_wtm_t *wtm);
613
627 const co_wtm_t *wtm, co_wtm_send_func_t **pfunc, void **pdata);
628
640void co_wtm_set_send_func(co_wtm_t *wtm, co_wtm_send_func_t *func, void *data);
641
642#ifdef __cplusplus
643}
644#endif
645
646#endif // !LELY_CO_WTM_H_
This is the public header file of the CANopen library.
This header file is part of the C11 and POSIX compatibility library; it includes <time....
This header file is part of the CAN library; it contains the CAN frame declarations.
A CANopen Wireless Transmission Media (WTM) interface.
Definition: wtm.c:87
uint8_t nif
The WTM interface indicator.
Definition: wtm.c:89
uint8_t quality
The link quality percentage (in the range [0..100], or 0xff if the information is not available).
Definition: wtm.c:94
A CAN or CAN FD format frame.
Definition: msg.h:88
A time type with nanosecond resolution.
Definition: time.h:83
void co_wtm_get_diag_ac_ind(const co_wtm_t *wtm, co_wtm_diag_ac_ind_t **pind, void **pdata)
Retrieves the indication function invoked when an abort code is generated or received by a CANopen WT...
Definition: wtm.c:493
void co_wtm_get_diag_can_ind(const co_wtm_t *wtm, co_wtm_diag_can_ind_t **pcon, void **pdata)
Retrieves the indication function invoked when a CAN communication quality reset message is received ...
Definition: wtm.c:451
const char * co_wtm_ac_str(uint32_t ac)
Returns a string describing a CANopen WTM abort code.
Definition: wtm.c:178
void co_wtm_set_diag_wtm_ind(co_wtm_t *wtm, co_wtm_diag_wtm_ind_t *con, void *data)
Sets the indication function invoked when a WTM communication quality reset message is received by a ...
Definition: wtm.c:484
void co_wtm_diag_wtm_ind_t(co_wtm_t *wtm, void *data)
The type of a CANopen WTM diagnostic indication function, invoked when a WTM communication quality re...
Definition: wtm.h:178
void co_wtm_diag_can_con_t(co_wtm_t *wtm, uint8_t nif, uint8_t st, uint8_t err, uint8_t load, uint16_t ec, uint16_t foc, uint16_t coc, void *data)
The type of a CANopen WTM diagnostic confirmation function, invoked when a CAN communication quality ...
Definition: wtm.h:144
int co_wtm_set_time(co_wtm_t *wtm, uint8_t nif, const struct timespec *tp)
Sets the current time of a CANopen WTM interface.
Definition: wtm.c:802
int co_wtm_send_diag_can_req(co_wtm_t *wtm, uint8_t nif)
Sends a CAN communication quality request.
Definition: wtm.c:931
void co_wtm_destroy(co_wtm_t *wtm)
Destroys a CANopen Wireless Transmission Media (WTM) interface.
Definition: wtm.c:312
int co_wtm_send_alive(co_wtm_t *wtm)
Sends a keep-alive message from a CANopen WTM interface.
Definition: wtm.c:917
void co_wtm_get_diag_wtm_con(const co_wtm_t *wtm, co_wtm_diag_wtm_con_t **pcon, void **pdata)
Retrieves the confirmation function invoked when a WTM communication quality response is received by ...
Definition: wtm.c:430
int co_wtm_send_func_t(co_wtm_t *wtm, const void *buf, size_t nbytes, void *data)
The type of a CANopen WTM send callback function, invoked when a byte stream needs to be sent.
Definition: wtm.h:220
void co_wtm_get_diag_wtm_ind(const co_wtm_t *wtm, co_wtm_diag_wtm_ind_t **pcon, void **pdata)
Retrieves the indication function invoked when a WTM communication quality reset message is received ...
Definition: wtm.c:472
int co_wtm_send_diag_wtm_rst(co_wtm_t *wtm, uint8_t nif)
Sends a WTM communication quality reset message.
Definition: wtm.c:985
void co_wtm_set_diag_can_ind(co_wtm_t *wtm, co_wtm_diag_can_ind_t *con, void *data)
Sets the indication function invoked when a CAN communication quality reset message is received by a ...
Definition: wtm.c:463
co_wtm_t * co_wtm_create(void)
Creates a new CANopen Wireless Transmission Media (WTM) interface.
Definition: wtm.c:287
void co_wtm_set_diag_ac_ind(co_wtm_t *wtm, co_wtm_diag_ac_ind_t *ind, void *data)
Sets the indication function invoked when an abort code is generated or received by a CANopen WTM int...
Definition: wtm.c:505
void co_wtm_set_recv_func(co_wtm_t *wtm, co_wtm_recv_func_t *func, void *data)
Sets the callback function invoked when a CAN frame is received by a CANopen WTM interface.
Definition: wtm.c:777
int co_wtm_set_diag_can(co_wtm_t *wtm, uint8_t nif, uint8_t st, uint8_t err, uint8_t load, uint16_t ec, uint16_t foc, uint16_t coc)
Sets the diagnostic parameters of a CAN interface.
Definition: wtm.c:344
void co_wtm_set_send_func(co_wtm_t *wtm, co_wtm_send_func_t *func, void *data)
Sets the callback function used to send byte streams from a CANopen WTM interface.
Definition: wtm.c:1060
void co_wtm_recv(co_wtm_t *wtm, const void *buf, size_t nbytes)
Receives and processes a byte stream with a CANopen WTM interface.
Definition: wtm.c:514
int co_wtm_send(co_wtm_t *wtm, uint8_t nif, const struct can_msg *msg)
Sends a CAN frame from a CANopen WTM interface.
Definition: wtm.c:836
int co_wtm_send_diag_ac(co_wtm_t *wtm, uint32_t ac)
Sends a diagnostic abort message from a CANopen WTM interface.
Definition: wtm.c:1003
int co_wtm_get_time(const co_wtm_t *wtm, uint8_t nif, struct timespec *tp)
Retrieves the current time of a CANopen WTM interface.
Definition: wtm.c:786
void co_wtm_get_diag_can_con(const co_wtm_t *wtm, co_wtm_diag_can_con_t **pcon, void **pdata)
Retrieves the confirmation function invoked when a CAN communication quality response is received by ...
Definition: wtm.c:409
void co_wtm_get_recv_func(const co_wtm_t *wtm, co_wtm_recv_func_t **pfunc, void **pdata)
Retrieves the callback function invoked when a CAN frame is received by a CANopen WTM interface.
Definition: wtm.c:765
void co_wtm_diag_ac_ind_t(co_wtm_t *wtm, uint32_t ac, void *data)
The type of a CANopen WTM diagnostic indication function, invoked when an abort code is generated or ...
Definition: wtm.h:188
int co_wtm_set_nif(co_wtm_t *wtm, uint8_t nif)
Sets the interface indicator of a CANopen WTM interface.
Definition: wtm.c:329
int co_wtm_send_diag_wtm_req(co_wtm_t *wtm, uint8_t nif)
Sends a WTM communication quality request.
Definition: wtm.c:949
int co_wtm_flush(co_wtm_t *wtm)
Flushes the current send buffer of a CANopen WTM interface.
Definition: wtm.c:1018
void co_wtm_set_diag_can_con(co_wtm_t *wtm, co_wtm_diag_can_con_t *con, void *data)
Sets the confirmation function invoked when a CAN communication quality response is received by a CAN...
Definition: wtm.c:421
void co_wtm_get_send_func(const co_wtm_t *wtm, co_wtm_send_func_t **pfunc, void **pdata)
Retrieves the callback function used to send byte streams from a CANopen WTM interface.
Definition: wtm.c:1048
int co_wtm_send_diag_can_rst(co_wtm_t *wtm, uint8_t nif)
Sends a CAN communication quality reset message.
Definition: wtm.c:967
int co_wtm_recv_func_t(co_wtm_t *wtm, uint8_t nif, const struct timespec *tp, const struct can_msg *msg, void *data)
The type of a CANopen WTM receive callback function, invoked when a CAN frame is received.
Definition: wtm.h:204
uint8_t co_wtm_get_nif(const co_wtm_t *wtm)
Returns the interface indicator of a CANopen WTM interface.
Definition: wtm.c:321
void co_wtm_diag_wtm_con_t(co_wtm_t *wtm, uint8_t nif, uint8_t quality, void *data)
The type of a CANopen WTM diagnostic confirmation function, invoked when a WTM communication quality ...
Definition: wtm.h:158
void co_wtm_diag_can_ind_t(co_wtm_t *wtm, uint8_t nif, void *data)
The type of a CANopen WTM diagnostic indication function, invoked when a CAN communication quality re...
Definition: wtm.h:169
int co_wtm_set_diag_wtm(co_wtm_t *wtm, uint8_t quality)
Sets the diagnostic parameters of a WTM interface.
Definition: wtm.c:394
void co_wtm_set_diag_wtm_con(co_wtm_t *wtm, co_wtm_diag_wtm_con_t *con, void *data)
Sets the confirmation function invoked when a WTM communication quality response is received by a CAN...
Definition: wtm.c:442