master/fsm.c
changeset 402 03e31ac14047
parent 398 ff37601361a8
child 403 7bb931deccd9
equal deleted inserted replaced
401:484e248e94de 402:03e31ac14047
  1038                fsm->slave->ring_position);
  1038                fsm->slave->ring_position);
  1039         return;
  1039         return;
  1040     }
  1040     }
  1041 
  1041 
  1042     slave->current_state = EC_READ_U8(datagram->data);
  1042     slave->current_state = EC_READ_U8(datagram->data);
  1043     if (slave->current_state & EC_ACK) {
  1043     if (slave->current_state & EC_SLAVE_STATE_ACK_ERR) {
  1044         EC_WARN("Slave %i has state error bit set (0x%02X)!\n",
  1044         EC_WARN("Slave %i has state error bit set (0x%02X)!\n",
  1045                 slave->ring_position, slave->current_state);
  1045                 slave->ring_position, slave->current_state);
  1046         slave->current_state &= 0x0F;
  1046         slave->current_state &= 0x0F;
  1047     }
  1047     }
  1048 
  1048 
  1879         // state has been set successfully
  1879         // state has been set successfully
  1880         fsm->change_state = ec_fsm_end;
  1880         fsm->change_state = ec_fsm_end;
  1881         return;
  1881         return;
  1882     }
  1882     }
  1883 
  1883 
  1884     if (slave->current_state & 0x10) {
  1884     if (slave->current_state & EC_SLAVE_STATE_ACK_ERR) {
  1885         // state change error
  1885         // state change error
  1886         fsm->change_new = slave->current_state & 0x0F;
  1886         fsm->change_new = slave->current_state & 0x0F;
  1887         EC_ERR("Failed to set state 0x%02X - Slave %i refused state change"
  1887         EC_ERR("Failed to set state 0x%02X - Slave %i refused state change"
  1888                " (code 0x%02X)!\n", fsm->change_new, slave->ring_position,
  1888                " (code 0x%02X)!\n", fsm->change_new, slave->ring_position,
  1889                slave->current_state);
  1889                slave->current_state);