# HG changeset patch # User Florian Pose # Date 1161349381 0 # Node ID b21b000e88e3f50e4d095f958903e7ce337c8318 # Parent 2731a2fcc18ddef3547012fd1c4a5205a34adeb1 Always begin with subindex 0 while fetching SDO dictionary. diff -r 2731a2fcc18d -r b21b000e88e3 master/fsm.c --- a/master/fsm.c Fri Oct 20 12:57:09 2006 +0000 +++ b/master/fsm.c Fri Oct 20 13:03:01 2006 +0000 @@ -2506,7 +2506,6 @@ void ec_fsm_coe_dict_desc_response(ec_fsm_t *fsm /**< finite state machine */) { - ec_master_t *master = fsm->master; ec_datagram_t *datagram = &fsm->datagram; ec_slave_t *slave = fsm->slave; ec_sdo_t *sdo = fsm->coe_sdo; @@ -2582,36 +2581,9 @@ return; } - if (!sdo->subindices) { // no entries - // another SDO description to fetch? - if (fsm->coe_sdo->list.next != &slave->sdo_dictionary) { - fsm->coe_sdo = list_entry(fsm->coe_sdo->list.next, ec_sdo_t, list); - - if (!(data = ec_slave_mbox_prepare_send(slave, datagram, 0x03, 8))) { - fsm->coe_state = ec_fsm_error; - return; - } - - EC_WRITE_U16(data, 0x8 << 12); // SDO information - EC_WRITE_U8 (data + 2, 0x03); // Get object description request - EC_WRITE_U8 (data + 3, 0x00); - EC_WRITE_U16(data + 4, 0x0000); - EC_WRITE_U16(data + 6, fsm->coe_sdo->index); // SDO index - - ec_master_queue_datagram(fsm->master, datagram); - fsm->coe_state = ec_fsm_coe_dict_desc_request; - return; - } - - if (master->debug_level) { - EC_DBG("Finished fetching SDO descriptions.\n"); - } - - fsm->coe_state = ec_fsm_end; - return; - } - - fsm->coe_subindex = 1; + // start fetching entries + + fsm->coe_subindex = 0; if (!(data = ec_slave_mbox_prepare_send(slave, datagram, 0x03, 10))) { fsm->coe_state = ec_fsm_error;