master/fsm_coe.c
changeset 825 3771f5a0ed90
parent 814 a51f857b1b2d
child 831 ded9519c8d6e
equal deleted inserted replaced
824:e2501463f7d1 825:3771f5a0ed90
   247 {
   247 {
   248     ec_datagram_t *datagram = fsm->datagram;
   248     ec_datagram_t *datagram = fsm->datagram;
   249     ec_slave_t *slave = fsm->slave;
   249     ec_slave_t *slave = fsm->slave;
   250     uint8_t *data;
   250     uint8_t *data;
   251 
   251 
       
   252     if (!(slave->sii_mailbox_protocols & EC_MBOX_COE)) {
       
   253         EC_ERR("Slave %u does not support CoE!\n", slave->ring_position);
       
   254         fsm->state = ec_fsm_coe_error;
       
   255         return;
       
   256     }
       
   257 
   252     if (!(data = ec_slave_mbox_prepare_send(slave, datagram, 0x03, 8))) {
   258     if (!(data = ec_slave_mbox_prepare_send(slave, datagram, 0x03, 8))) {
   253         fsm->state = ec_fsm_coe_error;
   259         fsm->state = ec_fsm_coe_error;
   254         return;
   260         return;
   255     }
   261     }
   256 
   262 
   953 
   959 
   954     if (fsm->slave->master->debug_level)
   960     if (fsm->slave->master->debug_level)
   955         EC_DBG("Downloading Sdo 0x%04X:%i to slave %i.\n",
   961         EC_DBG("Downloading Sdo 0x%04X:%i to slave %i.\n",
   956                sdodata->index, sdodata->subindex, slave->ring_position);
   962                sdodata->index, sdodata->subindex, slave->ring_position);
   957 
   963 
       
   964     if (!(slave->sii_mailbox_protocols & EC_MBOX_COE)) {
       
   965         EC_ERR("Slave %u does not support CoE!\n", slave->ring_position);
       
   966         fsm->state = ec_fsm_coe_error;
       
   967         return;
       
   968     }
       
   969 
   958     if (slave->sii_rx_mailbox_size < 6 + 10 + sdodata->size) {
   970     if (slave->sii_rx_mailbox_size < 6 + 10 + sdodata->size) {
   959         EC_ERR("Sdo fragmenting not supported yet!\n");
   971         EC_ERR("Sdo fragmenting not supported yet!\n");
   960         fsm->state = ec_fsm_coe_error;
   972         fsm->state = ec_fsm_coe_error;
   961         return;
   973         return;
   962     }
   974     }
  1167     uint8_t *data;
  1179     uint8_t *data;
  1168 
  1180 
  1169     if (master->debug_level)
  1181     if (master->debug_level)
  1170         EC_DBG("Uploading Sdo 0x%04X:%i from slave %i.\n",
  1182         EC_DBG("Uploading Sdo 0x%04X:%i from slave %i.\n",
  1171                entry->sdo->index, entry->subindex, slave->ring_position);
  1183                entry->sdo->index, entry->subindex, slave->ring_position);
       
  1184 
       
  1185     if (!(slave->sii_mailbox_protocols & EC_MBOX_COE)) {
       
  1186         EC_ERR("Slave %u does not support CoE!\n", slave->ring_position);
       
  1187         fsm->state = ec_fsm_coe_error;
       
  1188         return;
       
  1189     }
  1172 
  1190 
  1173     if (!(data = ec_slave_mbox_prepare_send(slave, datagram, 0x03, 10))) {
  1191     if (!(data = ec_slave_mbox_prepare_send(slave, datagram, 0x03, 10))) {
  1174         fsm->state = ec_fsm_coe_error;
  1192         fsm->state = ec_fsm_coe_error;
  1175         return;
  1193         return;
  1176     }
  1194     }