master/fsm_coe_map.c
changeset 1044 0d73427db362
parent 1036 dc2008bc8113
child 1045 c4fd73507076
equal deleted inserted replaced
1043:2abea4233a6d 1044:0d73427db362
   245         )
   245         )
   246 {
   246 {
   247     if (fsm->sync_subindex <= fsm->sync_subindices) {
   247     if (fsm->sync_subindex <= fsm->sync_subindices) {
   248         ec_sdo_request_address(&fsm->request, fsm->sync_sdo_index,
   248         ec_sdo_request_address(&fsm->request, fsm->sync_sdo_index,
   249                 fsm->sync_subindex);
   249                 fsm->sync_subindex);
   250         fsm->request.response_timeout = 0;
   250         fsm->request.response_timeout = 5000;
   251         ecrt_sdo_request_read(&fsm->request);
   251         ecrt_sdo_request_read(&fsm->request);
   252         fsm->state = ec_fsm_coe_map_state_pdo;
   252         fsm->state = ec_fsm_coe_map_state_pdo;
   253         ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request);
   253         ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request);
   254         ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately
   254         ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately
   255         return;
   255         return;
   312         EC_DBG("  Pdo 0x%04X.\n", fsm->pdo->index);
   312         EC_DBG("  Pdo 0x%04X.\n", fsm->pdo->index);
   313 
   313 
   314     list_add_tail(&fsm->pdo->list, &fsm->pdos.list);
   314     list_add_tail(&fsm->pdo->list, &fsm->pdos.list);
   315 
   315 
   316     ec_sdo_request_address(&fsm->request, fsm->pdo->index, 0);
   316     ec_sdo_request_address(&fsm->request, fsm->pdo->index, 0);
   317     fsm->request.response_timeout = 0;
   317     fsm->request.response_timeout = 5000;
   318     ecrt_sdo_request_read(&fsm->request);
   318     ecrt_sdo_request_read(&fsm->request);
   319     fsm->state = ec_fsm_coe_map_state_pdo_entry_count;
   319     fsm->state = ec_fsm_coe_map_state_pdo_entry_count;
   320     ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request);
   320     ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request);
   321     ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately
   321     ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately
   322 }
   322 }
   368         ec_fsm_coe_map_t *fsm /**< finite state machine */
   368         ec_fsm_coe_map_t *fsm /**< finite state machine */
   369         )
   369         )
   370 {
   370 {
   371     if (fsm->pdo_subindex <= fsm->pdo_subindices) {
   371     if (fsm->pdo_subindex <= fsm->pdo_subindices) {
   372         ec_sdo_request_address(&fsm->request, fsm->pdo->index, fsm->pdo_subindex);
   372         ec_sdo_request_address(&fsm->request, fsm->pdo->index, fsm->pdo_subindex);
   373         fsm->request.response_timeout = 0;
   373         fsm->request.response_timeout = 5000;
   374         ecrt_sdo_request_read(&fsm->request);
   374         ecrt_sdo_request_read(&fsm->request);
   375         fsm->state = ec_fsm_coe_map_state_pdo_entry;
   375         fsm->state = ec_fsm_coe_map_state_pdo_entry;
   376         ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request);
   376         ec_fsm_coe_transfer(fsm->fsm_coe, fsm->slave, &fsm->request);
   377         ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately
   377         ec_fsm_coe_exec(fsm->fsm_coe); // execute immediately
   378         return;
   378         return;