37 ec_slave_state_t; |
37 ec_slave_state_t; |
38 |
38 |
39 /*****************************************************************************/ |
39 /*****************************************************************************/ |
40 |
40 |
41 /** |
41 /** |
|
42 Unterstützte Mailbox-Protokolle. |
|
43 */ |
|
44 |
|
45 enum |
|
46 { |
|
47 EC_MBOX_AOE = 0x01, /**< ADS over EtherCAT */ |
|
48 EC_MBOX_EOE = 0x02, /**< Ethernet over EtherCAT */ |
|
49 EC_MBOX_COE = 0x04, /**< CANopen over EtherCAT */ |
|
50 EC_MBOX_FOE = 0x08, /**< File Service over EtherCAT */ |
|
51 EC_MBOX_SOE = 0x10, /**< Servo Profile over EtherCAT */ |
|
52 EC_MBOX_VOE = 0x20 /**< Vendor specific */ |
|
53 }; |
|
54 |
|
55 /*****************************************************************************/ |
|
56 |
|
57 /** |
42 FMMU-Konfiguration. |
58 FMMU-Konfiguration. |
43 */ |
59 */ |
44 |
60 |
45 typedef struct |
61 typedef struct |
46 { |
62 { |
152 uint16_t sii_alias; /**< Configured station alias */ |
168 uint16_t sii_alias; /**< Configured station alias */ |
153 uint32_t sii_vendor_id; /**< Identifikationsnummer des Herstellers */ |
169 uint32_t sii_vendor_id; /**< Identifikationsnummer des Herstellers */ |
154 uint32_t sii_product_code; /**< Herstellerspezifischer Produktcode */ |
170 uint32_t sii_product_code; /**< Herstellerspezifischer Produktcode */ |
155 uint32_t sii_revision_number; /**< Revisionsnummer */ |
171 uint32_t sii_revision_number; /**< Revisionsnummer */ |
156 uint32_t sii_serial_number; /**< Seriennummer der Klemme */ |
172 uint32_t sii_serial_number; /**< Seriennummer der Klemme */ |
|
173 uint32_t sii_mailbox_protocols; /**< Unterstützte Mailbox-Protokolle */ |
157 |
174 |
158 const ec_slave_type_t *type; /**< Zeiger auf die Beschreibung |
175 const ec_slave_type_t *type; /**< Zeiger auf die Beschreibung |
159 des Slave-Typs */ |
176 des Slave-Typs */ |
160 |
177 |
161 uint8_t registered; /**< Der Slave wurde registriert */ |
178 uint8_t registered; /**< Der Slave wurde registriert */ |
183 int ec_slave_sii_read(ec_slave_t *, uint16_t, uint32_t *); |
200 int ec_slave_sii_read(ec_slave_t *, uint16_t, uint32_t *); |
184 int ec_slave_sii_write(ec_slave_t *, uint16_t, uint16_t); |
201 int ec_slave_sii_write(ec_slave_t *, uint16_t, uint16_t); |
185 int ec_slave_state_change(ec_slave_t *, uint8_t); |
202 int ec_slave_state_change(ec_slave_t *, uint8_t); |
186 int ec_slave_set_fmmu(ec_slave_t *, const ec_domain_t *, const ec_sync_t *); |
203 int ec_slave_set_fmmu(ec_slave_t *, const ec_domain_t *, const ec_sync_t *); |
187 |
204 |
|
205 // Mailbox |
|
206 int ec_slave_mailbox_send(ec_slave_t *, uint8_t, const uint8_t *, size_t); |
|
207 int ec_slave_mailbox_receive(ec_slave_t *, uint8_t, uint8_t *, size_t *); |
|
208 |
|
209 // CANopen over EtherCAT |
|
210 int ec_slave_fetch_sdo_list(ec_slave_t *); |
|
211 |
188 // Misc |
212 // Misc |
189 void ec_slave_print(const ec_slave_t *); |
213 void ec_slave_print(const ec_slave_t *); |
190 int ec_slave_check_crc(ec_slave_t *); |
214 int ec_slave_check_crc(ec_slave_t *); |
191 |
215 |
192 /*****************************************************************************/ |
216 /*****************************************************************************/ |