67 |
67 |
68 struct ec_slave; |
68 struct ec_slave; |
69 typedef struct ec_slave ec_slave_t; /**< \see ec_slave */ |
69 typedef struct ec_slave ec_slave_t; /**< \see ec_slave */ |
70 |
70 |
71 /** |
71 /** |
72 Initialization type for field registrations. |
72 Initialization type for PDO registrations. |
73 This type is used as a parameter for the ec_domain_register_field_list() |
73 This type is used as a parameter for the ec_domain_register_pdo_list() |
74 function. |
74 function. |
75 */ |
75 */ |
76 |
76 |
77 typedef struct |
77 typedef struct |
78 { |
78 { |
79 void **data_ptr; /**< address of the process data pointer */ |
|
80 const char *slave_address; /**< slave address string (see |
79 const char *slave_address; /**< slave address string (see |
81 ecrt_master_get_slave()) */ |
80 ecrt_master_get_slave()) */ |
82 const char *vendor_name; /**< vendor name */ |
81 uint32_t vendor_id; /**< vendor ID */ |
83 const char *product_name; /**< product name */ |
82 uint32_t product_code; /**< product code */ |
84 const char *field_name; /**< data field name */ |
83 uint16_t pdo_index; /**< PDO index */ |
85 unsigned int field_index; /**< index in data fields with same name */ |
84 uint8_t pdo_subindex; /**< PDO subindex */ |
86 unsigned int field_count; /**< number of data fields with same name */ |
85 void **data_ptr; /**< address of the process data pointer */ |
87 } |
86 } |
88 ec_field_init_t; |
87 ec_pdo_reg_t; |
89 |
88 |
90 /****************************************************************************** |
89 /****************************************************************************** |
91 * Master request functions |
90 * Master request functions |
92 *****************************************************************************/ |
91 *****************************************************************************/ |
93 |
92 |
104 ec_domain_t *ecrt_master_create_domain(ec_master_t *master); |
103 ec_domain_t *ecrt_master_create_domain(ec_master_t *master); |
105 |
104 |
106 int ecrt_master_activate(ec_master_t *master); |
105 int ecrt_master_activate(ec_master_t *master); |
107 void ecrt_master_deactivate(ec_master_t *master); |
106 void ecrt_master_deactivate(ec_master_t *master); |
108 |
107 |
109 int ecrt_master_fetch_sdo_lists(ec_master_t *master); |
108 void ecrt_master_prepare(ec_master_t *master); |
110 |
109 |
111 void ecrt_master_sync_io(ec_master_t *master); |
110 void ecrt_master_send(ec_master_t *master); |
112 void ecrt_master_async_send(ec_master_t *master); |
111 void ecrt_master_receive(ec_master_t *master); |
113 void ecrt_master_async_receive(ec_master_t *master); |
|
114 void ecrt_master_prepare_async_io(ec_master_t *master); |
|
115 |
112 |
116 void ecrt_master_run(ec_master_t *master); |
113 void ecrt_master_run(ec_master_t *master); |
117 |
114 |
118 int ecrt_master_start_eoe(ec_master_t *master); |
|
119 |
|
120 void ecrt_master_debug(ec_master_t *master, int level); |
|
121 void ecrt_master_print(const ec_master_t *master, unsigned int verbosity); |
|
122 |
|
123 ec_slave_t *ecrt_master_get_slave(const ec_master_t *, const char *); |
115 ec_slave_t *ecrt_master_get_slave(const ec_master_t *, const char *); |
124 |
116 |
|
117 int ecrt_master_state(const ec_master_t *master); |
|
118 |
125 /****************************************************************************** |
119 /****************************************************************************** |
126 * Domain Methods |
120 * Domain Methods |
127 *****************************************************************************/ |
121 *****************************************************************************/ |
128 |
122 |
129 ec_slave_t *ecrt_domain_register_field(ec_domain_t *domain, |
123 ec_slave_t *ecrt_domain_register_pdo(ec_domain_t *domain, |
130 const char *address, |
124 const char *address, |
131 const char *vendor_name, |
125 uint32_t vendor_id, |
132 const char *product_name, |
126 uint32_t product_code, |
133 void **data_ptr, const char *field_name, |
127 uint16_t pdo_index, |
134 unsigned int field_index, |
128 uint8_t pdo_subindex, |
135 unsigned int field_count); |
129 void **data_ptr); |
136 int ecrt_domain_register_field_list(ec_domain_t *domain, |
130 int ecrt_domain_register_pdo_list(ec_domain_t *domain, |
137 const ec_field_init_t *fields); |
131 const ec_pdo_reg_t *pdos); |
138 |
132 |
139 void ecrt_domain_queue(ec_domain_t *domain); |
|
140 void ecrt_domain_process(ec_domain_t *domain); |
133 void ecrt_domain_process(ec_domain_t *domain); |
141 |
134 int ecrt_domain_state(const ec_domain_t *domain); |
142 int ecrt_domain_state(ec_domain_t *domain); |
|
143 |
135 |
144 /****************************************************************************** |
136 /****************************************************************************** |
145 * Slave Methods |
137 * Slave Methods |
146 *****************************************************************************/ |
138 *****************************************************************************/ |
147 |
139 |
148 /* there SDO functions are deprecated! */ |
140 int ecrt_slave_conf_sdo8(ec_slave_t *slave, uint16_t sdo_index, |
149 |
141 uint8_t sdo_subindex, uint8_t value); |
150 int ecrt_slave_sdo_read_exp8(ec_slave_t *slave, uint16_t sdo_index, |
142 int ecrt_slave_conf_sdo16(ec_slave_t *slave, uint16_t sdo_index, |
151 uint8_t sdo_subindex, uint8_t *value); |
143 uint8_t sdo_subindex, uint16_t value); |
152 int ecrt_slave_sdo_read_exp16(ec_slave_t *slave, uint16_t sdo_index, |
144 int ecrt_slave_conf_sdo32(ec_slave_t *slave, uint16_t sdo_index, |
153 uint8_t sdo_subindex, uint16_t *value); |
145 uint8_t sdo_subindex, uint32_t value); |
154 int ecrt_slave_sdo_read_exp32(ec_slave_t *slave, uint16_t sdo_index, |
146 |
155 uint8_t sdo_subindex, uint32_t *value); |
147 int ecrt_slave_pdo_size(ec_slave_t *slave, uint16_t pdo_index, |
156 int ecrt_slave_sdo_write_exp8(ec_slave_t *slave, uint16_t sdo_index, |
148 uint8_t pdo_subindex, size_t size); |
157 uint8_t sdo_subindex, uint8_t value); |
|
158 int ecrt_slave_sdo_write_exp16(ec_slave_t *slave, uint16_t sdo_index, |
|
159 uint8_t sdo_subindex, uint16_t value); |
|
160 int ecrt_slave_sdo_write_exp32(ec_slave_t *slave, uint16_t sdo_index, |
|
161 uint8_t sdo_subindex, uint32_t value); |
|
162 int ecrt_slave_sdo_read(ec_slave_t *slave, uint16_t sdo_index, |
|
163 uint8_t sdo_subindex, uint8_t *data, size_t *size); |
|
164 |
|
165 int ecrt_slave_write_alias(ec_slave_t *slave, uint16_t alias); // deprecated! |
|
166 |
|
167 int ecrt_slave_field_size(ec_slave_t *slave, const char *field_name, |
|
168 unsigned int field_index, size_t size); |
|
169 |
149 |
170 /****************************************************************************** |
150 /****************************************************************************** |
171 * Bitwise read/write macros |
151 * Bitwise read/write macros |
172 *****************************************************************************/ |
152 *****************************************************************************/ |
173 |
153 |