master/fsm_pdo_entry.c
branchstable-1.5
changeset 2498 9cdd7669dc0b
parent 2434 fa52128477f6
child 2522 ec403cf308eb
equal deleted inserted replaced
2497:505cf41488a4 2498:9cdd7669dc0b
    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 /*****************************************************************************/