equal
deleted
inserted
replaced
201 // Start SDO transfer |
201 // Start SDO transfer |
202 fsm->sdo_request = &request->req; |
202 fsm->sdo_request = &request->req; |
203 fsm->state = ec_fsm_slave_state_sdo_request; |
203 fsm->state = ec_fsm_slave_state_sdo_request; |
204 ec_fsm_coe_transfer(&fsm->fsm_coe, slave, &request->req); |
204 ec_fsm_coe_transfer(&fsm->fsm_coe, slave, &request->req); |
205 ec_fsm_coe_exec(&fsm->fsm_coe); // execute immediately |
205 ec_fsm_coe_exec(&fsm->fsm_coe); // execute immediately |
206 ec_master_queue_external_datagram(fsm->slave->master,fsm->datagram); |
206 ec_master_queue_external_datagram(fsm->slave->master, fsm->datagram); |
207 return 1; |
207 return 1; |
208 } |
208 } |
209 return 0; |
209 return 0; |
210 } |
210 } |
211 |
211 |
218 ) |
218 ) |
219 { |
219 { |
220 ec_slave_t *slave = fsm->slave; |
220 ec_slave_t *slave = fsm->slave; |
221 ec_sdo_request_t *request = fsm->sdo_request; |
221 ec_sdo_request_t *request = fsm->sdo_request; |
222 |
222 |
223 if (ec_fsm_coe_exec(&fsm->fsm_coe)) |
223 if (ec_fsm_coe_exec(&fsm->fsm_coe)) { |
224 { |
224 ec_master_queue_external_datagram(fsm->slave->master, fsm->datagram); |
225 ec_master_queue_external_datagram(fsm->slave->master,fsm->datagram); |
|
226 return; |
225 return; |
227 } |
226 } |
228 if (!ec_fsm_coe_success(&fsm->fsm_coe)) { |
227 if (!ec_fsm_coe_success(&fsm->fsm_coe)) { |
229 EC_SLAVE_ERR(slave, "Failed to process SDO request.\n"); |
228 EC_SLAVE_ERR(slave, "Failed to process SDO request.\n"); |
230 request->state = EC_INT_REQUEST_FAILURE; |
229 request->state = EC_INT_REQUEST_FAILURE; |
275 |
274 |
276 fsm->foe_request = &request->req; |
275 fsm->foe_request = &request->req; |
277 fsm->state = ec_fsm_slave_state_foe_request; |
276 fsm->state = ec_fsm_slave_state_foe_request; |
278 ec_fsm_foe_transfer(&fsm->fsm_foe, slave, &request->req); |
277 ec_fsm_foe_transfer(&fsm->fsm_foe, slave, &request->req); |
279 ec_fsm_foe_exec(&fsm->fsm_foe); |
278 ec_fsm_foe_exec(&fsm->fsm_foe); |
280 ec_master_queue_external_datagram(fsm->slave->master,fsm->datagram); |
279 ec_master_queue_external_datagram(fsm->slave->master, fsm->datagram); |
281 return 1; |
280 return 1; |
282 } |
281 } |
283 return 0; |
282 return 0; |
284 } |
283 } |
285 |
284 |
292 ) |
291 ) |
293 { |
292 { |
294 ec_slave_t *slave = fsm->slave; |
293 ec_slave_t *slave = fsm->slave; |
295 ec_foe_request_t *request = fsm->foe_request; |
294 ec_foe_request_t *request = fsm->foe_request; |
296 |
295 |
297 if (ec_fsm_foe_exec(&fsm->fsm_foe)) |
296 if (ec_fsm_foe_exec(&fsm->fsm_foe)) { |
298 { |
297 ec_master_queue_external_datagram(fsm->slave->master, fsm->datagram); |
299 ec_master_queue_external_datagram(fsm->slave->master,fsm->datagram); |
|
300 return; |
298 return; |
301 } |
299 } |
302 |
300 |
303 if (!ec_fsm_foe_success(&fsm->fsm_foe)) { |
301 if (!ec_fsm_foe_success(&fsm->fsm_foe)) { |
304 EC_SLAVE_ERR(slave, "Failed to handle FoE request.\n"); |
302 EC_SLAVE_ERR(slave, "Failed to handle FoE request.\n"); |