equal
deleted
inserted
replaced
56 void ec_fsm_master_state_acknowledge(ec_fsm_master_t *); |
56 void ec_fsm_master_state_acknowledge(ec_fsm_master_t *); |
57 void ec_fsm_master_state_configure_slave(ec_fsm_master_t *); |
57 void ec_fsm_master_state_configure_slave(ec_fsm_master_t *); |
58 void ec_fsm_master_state_clear_addresses(ec_fsm_master_t *); |
58 void ec_fsm_master_state_clear_addresses(ec_fsm_master_t *); |
59 void ec_fsm_master_state_scan_slaves(ec_fsm_master_t *); |
59 void ec_fsm_master_state_scan_slaves(ec_fsm_master_t *); |
60 void ec_fsm_master_state_write_sii(ec_fsm_master_t *); |
60 void ec_fsm_master_state_write_sii(ec_fsm_master_t *); |
61 void ec_fsm_master_state_sdodict(ec_fsm_master_t *); |
61 void ec_fsm_master_state_sdo_dictionary(ec_fsm_master_t *); |
62 void ec_fsm_master_state_sdo_request(ec_fsm_master_t *); |
62 void ec_fsm_master_state_sdo_request(ec_fsm_master_t *); |
63 void ec_fsm_master_state_end(ec_fsm_master_t *); |
63 void ec_fsm_master_state_end(ec_fsm_master_t *); |
64 void ec_fsm_master_state_error(ec_fsm_master_t *); |
64 void ec_fsm_master_state_error(ec_fsm_master_t *); |
65 |
65 |
66 /*****************************************************************************/ |
66 /*****************************************************************************/ |
531 || jiffies - slave->jiffies_preop < EC_WAIT_SDO_DICT * HZ |
531 || jiffies - slave->jiffies_preop < EC_WAIT_SDO_DICT * HZ |
532 || slave->online_state == EC_SLAVE_OFFLINE |
532 || slave->online_state == EC_SLAVE_OFFLINE |
533 || slave->error_flag) continue; |
533 || slave->error_flag) continue; |
534 |
534 |
535 if (master->debug_level) { |
535 if (master->debug_level) { |
536 EC_DBG("Fetching Sdo dictionary from slave %i.\n", |
536 EC_DBG("Fetching Sdo dictionary from slave %u.\n", |
537 slave->ring_position); |
537 slave->ring_position); |
538 } |
538 } |
539 |
539 |
540 slave->sdo_dictionary_fetched = 1; |
540 slave->sdo_dictionary_fetched = 1; |
541 |
541 |
542 // start fetching Sdo dictionary |
542 // start fetching Sdo dictionary |
543 fsm->idle = 0; |
543 fsm->idle = 0; |
544 fsm->slave = slave; |
544 fsm->slave = slave; |
545 fsm->state = ec_fsm_master_state_sdodict; |
545 fsm->state = ec_fsm_master_state_sdo_dictionary; |
546 ec_fsm_coe_dictionary(&fsm->fsm_coe, slave); |
546 ec_fsm_coe_dictionary(&fsm->fsm_coe, slave); |
547 ec_fsm_coe_exec(&fsm->fsm_coe); // execute immediately |
547 ec_fsm_coe_exec(&fsm->fsm_coe); // execute immediately |
548 return; |
548 return; |
549 } |
549 } |
550 |
550 |
833 |
833 |
834 /** |
834 /** |
835 Master state: SdoDICT. |
835 Master state: SdoDICT. |
836 */ |
836 */ |
837 |
837 |
838 void ec_fsm_master_state_sdodict(ec_fsm_master_t *fsm /**< master state machine */) |
838 void ec_fsm_master_state_sdo_dictionary( |
|
839 ec_fsm_master_t *fsm /**< master state machine */ |
|
840 ) |
839 { |
841 { |
840 ec_slave_t *slave = fsm->slave; |
842 ec_slave_t *slave = fsm->slave; |
841 ec_master_t *master = fsm->master; |
843 ec_master_t *master = fsm->master; |
842 |
844 |
843 if (ec_fsm_coe_exec(&fsm->fsm_coe)) return; |
845 if (ec_fsm_coe_exec(&fsm->fsm_coe)) return; |