diff -r 505cf41488a4 -r 9cdd7669dc0b master/fsm_pdo.c --- a/master/fsm_pdo.c Thu Jan 10 12:34:58 2013 +0100 +++ b/master/fsm_pdo.c Thu Jan 10 17:36:41 2013 +0100 @@ -27,8 +27,7 @@ * *****************************************************************************/ -/** \file - * EtherCAT PDO configuration state machine. +/** \file EtherCAT PDO configuration state machine. */ /*****************************************************************************/ @@ -42,30 +41,30 @@ /*****************************************************************************/ -void ec_fsm_pdo_read_state_start(ec_fsm_pdo_t *); -void ec_fsm_pdo_read_state_pdo_count(ec_fsm_pdo_t *); -void ec_fsm_pdo_read_state_pdo(ec_fsm_pdo_t *); -void ec_fsm_pdo_read_state_pdo_entries(ec_fsm_pdo_t *); - -void ec_fsm_pdo_read_action_next_sync(ec_fsm_pdo_t *); -void ec_fsm_pdo_read_action_next_pdo(ec_fsm_pdo_t *); - -void ec_fsm_pdo_conf_state_start(ec_fsm_pdo_t *); -void ec_fsm_pdo_conf_state_read_mapping(ec_fsm_pdo_t *); -void ec_fsm_pdo_conf_state_mapping(ec_fsm_pdo_t *); -void ec_fsm_pdo_conf_state_zero_pdo_count(ec_fsm_pdo_t *); -void ec_fsm_pdo_conf_state_assign_pdo(ec_fsm_pdo_t *); -void ec_fsm_pdo_conf_state_set_pdo_count(ec_fsm_pdo_t *); - -void ec_fsm_pdo_conf_action_next_sync(ec_fsm_pdo_t *); -void ec_fsm_pdo_conf_action_pdo_mapping(ec_fsm_pdo_t *); -void ec_fsm_pdo_conf_action_check_mapping(ec_fsm_pdo_t *); -void ec_fsm_pdo_conf_action_next_pdo_mapping(ec_fsm_pdo_t *); -void ec_fsm_pdo_conf_action_check_assignment(ec_fsm_pdo_t *); -void ec_fsm_pdo_conf_action_assign_pdo(ec_fsm_pdo_t *); - -void ec_fsm_pdo_state_end(ec_fsm_pdo_t *); -void ec_fsm_pdo_state_error(ec_fsm_pdo_t *); +void ec_fsm_pdo_read_state_start(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_read_state_pdo_count(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_read_state_pdo(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_read_state_pdo_entries(ec_fsm_pdo_t *, ec_datagram_t *); + +void ec_fsm_pdo_read_action_next_sync(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_read_action_next_pdo(ec_fsm_pdo_t *, ec_datagram_t *); + +void ec_fsm_pdo_conf_state_start(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_conf_state_read_mapping(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_conf_state_mapping(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_conf_state_zero_pdo_count(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_conf_state_assign_pdo(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_conf_state_set_pdo_count(ec_fsm_pdo_t *, ec_datagram_t *); + +void ec_fsm_pdo_conf_action_next_sync(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_conf_action_pdo_mapping(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_conf_action_check_mapping(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_conf_action_next_pdo_mapping(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_conf_action_check_assignment(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_conf_action_assign_pdo(ec_fsm_pdo_t *, ec_datagram_t *); + +void ec_fsm_pdo_state_end(ec_fsm_pdo_t *, ec_datagram_t *); +void ec_fsm_pdo_state_error(ec_fsm_pdo_t *, ec_datagram_t *); /*****************************************************************************/ @@ -162,10 +161,12 @@ * \return false, if state machine has terminated */ int ec_fsm_pdo_exec( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ - ) -{ - fsm->state(fsm); + ec_fsm_pdo_t *fsm, /**< PDO configuration state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ + ) +{ + fsm->state(fsm, datagram); + return ec_fsm_pdo_running(fsm); } @@ -189,12 +190,13 @@ /** Start reading PDO assignment. */ void ec_fsm_pdo_read_state_start( - ec_fsm_pdo_t *fsm /**< finite state machine */ + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ ) { // read PDO assignment for first sync manager not reserved for mailbox fsm->sync_index = 1; // next is 2 - ec_fsm_pdo_read_action_next_sync(fsm); + ec_fsm_pdo_read_action_next_sync(fsm, datagram); } /*****************************************************************************/ @@ -202,7 +204,8 @@ /** Read PDO assignment of next sync manager. */ void ec_fsm_pdo_read_action_next_sync( - ec_fsm_pdo_t *fsm /**< Finite state machine */ + ec_fsm_pdo_t *fsm, /**< finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ ) { ec_slave_t *slave = fsm->slave; @@ -222,7 +225,7 @@ ecrt_sdo_request_read(&fsm->request); fsm->state = ec_fsm_pdo_read_state_pdo_count; ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); - ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately + ec_fsm_coe_exec(fsm->fsm_coe, datagram); // execute immediately return; } @@ -237,15 +240,18 @@ /** Count assigned PDOs. */ void ec_fsm_pdo_read_state_pdo_count( - ec_fsm_pdo_t *fsm /**< finite state machine */ - ) -{ - if (ec_fsm_coe_exec(fsm->fsm_coe)) return; + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ + ) +{ + if (ec_fsm_coe_exec(fsm->fsm_coe, datagram)) { + return; + } if (!ec_fsm_coe_success(fsm->fsm_coe)) { EC_SLAVE_ERR(fsm->slave, "Failed to read number of assigned PDOs" " for SM%u.\n", fsm->sync_index); - ec_fsm_pdo_read_action_next_sync(fsm); + ec_fsm_pdo_read_action_next_sync(fsm, datagram); return; } @@ -253,7 +259,7 @@ EC_SLAVE_ERR(fsm->slave, "Invalid data size %zu returned" " when uploading SDO 0x%04X:%02X.\n", fsm->request.data_size, fsm->request.index, fsm->request.subindex); - ec_fsm_pdo_read_action_next_sync(fsm); + ec_fsm_pdo_read_action_next_sync(fsm, datagram); return; } fsm->pdo_count = EC_READ_U8(fsm->request.data); @@ -262,7 +268,7 @@ // read first PDO fsm->pdo_pos = 1; - ec_fsm_pdo_read_action_next_pdo(fsm); + ec_fsm_pdo_read_action_next_pdo(fsm, datagram); } /*****************************************************************************/ @@ -270,7 +276,8 @@ /** Read next PDO. */ void ec_fsm_pdo_read_action_next_pdo( - ec_fsm_pdo_t *fsm /**< finite state machine */ + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ ) { if (fsm->pdo_pos <= fsm->pdo_count) { @@ -279,7 +286,7 @@ ecrt_sdo_request_read(&fsm->request); fsm->state = ec_fsm_pdo_read_state_pdo; ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); - ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately + ec_fsm_coe_exec(fsm->fsm_coe, datagram); // execute immediately return; } @@ -289,7 +296,7 @@ ec_pdo_list_clear_pdos(&fsm->pdos); // next sync manager - ec_fsm_pdo_read_action_next_sync(fsm); + ec_fsm_pdo_read_action_next_sync(fsm, datagram); } /*****************************************************************************/ @@ -297,16 +304,19 @@ /** Fetch PDO information. */ void ec_fsm_pdo_read_state_pdo( - ec_fsm_pdo_t *fsm /**< finite state machine */ - ) -{ - if (ec_fsm_coe_exec(fsm->fsm_coe)) return; + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ + ) +{ + if (ec_fsm_coe_exec(fsm->fsm_coe, datagram)) { + return; + } if (!ec_fsm_coe_success(fsm->fsm_coe)) { EC_SLAVE_ERR(fsm->slave, "Failed to read index of" " assigned PDO %u from SM%u.\n", fsm->pdo_pos, fsm->sync_index); - ec_fsm_pdo_read_action_next_sync(fsm); + ec_fsm_pdo_read_action_next_sync(fsm, datagram); return; } @@ -314,14 +324,14 @@ EC_SLAVE_ERR(fsm->slave, "Invalid data size %zu returned" " when uploading SDO 0x%04X:%02X.\n", fsm->request.data_size, fsm->request.index, fsm->request.subindex); - ec_fsm_pdo_read_action_next_sync(fsm); + ec_fsm_pdo_read_action_next_sync(fsm, datagram); return; } if (!(fsm->pdo = (ec_pdo_t *) kmalloc(sizeof(ec_pdo_t), GFP_KERNEL))) { EC_SLAVE_ERR(fsm->slave, "Failed to allocate PDO.\n"); - ec_fsm_pdo_read_action_next_sync(fsm); + ec_fsm_pdo_read_action_next_sync(fsm, datagram); return; } @@ -335,7 +345,7 @@ fsm->state = ec_fsm_pdo_read_state_pdo_entries; ec_fsm_pdo_entry_start_reading(&fsm->fsm_pdo_entry, fsm->slave, fsm->pdo); - fsm->state(fsm); // execute immediately + fsm->state(fsm, datagram); // execute immediately } /*****************************************************************************/ @@ -343,22 +353,24 @@ /** Fetch PDO information. */ void ec_fsm_pdo_read_state_pdo_entries( - ec_fsm_pdo_t *fsm /**< finite state machine */ - ) -{ - if (ec_fsm_pdo_entry_exec(&fsm->fsm_pdo_entry)) - return; + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ + ) +{ + if (ec_fsm_pdo_entry_exec(&fsm->fsm_pdo_entry, datagram)) { + return; + } if (!ec_fsm_pdo_entry_success(&fsm->fsm_pdo_entry)) { EC_SLAVE_ERR(fsm->slave, "Failed to read mapped PDO entries" " for PDO 0x%04X.\n", fsm->pdo->index); - ec_fsm_pdo_read_action_next_sync(fsm); + ec_fsm_pdo_read_action_next_sync(fsm, datagram); return; } // next PDO fsm->pdo_pos++; - ec_fsm_pdo_read_action_next_pdo(fsm); + ec_fsm_pdo_read_action_next_pdo(fsm, datagram); } /****************************************************************************** @@ -368,7 +380,8 @@ /** Start PDO configuration. */ void ec_fsm_pdo_conf_state_start( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ ) { if (!fsm->slave->config) { @@ -377,7 +390,7 @@ } fsm->sync_index = 1; // next is 2 - ec_fsm_pdo_conf_action_next_sync(fsm); + ec_fsm_pdo_conf_action_next_sync(fsm, datagram); } /*****************************************************************************/ @@ -400,7 +413,8 @@ /** Get the next sync manager for a pdo configuration. */ void ec_fsm_pdo_conf_action_next_sync( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ ) { fsm->sync_index++; @@ -432,11 +446,11 @@ if (!(fsm->pdo = ec_fsm_pdo_conf_action_next_pdo(fsm, &fsm->pdos.list))) { // no pdos configured - ec_fsm_pdo_conf_action_check_assignment(fsm); + ec_fsm_pdo_conf_action_check_assignment(fsm, datagram); return; } - ec_fsm_pdo_conf_action_pdo_mapping(fsm); + ec_fsm_pdo_conf_action_pdo_mapping(fsm, datagram); return; } @@ -448,7 +462,8 @@ /** Check if the mapping has to be read, otherwise start to configure it. */ void ec_fsm_pdo_conf_action_pdo_mapping( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ ) { const ec_pdo_t *assigned_pdo; @@ -469,12 +484,12 @@ ec_fsm_pdo_entry_start_reading(&fsm->fsm_pdo_entry, fsm->slave, &fsm->slave_pdo); fsm->state = ec_fsm_pdo_conf_state_read_mapping; - fsm->state(fsm); // execute immediately + fsm->state(fsm, datagram); // execute immediately return; } // pdo mapping is known, check if it most be re-configured - ec_fsm_pdo_conf_action_check_mapping(fsm); + ec_fsm_pdo_conf_action_check_mapping(fsm, datagram); } /*****************************************************************************/ @@ -482,11 +497,13 @@ /** Execute the PDO entry state machine to read the current PDO's mapping. */ void ec_fsm_pdo_conf_state_read_mapping( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ - ) -{ - if (ec_fsm_pdo_entry_exec(&fsm->fsm_pdo_entry)) - return; + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ + ) +{ + if (ec_fsm_pdo_entry_exec(&fsm->fsm_pdo_entry, datagram)) { + return; + } if (!ec_fsm_pdo_entry_success(&fsm->fsm_pdo_entry)) EC_SLAVE_WARN(fsm->slave, @@ -494,7 +511,7 @@ fsm->pdo->index); // check if the mapping must be re-configured - ec_fsm_pdo_conf_action_check_mapping(fsm); + ec_fsm_pdo_conf_action_check_mapping(fsm, datagram); } /*****************************************************************************/ @@ -504,7 +521,8 @@ * \todo Display mapping differences. */ void ec_fsm_pdo_conf_action_check_mapping( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ ) { // check, if slave supports PDO configuration @@ -516,7 +534,7 @@ ec_fsm_pdo_entry_start_configuration(&fsm->fsm_pdo_entry, fsm->slave, fsm->pdo, &fsm->slave_pdo); fsm->state = ec_fsm_pdo_conf_state_mapping; - fsm->state(fsm); // execure immediately + fsm->state(fsm, datagram); // execure immediately return; } else if (!ec_pdo_equal_entries(fsm->pdo, &fsm->slave_pdo)) { @@ -530,7 +548,7 @@ printk("\n"); } - ec_fsm_pdo_conf_action_next_pdo_mapping(fsm); + ec_fsm_pdo_conf_action_next_pdo_mapping(fsm, datagram); } /*****************************************************************************/ @@ -538,18 +556,20 @@ /** Let the PDO entry state machine configure the current PDO's mapping. */ void ec_fsm_pdo_conf_state_mapping( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ - ) -{ - if (ec_fsm_pdo_entry_exec(&fsm->fsm_pdo_entry)) - return; + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ + ) +{ + if (ec_fsm_pdo_entry_exec(&fsm->fsm_pdo_entry, datagram)) { + return; + } if (!ec_fsm_pdo_entry_success(&fsm->fsm_pdo_entry)) EC_SLAVE_WARN(fsm->slave, "Failed to configure mapping of PDO 0x%04X.\n", fsm->pdo->index); - ec_fsm_pdo_conf_action_next_pdo_mapping(fsm); + ec_fsm_pdo_conf_action_next_pdo_mapping(fsm, datagram); } /*****************************************************************************/ @@ -557,17 +577,18 @@ /** Check mapping of next PDO, otherwise configure assignment. */ void ec_fsm_pdo_conf_action_next_pdo_mapping( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ ) { // get next configured PDO if (!(fsm->pdo = ec_fsm_pdo_conf_action_next_pdo(fsm, &fsm->pdo->list))) { // no more configured pdos - ec_fsm_pdo_conf_action_check_assignment(fsm); - return; - } - - ec_fsm_pdo_conf_action_pdo_mapping(fsm); + ec_fsm_pdo_conf_action_check_assignment(fsm, datagram); + return; + } + + ec_fsm_pdo_conf_action_pdo_mapping(fsm, datagram); } /*****************************************************************************/ @@ -575,7 +596,8 @@ /** Check if the PDO assignment of the current SM has to be re-configured. */ void ec_fsm_pdo_conf_action_check_assignment( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ ) { if ((fsm->slave->sii.mailbox_protocols & EC_MBOX_COE) @@ -605,7 +627,7 @@ fsm->state = ec_fsm_pdo_conf_state_zero_pdo_count; ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); - ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately + ec_fsm_coe_exec(fsm->fsm_coe, datagram); // execute immediately return; } else if (!ec_pdo_list_equal(&fsm->sync->pdos, &fsm->pdos)) { @@ -613,7 +635,7 @@ EC_SLAVE_WARN(fsm->slave, ""); ec_fsm_pdo_print(fsm); } - ec_fsm_pdo_conf_action_next_sync(fsm); + ec_fsm_pdo_conf_action_next_sync(fsm, datagram); } /*****************************************************************************/ @@ -621,17 +643,20 @@ /** Set the number of assigned PDOs to zero. */ void ec_fsm_pdo_conf_state_zero_pdo_count( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ - ) -{ - if (ec_fsm_coe_exec(fsm->fsm_coe)) - return; + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ + ) +{ + if (ec_fsm_coe_exec(fsm->fsm_coe, datagram)) { + return; + } if (!ec_fsm_coe_success(fsm->fsm_coe)) { EC_SLAVE_WARN(fsm->slave, "Failed to clear PDO assignment of SM%u.\n", fsm->sync_index); - EC_SLAVE_WARN(fsm->slave, ""); ec_fsm_pdo_print(fsm); - ec_fsm_pdo_conf_action_next_sync(fsm); + EC_SLAVE_WARN(fsm->slave, ""); + ec_fsm_pdo_print(fsm); + ec_fsm_pdo_conf_action_next_sync(fsm, datagram); return; } @@ -642,15 +667,14 @@ // find first PDO if (!(fsm->pdo = ec_fsm_pdo_conf_action_next_pdo(fsm, &fsm->pdos.list))) { - // check for mapping to be altered - ec_fsm_pdo_conf_action_next_sync(fsm); + ec_fsm_pdo_conf_action_next_sync(fsm, datagram); return; } // assign first PDO fsm->pdo_pos = 1; - ec_fsm_pdo_conf_action_assign_pdo(fsm); + ec_fsm_pdo_conf_action_assign_pdo(fsm, datagram); } /*****************************************************************************/ @@ -658,7 +682,8 @@ /** Assign a PDO. */ void ec_fsm_pdo_conf_action_assign_pdo( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ ) { EC_WRITE_U16(fsm->request.data, fsm->pdo->index); @@ -672,7 +697,7 @@ fsm->state = ec_fsm_pdo_conf_state_assign_pdo; ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); - ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately + ec_fsm_coe_exec(fsm->fsm_coe, datagram); // execute immediately } /*****************************************************************************/ @@ -680,10 +705,13 @@ /** Add a PDO to the sync managers PDO assignment. */ void ec_fsm_pdo_conf_state_assign_pdo( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ - ) -{ - if (ec_fsm_coe_exec(fsm->fsm_coe)) return; + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ + ) +{ + if (ec_fsm_coe_exec(fsm->fsm_coe, datagram)) { + return; + } if (!ec_fsm_coe_success(fsm->fsm_coe)) { EC_SLAVE_WARN(fsm->slave, "Failed to assign PDO 0x%04X at position %u" @@ -696,7 +724,6 @@ // find next PDO if (!(fsm->pdo = ec_fsm_pdo_conf_action_next_pdo(fsm, &fsm->pdo->list))) { - // no more PDOs to assign, set PDO count EC_WRITE_U8(fsm->request.data, fsm->pdo_pos); fsm->request.data_size = 1; @@ -709,13 +736,13 @@ fsm->state = ec_fsm_pdo_conf_state_set_pdo_count; ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); - ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately + ec_fsm_coe_exec(fsm->fsm_coe, datagram); // execute immediately return; } // add next PDO to assignment fsm->pdo_pos++; - ec_fsm_pdo_conf_action_assign_pdo(fsm); + ec_fsm_pdo_conf_action_assign_pdo(fsm, datagram); } /*****************************************************************************/ @@ -723,10 +750,13 @@ /** Set the number of assigned PDOs. */ void ec_fsm_pdo_conf_state_set_pdo_count( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ - ) -{ - if (ec_fsm_coe_exec(fsm->fsm_coe)) return; + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ + ) +{ + if (ec_fsm_coe_exec(fsm->fsm_coe, datagram)) { + return; + } if (!ec_fsm_coe_success(fsm->fsm_coe)) { EC_SLAVE_WARN(fsm->slave, "Failed to set number of" @@ -743,7 +773,7 @@ " PDO assignment of SM%u.\n", fsm->sync_index); // check if PDO mapping has to be altered - ec_fsm_pdo_conf_action_next_sync(fsm); + ec_fsm_pdo_conf_action_next_sync(fsm, datagram); } /****************************************************************************** @@ -753,7 +783,8 @@ /** State: ERROR. */ void ec_fsm_pdo_state_error( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ ) { } @@ -763,9 +794,10 @@ /** State: END. */ void ec_fsm_pdo_state_end( - ec_fsm_pdo_t *fsm /**< PDO configuration state machine. */ - ) -{ -} - -/*****************************************************************************/ + ec_fsm_pdo_t *fsm, /**< Finite state machine. */ + ec_datagram_t *datagram /**< Datagram to use. */ + ) +{ +} + +/*****************************************************************************/