float speed = control->get_speed();
unsigned speed_notch = find_speed(abs(speed));
- if(speed && (speed<0)!=reverse)
+ if(control->get_reverse()!=reverse)
{
- driver.set_loco_reverse(address, speed<0);
- reverse = speed<0;
+ reverse = control->get_reverse();
+ driver.set_loco_reverse(address, reverse);
release_blocks(rsv_blocks);
reverse_blocks(cur_blocks);