equal
deleted
inserted
replaced
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 } |