40 |
40 |
41 #include "fsm_pdo_entry.h" |
41 #include "fsm_pdo_entry.h" |
42 |
42 |
43 /*****************************************************************************/ |
43 /*****************************************************************************/ |
44 |
44 |
45 void ec_fsm_pdo_entry_read_state_start(ec_fsm_pdo_entry_t *); |
45 void ec_fsm_pdo_entry_read_state_start(ec_fsm_pdo_entry_t *, ec_datagram_t *); |
46 void ec_fsm_pdo_entry_read_state_count(ec_fsm_pdo_entry_t *); |
46 void ec_fsm_pdo_entry_read_state_count(ec_fsm_pdo_entry_t *, ec_datagram_t *); |
47 void ec_fsm_pdo_entry_read_state_entry(ec_fsm_pdo_entry_t *); |
47 void ec_fsm_pdo_entry_read_state_entry(ec_fsm_pdo_entry_t *, ec_datagram_t *); |
48 |
48 |
49 void ec_fsm_pdo_entry_read_action_next(ec_fsm_pdo_entry_t *); |
49 void ec_fsm_pdo_entry_read_action_next(ec_fsm_pdo_entry_t *, ec_datagram_t *); |
50 |
50 |
51 void ec_fsm_pdo_entry_conf_state_start(ec_fsm_pdo_entry_t *); |
51 void ec_fsm_pdo_entry_conf_state_start(ec_fsm_pdo_entry_t *, ec_datagram_t *); |
52 void ec_fsm_pdo_entry_conf_state_zero_entry_count(ec_fsm_pdo_entry_t *); |
52 void ec_fsm_pdo_entry_conf_state_zero_entry_count(ec_fsm_pdo_entry_t *, |
53 void ec_fsm_pdo_entry_conf_state_map_entry(ec_fsm_pdo_entry_t *); |
53 ec_datagram_t *); |
54 void ec_fsm_pdo_entry_conf_state_set_entry_count(ec_fsm_pdo_entry_t *); |
54 void ec_fsm_pdo_entry_conf_state_map_entry(ec_fsm_pdo_entry_t *, |
55 |
55 ec_datagram_t *); |
56 void ec_fsm_pdo_entry_conf_action_map(ec_fsm_pdo_entry_t *); |
56 void ec_fsm_pdo_entry_conf_state_set_entry_count(ec_fsm_pdo_entry_t *, |
57 |
57 ec_datagram_t *); |
58 void ec_fsm_pdo_entry_state_end(ec_fsm_pdo_entry_t *); |
58 |
59 void ec_fsm_pdo_entry_state_error(ec_fsm_pdo_entry_t *); |
59 void ec_fsm_pdo_entry_conf_action_map(ec_fsm_pdo_entry_t *, ec_datagram_t *); |
|
60 |
|
61 void ec_fsm_pdo_entry_state_end(ec_fsm_pdo_entry_t *, ec_datagram_t *); |
|
62 void ec_fsm_pdo_entry_state_error(ec_fsm_pdo_entry_t *, ec_datagram_t *); |
60 |
63 |
61 /*****************************************************************************/ |
64 /*****************************************************************************/ |
62 |
65 |
63 /** Constructor. |
66 /** Constructor. |
64 */ |
67 */ |
85 /*****************************************************************************/ |
88 /*****************************************************************************/ |
86 |
89 |
87 /** Print the current and desired PDO mapping. |
90 /** Print the current and desired PDO mapping. |
88 */ |
91 */ |
89 void ec_fsm_pdo_entry_print( |
92 void ec_fsm_pdo_entry_print( |
90 ec_fsm_pdo_entry_t *fsm /**< PDO configuration state machine. */ |
93 ec_fsm_pdo_entry_t *fsm /**< PDO mapping state machine. */ |
91 ) |
94 ) |
92 { |
95 { |
93 printk("Currently mapped PDO entries: "); |
96 printk("Currently mapped PDO entries: "); |
94 ec_pdo_print_entries(fsm->cur_pdo); |
97 ec_pdo_print_entries(fsm->cur_pdo); |
95 printk(". Entries to map: "); |
98 printk(". Entries to map: "); |
101 |
104 |
102 /** Start reading a PDO's entries. |
105 /** Start reading a PDO's entries. |
103 */ |
106 */ |
104 void ec_fsm_pdo_entry_start_reading( |
107 void ec_fsm_pdo_entry_start_reading( |
105 ec_fsm_pdo_entry_t *fsm, /**< PDO mapping state machine. */ |
108 ec_fsm_pdo_entry_t *fsm, /**< PDO mapping state machine. */ |
106 ec_slave_t *slave, /**< slave to configure */ |
109 ec_slave_t *slave, /**< Slave to configure. */ |
107 ec_pdo_t *pdo /**< PDO to read entries for. */ |
110 ec_pdo_t *pdo /**< PDO to read entries for. */ |
108 ) |
111 ) |
109 { |
112 { |
110 fsm->slave = slave; |
113 fsm->slave = slave; |
111 fsm->target_pdo = pdo; |
114 fsm->target_pdo = pdo; |
119 |
122 |
120 /** Start PDO mapping state machine. |
123 /** Start PDO mapping state machine. |
121 */ |
124 */ |
122 void ec_fsm_pdo_entry_start_configuration( |
125 void ec_fsm_pdo_entry_start_configuration( |
123 ec_fsm_pdo_entry_t *fsm, /**< PDO mapping state machine. */ |
126 ec_fsm_pdo_entry_t *fsm, /**< PDO mapping state machine. */ |
124 ec_slave_t *slave, /**< slave to configure */ |
127 ec_slave_t *slave, /**< Slave to configure. */ |
125 const ec_pdo_t *pdo, /**< PDO with the desired entries. */ |
128 const ec_pdo_t *pdo, /**< PDO with the desired entries. */ |
126 const ec_pdo_t *cur_pdo /**< Current PDO mapping. */ |
129 const ec_pdo_t *cur_pdo /**< Current PDO mapping. */ |
127 ) |
130 ) |
128 { |
131 { |
129 fsm->slave = slave; |
132 fsm->slave = slave; |
158 /** Executes the current state. |
161 /** Executes the current state. |
159 * |
162 * |
160 * \return false, if state machine has terminated |
163 * \return false, if state machine has terminated |
161 */ |
164 */ |
162 int ec_fsm_pdo_entry_exec( |
165 int ec_fsm_pdo_entry_exec( |
163 ec_fsm_pdo_entry_t *fsm /**< PDO mapping state machine. */ |
166 ec_fsm_pdo_entry_t *fsm, /**< PDO mapping state machine. */ |
164 ) |
167 ec_datagram_t *datagram /**< Datagram to use. */ |
165 { |
168 ) |
166 fsm->state(fsm); |
169 { |
|
170 fsm->state(fsm, datagram); |
|
171 |
167 return ec_fsm_pdo_entry_running(fsm); |
172 return ec_fsm_pdo_entry_running(fsm); |
168 } |
173 } |
169 |
174 |
170 /*****************************************************************************/ |
175 /*****************************************************************************/ |
171 |
176 |
185 *****************************************************************************/ |
190 *****************************************************************************/ |
186 |
191 |
187 /** Request reading the number of mapped PDO entries. |
192 /** Request reading the number of mapped PDO entries. |
188 */ |
193 */ |
189 void ec_fsm_pdo_entry_read_state_start( |
194 void ec_fsm_pdo_entry_read_state_start( |
190 ec_fsm_pdo_entry_t *fsm /**< PDO mapping state machine. */ |
195 ec_fsm_pdo_entry_t *fsm, /**< PDO mapping state machine. */ |
|
196 ec_datagram_t *datagram /**< Datagram to use. */ |
191 ) |
197 ) |
192 { |
198 { |
193 ecrt_sdo_request_index(&fsm->request, fsm->target_pdo->index, 0); |
199 ecrt_sdo_request_index(&fsm->request, fsm->target_pdo->index, 0); |
194 ecrt_sdo_request_read(&fsm->request); |
200 ecrt_sdo_request_read(&fsm->request); |
195 |
201 |
196 fsm->state = ec_fsm_pdo_entry_read_state_count; |
202 fsm->state = ec_fsm_pdo_entry_read_state_count; |
197 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
203 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
198 ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately |
204 ec_fsm_coe_exec(fsm->fsm_coe, datagram); // execute immediately |
199 } |
205 } |
200 |
206 |
201 /*****************************************************************************/ |
207 /*****************************************************************************/ |
202 |
208 |
203 /** Read number of mapped PDO entries. |
209 /** Read number of mapped PDO entries. |
204 */ |
210 */ |
205 void ec_fsm_pdo_entry_read_state_count( |
211 void ec_fsm_pdo_entry_read_state_count( |
206 ec_fsm_pdo_entry_t *fsm /**< finite state machine */ |
212 ec_fsm_pdo_entry_t *fsm, /**< finite state machine */ |
207 ) |
213 ec_datagram_t *datagram /**< Datagram to use. */ |
208 { |
214 ) |
209 if (ec_fsm_coe_exec(fsm->fsm_coe)) |
215 { |
210 return; |
216 if (ec_fsm_coe_exec(fsm->fsm_coe, datagram)) { |
|
217 return; |
|
218 } |
211 |
219 |
212 if (!ec_fsm_coe_success(fsm->fsm_coe)) { |
220 if (!ec_fsm_coe_success(fsm->fsm_coe)) { |
213 EC_SLAVE_ERR(fsm->slave, |
221 EC_SLAVE_ERR(fsm->slave, |
214 "Failed to read number of mapped PDO entries.\n"); |
222 "Failed to read number of mapped PDO entries.\n"); |
215 fsm->state = ec_fsm_pdo_entry_state_error; |
223 fsm->state = ec_fsm_pdo_entry_state_error; |
229 |
237 |
230 EC_SLAVE_DBG(fsm->slave, 1, "%u PDO entries mapped.\n", fsm->entry_count); |
238 EC_SLAVE_DBG(fsm->slave, 1, "%u PDO entries mapped.\n", fsm->entry_count); |
231 |
239 |
232 // read first PDO entry |
240 // read first PDO entry |
233 fsm->entry_pos = 1; |
241 fsm->entry_pos = 1; |
234 ec_fsm_pdo_entry_read_action_next(fsm); |
242 ec_fsm_pdo_entry_read_action_next(fsm, datagram); |
235 } |
243 } |
236 |
244 |
237 /*****************************************************************************/ |
245 /*****************************************************************************/ |
238 |
246 |
239 /** Read next PDO entry. |
247 /** Read next PDO entry. |
240 */ |
248 */ |
241 void ec_fsm_pdo_entry_read_action_next( |
249 void ec_fsm_pdo_entry_read_action_next( |
242 ec_fsm_pdo_entry_t *fsm /**< finite state machine */ |
250 ec_fsm_pdo_entry_t *fsm, /**< finite state machine */ |
|
251 ec_datagram_t *datagram /**< Datagram to use. */ |
243 ) |
252 ) |
244 { |
253 { |
245 if (fsm->entry_pos <= fsm->entry_count) { |
254 if (fsm->entry_pos <= fsm->entry_count) { |
246 ecrt_sdo_request_index(&fsm->request, fsm->target_pdo->index, |
255 ecrt_sdo_request_index(&fsm->request, fsm->target_pdo->index, |
247 fsm->entry_pos); |
256 fsm->entry_pos); |
248 ecrt_sdo_request_read(&fsm->request); |
257 ecrt_sdo_request_read(&fsm->request); |
249 fsm->state = ec_fsm_pdo_entry_read_state_entry; |
258 fsm->state = ec_fsm_pdo_entry_read_state_entry; |
250 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
259 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
251 ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately |
260 ec_fsm_coe_exec(fsm->fsm_coe, datagram); // execute immediately |
252 return; |
261 return; |
253 } |
262 } |
254 |
263 |
255 // finished reading entries. |
264 // finished reading entries. |
256 fsm->state = ec_fsm_pdo_entry_state_end; |
265 fsm->state = ec_fsm_pdo_entry_state_end; |
259 /*****************************************************************************/ |
268 /*****************************************************************************/ |
260 |
269 |
261 /** Read PDO entry information. |
270 /** Read PDO entry information. |
262 */ |
271 */ |
263 void ec_fsm_pdo_entry_read_state_entry( |
272 void ec_fsm_pdo_entry_read_state_entry( |
264 ec_fsm_pdo_entry_t *fsm /**< finite state machine */ |
273 ec_fsm_pdo_entry_t *fsm, /**< finite state machine */ |
265 ) |
274 ec_datagram_t *datagram /**< Datagram to use. */ |
266 { |
275 ) |
267 if (ec_fsm_coe_exec(fsm->fsm_coe)) return; |
276 { |
|
277 if (ec_fsm_coe_exec(fsm->fsm_coe, datagram)) { |
|
278 return; |
|
279 } |
268 |
280 |
269 if (!ec_fsm_coe_success(fsm->fsm_coe)) { |
281 if (!ec_fsm_coe_success(fsm->fsm_coe)) { |
270 EC_SLAVE_ERR(fsm->slave, "Failed to read mapped PDO entry.\n"); |
282 EC_SLAVE_ERR(fsm->slave, "Failed to read mapped PDO entry.\n"); |
271 fsm->state = ec_fsm_pdo_entry_state_error; |
283 fsm->state = ec_fsm_pdo_entry_state_error; |
272 return; |
284 return; |
313 |
325 |
314 list_add_tail(&pdo_entry->list, &fsm->target_pdo->entries); |
326 list_add_tail(&pdo_entry->list, &fsm->target_pdo->entries); |
315 |
327 |
316 // next PDO entry |
328 // next PDO entry |
317 fsm->entry_pos++; |
329 fsm->entry_pos++; |
318 ec_fsm_pdo_entry_read_action_next(fsm); |
330 ec_fsm_pdo_entry_read_action_next(fsm, datagram); |
319 } |
331 } |
320 } |
332 } |
321 |
333 |
322 /****************************************************************************** |
334 /****************************************************************************** |
323 * Configuration state functions. |
335 * Configuration state functions. |
324 *****************************************************************************/ |
336 *****************************************************************************/ |
325 |
337 |
326 /** Start PDO mapping. |
338 /** Start PDO mapping. |
327 */ |
339 */ |
328 void ec_fsm_pdo_entry_conf_state_start( |
340 void ec_fsm_pdo_entry_conf_state_start( |
329 ec_fsm_pdo_entry_t *fsm /**< PDO mapping state machine. */ |
341 ec_fsm_pdo_entry_t *fsm, /**< PDO mapping state machine. */ |
|
342 ec_datagram_t *datagram /**< Datagram to use. */ |
330 ) |
343 ) |
331 { |
344 { |
332 if (ec_sdo_request_alloc(&fsm->request, 4)) { |
345 if (ec_sdo_request_alloc(&fsm->request, 4)) { |
333 fsm->state = ec_fsm_pdo_entry_state_error; |
346 fsm->state = ec_fsm_pdo_entry_state_error; |
334 return; |
347 return; |
342 |
355 |
343 EC_SLAVE_DBG(fsm->slave, 1, "Setting entry count to zero.\n"); |
356 EC_SLAVE_DBG(fsm->slave, 1, "Setting entry count to zero.\n"); |
344 |
357 |
345 fsm->state = ec_fsm_pdo_entry_conf_state_zero_entry_count; |
358 fsm->state = ec_fsm_pdo_entry_conf_state_zero_entry_count; |
346 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
359 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
347 ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately |
360 ec_fsm_coe_exec(fsm->fsm_coe, datagram); // execute immediately |
348 } |
361 } |
349 |
362 |
350 /*****************************************************************************/ |
363 /*****************************************************************************/ |
351 |
364 |
352 /** Process next PDO entry. |
365 /** Process next PDO entry. |
365 /*****************************************************************************/ |
378 /*****************************************************************************/ |
366 |
379 |
367 /** Set the number of mapped entries to zero. |
380 /** Set the number of mapped entries to zero. |
368 */ |
381 */ |
369 void ec_fsm_pdo_entry_conf_state_zero_entry_count( |
382 void ec_fsm_pdo_entry_conf_state_zero_entry_count( |
370 ec_fsm_pdo_entry_t *fsm /**< PDO mapping state machine. */ |
383 ec_fsm_pdo_entry_t *fsm, /**< PDO mapping state machine. */ |
371 ) |
384 ec_datagram_t *datagram /**< Datagram to use. */ |
372 { |
385 ) |
373 if (ec_fsm_coe_exec(fsm->fsm_coe)) |
386 { |
374 return; |
387 if (ec_fsm_coe_exec(fsm->fsm_coe, datagram)) { |
|
388 return; |
|
389 } |
375 |
390 |
376 if (!ec_fsm_coe_success(fsm->fsm_coe)) { |
391 if (!ec_fsm_coe_success(fsm->fsm_coe)) { |
377 EC_SLAVE_WARN(fsm->slave, "Failed to clear PDO mapping.\n"); |
392 EC_SLAVE_WARN(fsm->slave, "Failed to clear PDO mapping.\n"); |
378 EC_SLAVE_WARN(fsm->slave, ""); ec_fsm_pdo_entry_print(fsm); |
393 EC_SLAVE_WARN(fsm->slave, ""); ec_fsm_pdo_entry_print(fsm); |
379 fsm->state = ec_fsm_pdo_entry_state_error; |
394 fsm->state = ec_fsm_pdo_entry_state_error; |
390 return; |
405 return; |
391 } |
406 } |
392 |
407 |
393 // add first entry |
408 // add first entry |
394 fsm->entry_pos = 1; |
409 fsm->entry_pos = 1; |
395 ec_fsm_pdo_entry_conf_action_map(fsm); |
410 ec_fsm_pdo_entry_conf_action_map(fsm, datagram); |
396 } |
411 } |
397 |
412 |
398 /*****************************************************************************/ |
413 /*****************************************************************************/ |
399 |
414 |
400 /** Starts to add a PDO entry. |
415 /** Starts to add a PDO entry. |
401 */ |
416 */ |
402 void ec_fsm_pdo_entry_conf_action_map( |
417 void ec_fsm_pdo_entry_conf_action_map( |
403 ec_fsm_pdo_entry_t *fsm /**< PDO mapping state machine. */ |
418 ec_fsm_pdo_entry_t *fsm, /**< PDO mapping state machine. */ |
|
419 ec_datagram_t *datagram /**< Datagram to use. */ |
404 ) |
420 ) |
405 { |
421 { |
406 uint32_t value; |
422 uint32_t value; |
407 |
423 |
408 EC_SLAVE_DBG(fsm->slave, 1, "Mapping PDO entry 0x%04X:%02X (%u bit)" |
424 EC_SLAVE_DBG(fsm->slave, 1, "Mapping PDO entry 0x%04X:%02X (%u bit)" |
418 fsm->entry_pos); |
434 fsm->entry_pos); |
419 ecrt_sdo_request_write(&fsm->request); |
435 ecrt_sdo_request_write(&fsm->request); |
420 |
436 |
421 fsm->state = ec_fsm_pdo_entry_conf_state_map_entry; |
437 fsm->state = ec_fsm_pdo_entry_conf_state_map_entry; |
422 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
438 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
423 ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately |
439 ec_fsm_coe_exec(fsm->fsm_coe, datagram); // execute immediately |
424 } |
440 } |
425 |
441 |
426 /*****************************************************************************/ |
442 /*****************************************************************************/ |
427 |
443 |
428 /** Add a PDO entry. |
444 /** Add a PDO entry. |
429 */ |
445 */ |
430 void ec_fsm_pdo_entry_conf_state_map_entry( |
446 void ec_fsm_pdo_entry_conf_state_map_entry( |
431 ec_fsm_pdo_entry_t *fsm /**< PDO mapping state machine. */ |
447 ec_fsm_pdo_entry_t *fsm, /**< PDO mapping state machine. */ |
432 ) |
448 ec_datagram_t *datagram /**< Datagram to use. */ |
433 { |
449 ) |
434 if (ec_fsm_coe_exec(fsm->fsm_coe)) return; |
450 { |
|
451 if (ec_fsm_coe_exec(fsm->fsm_coe, datagram)) { |
|
452 return; |
|
453 } |
435 |
454 |
436 if (!ec_fsm_coe_success(fsm->fsm_coe)) { |
455 if (!ec_fsm_coe_success(fsm->fsm_coe)) { |
437 EC_SLAVE_WARN(fsm->slave, "Failed to map PDO entry" |
456 EC_SLAVE_WARN(fsm->slave, "Failed to map PDO entry" |
438 " 0x%04X:%02X (%u bit) to position %u.\n", |
457 " 0x%04X:%02X (%u bit) to position %u.\n", |
439 fsm->entry->index, fsm->entry->subindex, |
458 fsm->entry->index, fsm->entry->subindex, |
456 EC_SLAVE_DBG(fsm->slave, 1, "Setting number of PDO entries to %u.\n", |
475 EC_SLAVE_DBG(fsm->slave, 1, "Setting number of PDO entries to %u.\n", |
457 fsm->entry_pos); |
476 fsm->entry_pos); |
458 |
477 |
459 fsm->state = ec_fsm_pdo_entry_conf_state_set_entry_count; |
478 fsm->state = ec_fsm_pdo_entry_conf_state_set_entry_count; |
460 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
479 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
461 ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately |
480 ec_fsm_coe_exec(fsm->fsm_coe, datagram); // execute immediately |
462 return; |
481 return; |
463 } |
482 } |
464 |
483 |
465 // add next entry |
484 // add next entry |
466 fsm->entry_pos++; |
485 fsm->entry_pos++; |
467 ec_fsm_pdo_entry_conf_action_map(fsm); |
486 ec_fsm_pdo_entry_conf_action_map(fsm, datagram); |
468 } |
487 } |
469 |
488 |
470 /*****************************************************************************/ |
489 /*****************************************************************************/ |
471 |
490 |
472 /** Set the number of entries. |
491 /** Set the number of entries. |
473 */ |
492 */ |
474 void ec_fsm_pdo_entry_conf_state_set_entry_count( |
493 void ec_fsm_pdo_entry_conf_state_set_entry_count( |
475 ec_fsm_pdo_entry_t *fsm /**< PDO mapping state machine. */ |
494 ec_fsm_pdo_entry_t *fsm, /**< PDO mapping state machine. */ |
476 ) |
495 ec_datagram_t *datagram /**< Datagram to use. */ |
477 { |
496 ) |
478 if (ec_fsm_coe_exec(fsm->fsm_coe)) return; |
497 { |
|
498 if (ec_fsm_coe_exec(fsm->fsm_coe, datagram)) { |
|
499 return; |
|
500 } |
479 |
501 |
480 if (!ec_fsm_coe_success(fsm->fsm_coe)) { |
502 if (!ec_fsm_coe_success(fsm->fsm_coe)) { |
481 EC_SLAVE_WARN(fsm->slave, "Failed to set number of entries.\n"); |
503 EC_SLAVE_WARN(fsm->slave, "Failed to set number of entries.\n"); |
482 EC_SLAVE_WARN(fsm->slave, ""); ec_fsm_pdo_entry_print(fsm); |
504 EC_SLAVE_WARN(fsm->slave, ""); ec_fsm_pdo_entry_print(fsm); |
483 fsm->state = ec_fsm_pdo_entry_state_error; |
505 fsm->state = ec_fsm_pdo_entry_state_error; |
495 *****************************************************************************/ |
517 *****************************************************************************/ |
496 |
518 |
497 /** State: ERROR. |
519 /** State: ERROR. |
498 */ |
520 */ |
499 void ec_fsm_pdo_entry_state_error( |
521 void ec_fsm_pdo_entry_state_error( |
500 ec_fsm_pdo_entry_t *fsm /**< PDO mapping state machine. */ |
522 ec_fsm_pdo_entry_t *fsm, /**< PDO mapping state machine. */ |
|
523 ec_datagram_t *datagram /**< Datagram to use. */ |
501 ) |
524 ) |
502 { |
525 { |
503 } |
526 } |
504 |
527 |
505 /*****************************************************************************/ |
528 /*****************************************************************************/ |
506 |
529 |
507 /** State: END. |
530 /** State: END. |
508 */ |
531 */ |
509 void ec_fsm_pdo_entry_state_end( |
532 void ec_fsm_pdo_entry_state_end( |
510 ec_fsm_pdo_entry_t *fsm /**< PDO mapping state machine. */ |
533 ec_fsm_pdo_entry_t *fsm, /**< PDO mapping state machine. */ |
511 ) |
534 ec_datagram_t *datagram /**< Datagram to use. */ |
512 { |
535 ) |
513 } |
536 { |
514 |
537 } |
515 /*****************************************************************************/ |
538 |
|
539 /*****************************************************************************/ |