equal
deleted
inserted
replaced
181 |
181 |
182 ec_pdo_list_clear_pdos(&fsm->pdos); |
182 ec_pdo_list_clear_pdos(&fsm->pdos); |
183 |
183 |
184 ec_sdo_request_address(&fsm->request, fsm->sync_sdo_index, 0); |
184 ec_sdo_request_address(&fsm->request, fsm->sync_sdo_index, 0); |
185 ecrt_sdo_request_read(&fsm->request); |
185 ecrt_sdo_request_read(&fsm->request); |
|
186 fsm->retries = 5; |
186 fsm->state = ec_fsm_coe_map_state_pdo_count; |
187 fsm->state = ec_fsm_coe_map_state_pdo_count; |
187 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
188 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
188 ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately |
189 ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately |
189 return; |
190 return; |
190 } |
191 } |
207 ) |
208 ) |
208 { |
209 { |
209 if (ec_fsm_coe_exec(fsm->fsm_coe)) return; |
210 if (ec_fsm_coe_exec(fsm->fsm_coe)) return; |
210 |
211 |
211 if (!ec_fsm_coe_success(fsm->fsm_coe)) { |
212 if (!ec_fsm_coe_success(fsm->fsm_coe)) { |
|
213 if (fsm->retries--) { |
|
214 if (fsm->slave->master->debug_level) |
|
215 EC_DBG("Failed to read number of assigned Pdos from " |
|
216 "slave %u. Retrying...\n", fsm->slave->ring_position); |
|
217 ecrt_sdo_request_read(&fsm->request); |
|
218 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
|
219 ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately |
|
220 return; |
|
221 } |
212 EC_ERR("Failed to read number of assigned Pdos from slave %u.\n", |
222 EC_ERR("Failed to read number of assigned Pdos from slave %u.\n", |
213 fsm->slave->ring_position); |
223 fsm->slave->ring_position); |
214 fsm->state = ec_fsm_coe_map_state_error; |
224 fsm->state = ec_fsm_coe_map_state_error; |
215 return; |
225 return; |
216 } |
226 } |