Motion Master
Loading...
Searching...
No Matches
igh_dynamic.h
Go to the documentation of this file.
1#pragma once
2
3#ifdef LINUX_BUILD
4
5#include <ecrt.h>
6
7struct IghDynamic {
8 static void *handle;
9
10 static int loadLibrary();
11
12 static void (*fptr_ecrt_master_state)(const ec_master_t *,
13 ec_master_state_t *);
14 static void ecrt_master_state(const ec_master_t *, ec_master_state_t *);
15
16 static ec_master_t *(*fptr_ecrt_open_master)(unsigned int);
17 static ec_master_t *ecrt_open_master(unsigned int);
18
19 static int (*fptr_ecrt_master_rescan)(ec_master_t *);
20 static int ecrt_master_rescan(ec_master_t *);
21
22 static void (*fptr_ecrt_release_master)(ec_master_t *);
23 static void ecrt_release_master(ec_master_t *);
24
25 static int (*fptr_ecrt_master_get_slave)(ec_master_t *, uint16_t,
26 ec_slave_info_t *);
27 static int ecrt_master_get_slave(ec_master_t *, uint16_t, ec_slave_info_t *);
28
29 static int (*fptr_ecrt_master_sdo_upload)(ec_master_t *, uint16_t, uint16_t,
30 uint8_t, uint8_t *, size_t,
31 size_t *, uint32_t *);
32 static int ecrt_master_sdo_upload(ec_master_t *, uint16_t, uint16_t, uint8_t,
33 uint8_t *, size_t, size_t *, uint32_t *);
34
35 static uint8_t *(*fptr_ecrt_sdo_request_data)(ec_sdo_request_t *);
36 static uint8_t *ecrt_sdo_request_data(ec_sdo_request_t *);
37
38 static size_t (*fptr_ecrt_sdo_request_data_size)(const ec_sdo_request_t *);
39 static size_t ecrt_sdo_request_data_size(const ec_sdo_request_t *);
40
41 static ec_master_t *(*fptr_ecrt_request_master)(unsigned int);
42 static ec_master_t *ecrt_request_master(unsigned int);
43
44 static int (*fptr_ecrt_master)(ec_master_t *, ec_master_info_t *);
45 static int ecrt_master(ec_master_t *, ec_master_info_t *);
46
47 static void (*fptr_ecrt_master_receive)(ec_master_t *);
48 static void ecrt_master_receive(ec_master_t *);
49
50 static void (*fptr_ecrt_domain_process)(ec_domain_t *);
51 static void ecrt_domain_process(ec_domain_t *);
52
53 static void (*fptr_ecrt_domain_state)(const ec_domain_t *,
54 ec_domain_state_t *);
55 static void ecrt_domain_state(const ec_domain_t *, ec_domain_state_t *);
56
57 static void (*fptr_ecrt_domain_queue)(ec_domain_t *);
58 static void ecrt_domain_queue(ec_domain_t *);
59
60 static size_t (*fptr_ecrt_master_send)(ec_master_t *);
61 static size_t ecrt_master_send(ec_master_t *);
62
63 static int (*fptr_ecrt_master_read_foe)(ec_master_t *, uint16_t, const char *,
64 uint8_t *, size_t *);
65 static int ecrt_master_read_foe(ec_master_t *, uint16_t, const char *,
66 uint8_t *, size_t *);
67
68 static int (*fptr_ecrt_master_write_foe)(ec_master_t *, uint16_t,
69 const char *, const uint8_t *,
70 size_t);
71 static int ecrt_master_write_foe(ec_master_t *, uint16_t, const char *,
72 const uint8_t *, size_t);
73
74 static int (*fptr_ecrt_master_write_sii)(ec_master_t *, uint16_t,
75 const uint8_t *, size_t);
76 static int ecrt_master_write_sii(ec_master_t *, uint16_t, const uint8_t *,
77 size_t);
78
79 static void (*fptr_ecrt_slave_config_state)(const ec_slave_config_t *,
80 ec_slave_config_state_t *);
81 static void ecrt_slave_config_state(const ec_slave_config_t *,
82 ec_slave_config_state_t *);
83
84 static int (*fptr_ecrt_master_slave_link_state_request)(const ec_master_t *,
85 uint16_t, uint8_t);
86 static int ecrt_master_slave_link_state_request(const ec_master_t *, uint16_t,
87 uint8_t state);
88
89 static void (*fptr_ecrt_sdo_request_read)(ec_sdo_request_t *);
90 static void ecrt_sdo_request_read(ec_sdo_request_t *);
91
92 static ec_request_state_t (*fptr_ecrt_sdo_request_state)(ec_sdo_request_t *);
93 static ec_request_state_t ecrt_sdo_request_state(ec_sdo_request_t *);
94
95 static int (*fptr_ecrt_master_sdo_download)(ec_master_t *, uint16_t, uint16_t,
96 uint8_t, const uint8_t *, size_t,
97 uint32_t *);
98 static int ecrt_master_sdo_download(ec_master_t *, uint16_t, uint16_t,
99 uint8_t, const uint8_t *, size_t,
100 uint32_t *);
101
102 static void (*fptr_ecrt_sdo_request_write)(ec_sdo_request_t *);
103 static void ecrt_sdo_request_write(ec_sdo_request_t *);
104
105 static int (*fptr_ecrt_sdo_get_info_entry)(ec_master_t *, uint16_t, uint16_t,
106 uint8_t, ec_sdo_info_entry_t *);
107 static int ecrt_sdo_get_info_entry(ec_master_t *, uint16_t, uint16_t, uint8_t,
108 ec_sdo_info_entry_t *);
109
110 static int (*fptr_ecrt_sdo_info_get)(ec_master_t *, uint16_t, uint16_t,
111 ec_sdo_info_t *);
112 static int ecrt_sdo_info_get(ec_master_t *, uint16_t, uint16_t,
113 ec_sdo_info_t *);
114
115 static void (*fptr_ecrt_sdo_request_timeout)(ec_sdo_request_t *, uint32_t);
116 static void ecrt_sdo_request_timeout(ec_sdo_request_t *, uint32_t);
117
118 static ec_sdo_request_t *(*fptr_ecrt_slave_config_create_sdo_request)(
119 ec_slave_config_t *, uint16_t, uint8_t, size_t);
120 static ec_sdo_request_t *ecrt_slave_config_create_sdo_request(
121 ec_slave_config_t *, uint16_t, uint8_t, size_t);
122
123 static int (*fptr_ecrt_slave_config_pdos)(ec_slave_config_t *, unsigned int,
124 const ec_sync_info_t[]);
125 static int ecrt_slave_config_pdos(ec_slave_config_t *, unsigned int,
126 const ec_sync_info_t[]);
127
128 static int (*fptr_ecrt_master_get_pdo_entry)(ec_master_t *, uint16_t, uint8_t,
129 uint16_t, uint16_t,
130 ec_pdo_entry_info_t *);
131 static int ecrt_master_get_pdo_entry(ec_master_t *, uint16_t, uint8_t,
132 uint16_t, uint16_t,
133 ec_pdo_entry_info_t *);
134
135 static ec_domain_t *(*fptr_ecrt_master_create_domain)(ec_master_t *);
136 static ec_domain_t *ecrt_master_create_domain(ec_master_t *);
137
138 static int (*fptr_ecrt_master_activate)(ec_master_t *);
139 static int ecrt_master_activate(ec_master_t *);
140
141 static void (*fptr_ecrt_master_deactivate)(ec_master_t *);
142 static void ecrt_master_deactivate(ec_master_t *);
143
144 static int (*fptr_ecrt_domain_reg_pdo_entry_list)(ec_domain_t *,
145 const ec_pdo_entry_reg_t *);
146 static int ecrt_domain_reg_pdo_entry_list(ec_domain_t *,
147 const ec_pdo_entry_reg_t *);
148
149 static uint8_t *(*fptr_ecrt_domain_data)(ec_domain_t *);
150 static uint8_t *ecrt_domain_data(ec_domain_t *);
151
152 static ec_slave_config_t *(*fptr_ecrt_master_slave_config)(ec_master_t *,
153 uint16_t, uint16_t,
154 uint32_t,
155 uint32_t);
156 static ec_slave_config_t *ecrt_master_slave_config(ec_master_t *, uint16_t,
157 uint16_t, uint32_t,
158 uint32_t);
159
160 static int (*fptr_ecrt_master_get_sync_manager)(ec_master_t *, uint16_t,
161 uint8_t, ec_sync_info_t *);
162 static int ecrt_master_get_sync_manager(ec_master_t *, uint16_t, uint8_t,
163 ec_sync_info_t *);
164
165 static int (*fptr_ecrt_master_get_pdo)(ec_master_t *, uint16_t, uint8_t,
166 uint16_t, ec_pdo_info_t *);
167 static int ecrt_master_get_pdo(ec_master_t *, uint16_t, uint8_t, uint16_t,
168 ec_pdo_info_t *);
169
170 static int (*fptr_ecrt_master_slave_dictionary_upload)(ec_master_t *,
171 uint16_t);
172 static int ecrt_master_slave_dictionary_upload(ec_master_t *, uint16_t);
173
174 static void (*fptr_ecrt_master_deactivate_slaves)(ec_master_t *);
175
176 static void ecrt_master_deactivate_slaves(ec_master_t *);
177};
178
179#endif