diff -r 9114b3a5f9d3 -r d5d04c868e0e master/fsm_change.c --- a/master/fsm_change.c Thu Mar 08 08:10:32 2007 +0000 +++ b/master/fsm_change.c Thu Mar 08 13:02:42 2007 +0000 @@ -158,7 +158,6 @@ // write new state to slave ec_datagram_npwr(datagram, slave->station_address, 0x0120, 2); EC_WRITE_U16(datagram->data, fsm->requested_state); - ec_master_queue_datagram(fsm->slave->master, datagram); fsm->retries = EC_FSM_RETRIES; fsm->state = ec_fsm_change_state_check; } @@ -175,10 +174,8 @@ ec_datagram_t *datagram = fsm->datagram; ec_slave_t *slave = fsm->slave; - if (datagram->state == EC_DATAGRAM_TIMED_OUT && fsm->retries--) { - ec_master_queue_datagram(fsm->slave->master, datagram); - return; - } + if (datagram->state == EC_DATAGRAM_TIMED_OUT && fsm->retries--) + return; if (datagram->state != EC_DATAGRAM_RECEIVED) { fsm->state = ec_fsm_change_state_error; @@ -206,7 +203,6 @@ // repeat writing new state to slave ec_datagram_npwr(datagram, slave->station_address, 0x0120, 2); EC_WRITE_U16(datagram->data, fsm->requested_state); - ec_master_queue_datagram(fsm->slave->master, datagram); fsm->retries = EC_FSM_RETRIES; return; } @@ -215,7 +211,6 @@ // read AL status from slave ec_datagram_nprd(datagram, slave->station_address, 0x0130, 2); - ec_master_queue_datagram(fsm->slave->master, datagram); fsm->retries = EC_FSM_RETRIES; fsm->state = ec_fsm_change_state_status; } @@ -232,10 +227,8 @@ ec_datagram_t *datagram = fsm->datagram; ec_slave_t *slave = fsm->slave; - if (datagram->state == EC_DATAGRAM_TIMED_OUT && fsm->retries--) { - ec_master_queue_datagram(fsm->slave->master, datagram); - return; - } + if (datagram->state == EC_DATAGRAM_TIMED_OUT && fsm->retries--) + return; if (datagram->state != EC_DATAGRAM_RECEIVED) { fsm->state = ec_fsm_change_state_error; @@ -291,7 +284,6 @@ req_state, slave->ring_position, cur_state); // fetch AL status error code ec_datagram_nprd(datagram, slave->station_address, 0x0134, 2); - ec_master_queue_datagram(fsm->slave->master, datagram); fsm->retries = EC_FSM_RETRIES; fsm->state = ec_fsm_change_state_code; return; @@ -312,7 +304,6 @@ again: // no timeout yet. check again ec_datagram_nprd(datagram, slave->station_address, 0x0130, 2); - ec_master_queue_datagram(fsm->slave->master, datagram); fsm->retries = EC_FSM_RETRIES; } @@ -369,10 +360,8 @@ uint32_t code; const ec_code_msg_t *al_msg; - if (datagram->state == EC_DATAGRAM_TIMED_OUT && fsm->retries--) { - ec_master_queue_datagram(fsm->slave->master, datagram); - return; - } + if (datagram->state == EC_DATAGRAM_TIMED_OUT && fsm->retries--) + return; if (datagram->state != EC_DATAGRAM_RECEIVED) { fsm->state = ec_fsm_change_state_error; @@ -416,7 +405,6 @@ ec_datagram_npwr(datagram, slave->station_address, 0x0120, 2); EC_WRITE_U16(datagram->data, slave->current_state); - ec_master_queue_datagram(fsm->slave->master, datagram); fsm->retries = EC_FSM_RETRIES; fsm->state = ec_fsm_change_state_ack; } @@ -432,10 +420,8 @@ ec_datagram_t *datagram = fsm->datagram; ec_slave_t *slave = fsm->slave; - if (datagram->state == EC_DATAGRAM_TIMED_OUT && fsm->retries--) { - ec_master_queue_datagram(fsm->slave->master, datagram); - return; - } + if (datagram->state == EC_DATAGRAM_TIMED_OUT && fsm->retries--) + return; if (datagram->state != EC_DATAGRAM_RECEIVED) { fsm->state = ec_fsm_change_state_error; @@ -456,7 +442,6 @@ // read new AL status ec_datagram_nprd(datagram, slave->station_address, 0x0130, 2); - ec_master_queue_datagram(fsm->slave->master, datagram); fsm->retries = EC_FSM_RETRIES; fsm->state = ec_fsm_change_state_check_ack; } @@ -473,10 +458,8 @@ ec_datagram_t *datagram = fsm->datagram; ec_slave_t *slave = fsm->slave; - if (datagram->state == EC_DATAGRAM_TIMED_OUT && fsm->retries--) { - ec_master_queue_datagram(fsm->slave->master, datagram); - return; - } + if (datagram->state == EC_DATAGRAM_TIMED_OUT && fsm->retries--) + return; if (datagram->state != EC_DATAGRAM_RECEIVED) { fsm->state = ec_fsm_change_state_error; @@ -526,7 +509,6 @@ // reread new AL status ec_datagram_nprd(datagram, slave->station_address, 0x0130, 2); - ec_master_queue_datagram(fsm->slave->master, datagram); fsm->retries = EC_FSM_RETRIES; }