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; |
534 cat_size * 2)) |
534 cat_size * 2)) |
535 goto end; |
535 goto end; |
536 break; |
536 break; |
537 case 0x0032: |
537 case 0x0032: |
538 if (ec_slave_fetch_sii_pdos( slave, (uint8_t *) cat_word, |
538 if (ec_slave_fetch_sii_pdos( slave, (uint8_t *) cat_word, |
539 cat_size * 2, EC_DIR_INPUT)) // TxPdo |
539 cat_size * 2, EC_DIR_INPUT)) // TxPDO |
540 goto end; |
540 goto end; |
541 break; |
541 break; |
542 case 0x0033: |
542 case 0x0033: |
543 if (ec_slave_fetch_sii_pdos( slave, (uint8_t *) cat_word, |
543 if (ec_slave_fetch_sii_pdos( slave, (uint8_t *) cat_word, |
544 cat_size * 2, EC_DIR_OUTPUT)) // RxPdo |
544 cat_size * 2, EC_DIR_OUTPUT)) // RxPDO |
545 goto end; |
545 goto end; |
546 break; |
546 break; |
547 default: |
547 default: |
548 if (fsm->slave->master->debug_level) |
548 if (fsm->slave->master->debug_level) |
549 EC_WARN("Unknown category type 0x%04X in slave %u.\n", |
549 EC_WARN("Unknown category type 0x%04X in slave %u.\n", |
623 ) |
623 ) |
624 { |
624 { |
625 ec_slave_t *slave = fsm->slave; |
625 ec_slave_t *slave = fsm->slave; |
626 |
626 |
627 if (slave->master->debug_level) |
627 if (slave->master->debug_level) |
628 EC_DBG("Scanning Pdo assignment and mapping of slave %u.\n", |
628 EC_DBG("Scanning PDO assignment and mapping of slave %u.\n", |
629 slave->ring_position); |
629 slave->ring_position); |
630 fsm->state = ec_fsm_slave_scan_state_pdos; |
630 fsm->state = ec_fsm_slave_scan_state_pdos; |
631 ec_fsm_pdo_start_reading(fsm->fsm_pdo, slave); |
631 ec_fsm_pdo_start_reading(fsm->fsm_pdo, slave); |
632 ec_fsm_pdo_exec(fsm->fsm_pdo); // execute immediately |
632 ec_fsm_pdo_exec(fsm->fsm_pdo); // execute immediately |
633 } |
633 } |
646 if (!ec_fsm_pdo_success(fsm->fsm_pdo)) { |
646 if (!ec_fsm_pdo_success(fsm->fsm_pdo)) { |
647 fsm->state = ec_fsm_slave_scan_state_error; |
647 fsm->state = ec_fsm_slave_scan_state_error; |
648 return; |
648 return; |
649 } |
649 } |
650 |
650 |
651 // reading Pdo configuration finished |
651 // reading PDO configuration finished |
652 fsm->state = ec_fsm_slave_scan_state_end; |
652 fsm->state = ec_fsm_slave_scan_state_end; |
653 } |
653 } |
654 |
654 |
655 /****************************************************************************** |
655 /****************************************************************************** |
656 * Common state functions |
656 * Common state functions |