equal
deleted
inserted
replaced
150 fsm->state = ec_fsm_pdo_assign_state_end; |
150 fsm->state = ec_fsm_pdo_assign_state_end; |
151 return; |
151 return; |
152 } |
152 } |
153 |
153 |
154 fsm->dir = (ec_direction_t) -1; // next is EC_DIR_OUTPUT |
154 fsm->dir = (ec_direction_t) -1; // next is EC_DIR_OUTPUT |
|
155 fsm->num_configured_dirs = 0; |
155 ec_fsm_pdo_assign_next_dir(fsm); |
156 ec_fsm_pdo_assign_next_dir(fsm); |
156 } |
157 } |
157 |
158 |
158 /*****************************************************************************/ |
159 /*****************************************************************************/ |
159 |
160 |
189 fsm->slave->ring_position); |
190 fsm->slave->ring_position); |
190 fsm->state = ec_fsm_pdo_assign_state_error; |
191 fsm->state = ec_fsm_pdo_assign_state_error; |
191 return; |
192 return; |
192 } |
193 } |
193 |
194 |
|
195 fsm->num_configured_dirs++; |
|
196 |
194 if (fsm->slave->master->debug_level) { |
197 if (fsm->slave->master->debug_level) { |
195 EC_DBG("Changing Pdo assignment for SM%u of slave %u.\n", |
198 EC_DBG("Changing Pdo assignment for SM%u of slave %u.\n", |
196 fsm->sync->index, fsm->slave->ring_position); |
199 fsm->sync->index, fsm->slave->ring_position); |
197 } |
200 } |
198 |
201 |
213 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
216 ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request); |
214 ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately |
217 ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately |
215 return; |
218 return; |
216 } |
219 } |
217 |
220 |
218 if (fsm->slave->master->debug_level) |
221 if (fsm->slave->master->debug_level && !fsm->num_configured_dirs) |
219 EC_DBG("Pdo assignment finished for slave %u.\n", |
222 EC_DBG("Pdo assignments of slave %u are already configured" |
220 fsm->slave->ring_position); |
223 " correctly.\n", fsm->slave->ring_position); |
221 fsm->state = ec_fsm_pdo_assign_state_end; |
224 fsm->state = ec_fsm_pdo_assign_state_end; |
222 } |
225 } |
223 |
226 |
224 /*****************************************************************************/ |
227 /*****************************************************************************/ |
225 |
228 |
346 fsm->state = ec_fsm_pdo_assign_state_error; |
349 fsm->state = ec_fsm_pdo_assign_state_error; |
347 return; |
350 return; |
348 } |
351 } |
349 |
352 |
350 if (fsm->slave->master->debug_level) |
353 if (fsm->slave->master->debug_level) |
351 EC_DBG("Successfully set Pdo assignment for SM%u of slave %u.\n", |
354 EC_DBG("Successfully configured Pdo assignment for SM%u of" |
352 fsm->sync->index, fsm->slave->ring_position); |
355 " slave %u.\n", fsm->sync->index, fsm->slave->ring_position); |
353 |
356 |
354 // assignment for this direction finished |
357 // assignment for this direction finished |
355 ec_fsm_pdo_assign_next_dir(fsm); |
358 ec_fsm_pdo_assign_next_dir(fsm); |
356 } |
359 } |
357 |
360 |