equal
deleted
inserted
replaced
63 void ec_fsm_slave_scan_init( |
63 void ec_fsm_slave_scan_init( |
64 ec_fsm_slave_scan_t *fsm, /**< Slave scanning state machine. */ |
64 ec_fsm_slave_scan_t *fsm, /**< Slave scanning state machine. */ |
65 ec_datagram_t *datagram, /**< Datagram to use. */ |
65 ec_datagram_t *datagram, /**< Datagram to use. */ |
66 ec_fsm_slave_config_t *fsm_slave_config, /**< Slave configuration |
66 ec_fsm_slave_config_t *fsm_slave_config, /**< Slave configuration |
67 state machine to use. */ |
67 state machine to use. */ |
68 ec_fsm_pdo_t *fsm_pdo /**< Pdo configuration machine to use. */ |
68 ec_fsm_pdo_t *fsm_pdo /**< PDO configuration machine to use. */ |
69 ) |
69 ) |
70 { |
70 { |
71 fsm->datagram = datagram; |
71 fsm->datagram = datagram; |
72 fsm->fsm_slave_config = fsm_slave_config; |
72 fsm->fsm_slave_config = fsm_slave_config; |
73 fsm->fsm_pdo = fsm_pdo; |
73 fsm->fsm_pdo = fsm_pdo; |
531 cat_size * 2)) |
531 cat_size * 2)) |
532 goto end; |
532 goto end; |
533 break; |
533 break; |
534 case 0x0032: |
534 case 0x0032: |
535 if (ec_slave_fetch_sii_pdos( slave, (uint8_t *) cat_word, |
535 if (ec_slave_fetch_sii_pdos( slave, (uint8_t *) cat_word, |
536 cat_size * 2, EC_DIR_INPUT)) // TxPdo |
536 cat_size * 2, EC_DIR_INPUT)) // TxPDO |
537 goto end; |
537 goto end; |
538 break; |
538 break; |
539 case 0x0033: |
539 case 0x0033: |
540 if (ec_slave_fetch_sii_pdos( slave, (uint8_t *) cat_word, |
540 if (ec_slave_fetch_sii_pdos( slave, (uint8_t *) cat_word, |
541 cat_size * 2, EC_DIR_OUTPUT)) // RxPdo |
541 cat_size * 2, EC_DIR_OUTPUT)) // RxPDO |
542 goto end; |
542 goto end; |
543 break; |
543 break; |
544 default: |
544 default: |
545 if (fsm->slave->master->debug_level) |
545 if (fsm->slave->master->debug_level) |
546 EC_WARN("Unknown category type 0x%04X in slave %u.\n", |
546 EC_WARN("Unknown category type 0x%04X in slave %u.\n", |
620 ) |
620 ) |
621 { |
621 { |
622 ec_slave_t *slave = fsm->slave; |
622 ec_slave_t *slave = fsm->slave; |
623 |
623 |
624 if (slave->master->debug_level) |
624 if (slave->master->debug_level) |
625 EC_DBG("Scanning Pdo assignment and mapping of slave %u.\n", |
625 EC_DBG("Scanning PDO assignment and mapping of slave %u.\n", |
626 slave->ring_position); |
626 slave->ring_position); |
627 fsm->state = ec_fsm_slave_scan_state_pdos; |
627 fsm->state = ec_fsm_slave_scan_state_pdos; |
628 ec_fsm_pdo_start_reading(fsm->fsm_pdo, slave); |
628 ec_fsm_pdo_start_reading(fsm->fsm_pdo, slave); |
629 ec_fsm_pdo_exec(fsm->fsm_pdo); // execute immediately |
629 ec_fsm_pdo_exec(fsm->fsm_pdo); // execute immediately |
630 } |
630 } |
643 if (!ec_fsm_pdo_success(fsm->fsm_pdo)) { |
643 if (!ec_fsm_pdo_success(fsm->fsm_pdo)) { |
644 fsm->state = ec_fsm_slave_scan_state_error; |
644 fsm->state = ec_fsm_slave_scan_state_error; |
645 return; |
645 return; |
646 } |
646 } |
647 |
647 |
648 // reading Pdo configuration finished |
648 // reading PDO configuration finished |
649 fsm->state = ec_fsm_slave_scan_state_end; |
649 fsm->state = ec_fsm_slave_scan_state_end; |
650 } |
650 } |
651 |
651 |
652 /****************************************************************************** |
652 /****************************************************************************** |
653 * Common state functions |
653 * Common state functions |