master/fsm_pdo_mapping.c
changeset 858 69122084d066
parent 854 f4f53be425ac
child 859 233e32f428e1
equal deleted inserted replaced
857:7874c884dc2b 858:69122084d066
   203 
   203 
   204         // set mapped Pdo count to zero
   204         // set mapped Pdo count to zero
   205         EC_WRITE_U8(&fsm->request.data, 0); // zero Pdos mapped
   205         EC_WRITE_U8(&fsm->request.data, 0); // zero Pdos mapped
   206         fsm->request.data_size = 1;
   206         fsm->request.data_size = 1;
   207         ec_sdo_request_address(&fsm->request, 0x1C10 + fsm->sync->index, 0);
   207         ec_sdo_request_address(&fsm->request, 0x1C10 + fsm->sync->index, 0);
   208         ec_sdo_request_write(&fsm->request);
   208         ecrt_sdo_request_write(&fsm->request);
   209         if (fsm->slave->master->debug_level)
   209         if (fsm->slave->master->debug_level)
   210             EC_DBG("Setting Pdo count to zero for SM%u.\n", fsm->sync->index);
   210             EC_DBG("Setting Pdo count to zero for SM%u.\n", fsm->sync->index);
   211 
   211 
   212         fsm->state = ec_fsm_pdo_mapping_state_zero_count;
   212         fsm->state = ec_fsm_pdo_mapping_state_zero_count;
   213         ec_fsm_coe_download(fsm->fsm_coe, fsm->slave, &fsm->request);
   213         ec_fsm_coe_download(fsm->fsm_coe, fsm->slave, &fsm->request);
   246 {
   246 {
   247     EC_WRITE_U16(&fsm->request.data, fsm->pdo->index);
   247     EC_WRITE_U16(&fsm->request.data, fsm->pdo->index);
   248     fsm->request.data_size = 2;
   248     fsm->request.data_size = 2;
   249     ec_sdo_request_address(&fsm->request,
   249     ec_sdo_request_address(&fsm->request,
   250             0x1C10 + fsm->sync->index, fsm->pdo_count);
   250             0x1C10 + fsm->sync->index, fsm->pdo_count);
   251     ec_sdo_request_write(&fsm->request);
   251     ecrt_sdo_request_write(&fsm->request);
   252     if (fsm->slave->master->debug_level)
   252     if (fsm->slave->master->debug_level)
   253         EC_DBG("Mapping Pdo 0x%04X at position %u.\n",
   253         EC_DBG("Mapping Pdo 0x%04X at position %u.\n",
   254                 fsm->pdo->index, fsm->pdo_count);
   254                 fsm->pdo->index, fsm->pdo_count);
   255     
   255     
   256     fsm->state = ec_fsm_pdo_mapping_state_add_pdo;
   256     fsm->state = ec_fsm_pdo_mapping_state_add_pdo;
   312     if (!(fsm->pdo = ec_fsm_pdo_mapping_next_pdo(fsm, &fsm->pdo->list))) {
   312     if (!(fsm->pdo = ec_fsm_pdo_mapping_next_pdo(fsm, &fsm->pdo->list))) {
   313         // no more Pdos to map. write Pdo count
   313         // no more Pdos to map. write Pdo count
   314         EC_WRITE_U8(&fsm->request.data, fsm->pdo_count);
   314         EC_WRITE_U8(&fsm->request.data, fsm->pdo_count);
   315         fsm->request.data_size = 1;
   315         fsm->request.data_size = 1;
   316         ec_sdo_request_address(&fsm->request, 0x1C10 + fsm->sync->index, 0);
   316         ec_sdo_request_address(&fsm->request, 0x1C10 + fsm->sync->index, 0);
   317         ec_sdo_request_write(&fsm->request);
   317         ecrt_sdo_request_write(&fsm->request);
   318         if (fsm->slave->master->debug_level)
   318         if (fsm->slave->master->debug_level)
   319             EC_DBG("Setting number of mapped Pdos to %u.\n",
   319             EC_DBG("Setting number of mapped Pdos to %u.\n",
   320                     fsm->pdo_count);
   320                     fsm->pdo_count);
   321         
   321         
   322         fsm->state = ec_fsm_pdo_mapping_state_pdo_count;
   322         fsm->state = ec_fsm_pdo_mapping_state_pdo_count;