master/fsm_slave_config.c
changeset 854 f4f53be425ac
parent 834 0791aac03180
child 858 69122084d066
equal deleted inserted replaced
853:726326d0aef4 854:f4f53be425ac
   446         return;
   446         return;
   447     }
   447     }
   448 
   448 
   449     // start Sdo configuration
   449     // start Sdo configuration
   450     fsm->state = ec_fsm_slave_config_state_sdo_conf;
   450     fsm->state = ec_fsm_slave_config_state_sdo_conf;
   451     fsm->sdodata =
   451     fsm->request = list_entry(fsm->slave->config->sdo_configs.next,
   452         list_entry(fsm->slave->config->sdo_configs.next, ec_sdo_data_t, list);
   452             ec_sdo_request_t, list);
   453     ec_fsm_coe_download(&fsm->fsm_coe, fsm->slave, fsm->sdodata);
   453     ec_sdo_request_write(fsm->request);
       
   454     ec_fsm_coe_download(&fsm->fsm_coe, fsm->slave, fsm->request);
   454     ec_fsm_coe_exec(&fsm->fsm_coe); // execute immediately
   455     ec_fsm_coe_exec(&fsm->fsm_coe); // execute immediately
   455 }
   456 }
   456 
   457 
   457 /*****************************************************************************/
   458 /*****************************************************************************/
   458 
   459 
   473         fsm->state = ec_fsm_slave_config_state_error;
   474         fsm->state = ec_fsm_slave_config_state_error;
   474         return;
   475         return;
   475     }
   476     }
   476 
   477 
   477     // Another Sdo to configure?
   478     // Another Sdo to configure?
   478     if (fsm->sdodata->list.next != &fsm->slave->config->sdo_configs) {
   479     if (fsm->request->list.next != &fsm->slave->config->sdo_configs) {
   479         fsm->sdodata =
   480         fsm->request = list_entry(fsm->request->list.next, ec_sdo_request_t,
   480             list_entry(fsm->sdodata->list.next, ec_sdo_data_t, list);
   481                 list);
   481         ec_fsm_coe_download(&fsm->fsm_coe, fsm->slave, fsm->sdodata);
   482         ec_sdo_request_write(fsm->request);
       
   483         ec_fsm_coe_download(&fsm->fsm_coe, fsm->slave, fsm->request);
   482         ec_fsm_coe_exec(&fsm->fsm_coe); // execute immediately
   484         ec_fsm_coe_exec(&fsm->fsm_coe); // execute immediately
   483         return;
   485         return;
   484     }
   486     }
   485 
   487 
   486     // All Sdos are now configured.
   488     // All Sdos are now configured.