From 54e2ff770e0e911b4f99bd128eda2be2efd611f9 Mon Sep 17 00:00:00 2001 From: Florian Pose Date: Thu, 5 Jan 2012 16:47:23 +0100 Subject: [PATCH] Allow CoE OD List Segments to have 6 bytes instead of 8. --- master/fsm_coe.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/master/fsm_coe.c b/master/fsm_coe.c index 7df54b1c..6d266e5d 100644 --- a/master/fsm_coe.c +++ b/master/fsm_coe.c @@ -507,16 +507,16 @@ void ec_fsm_coe_dict_response(ec_fsm_coe_t *fsm /**< finite state machine */) return; } - if (rec_size < 8 || rec_size % 2) { - EC_SLAVE_ERR(slave, "Invalid data size %zu!\n", rec_size); + first_segment = list_empty(&slave->sdo_dictionary) ? true : false; + index_list_offset = first_segment ? 8 : 6; + + if (rec_size < index_list_offset || rec_size % 2) { + EC_SLAVE_ERR(slave, "Invalid data size %zu !\n", rec_size); ec_print_data(data, rec_size); fsm->state = ec_fsm_coe_error; return; } - first_segment = list_empty(&slave->sdo_dictionary) ? true : false; - index_list_offset = first_segment ? 8 : 6; - sdo_count = (rec_size - index_list_offset) / 2; for (i = 0; i < sdo_count; i++) {