X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fserial%2Fserial.cpp;fp=source%2Fserial%2Fserial.cpp;h=4b94034f0354d9c535ff3016b8617bbc7e5c78c3;hb=9ddcd066e37e4c72685817c042c30897786ece05;hp=27667521e1eb07cba7d3ba81545d6f70c847a72f;hpb=e94014530a6e28a42bc5678e579ee07e0ee5329b;p=r2c2.git diff --git a/source/serial/serial.cpp b/source/serial/serial.cpp index 2766752..4b94034 100644 --- a/source/serial/serial.cpp +++ b/source/serial/serial.cpp @@ -20,6 +20,7 @@ Serial::Serial(int, char **argv): client(catalogue), serial_port(argv[2]), train(0), + reverse(false), rx_fill(0) { DataFile::load(catalogue, "locos.dat"); @@ -97,7 +98,8 @@ void Serial::data_available() else if(c=='R') { IO::print("Reverse\n"); - train->set_reverse(!train->get_reverse()); + reverse = !reverse; + train->set_control("speed", 0); } else if(c=='N') next_train(); @@ -121,9 +123,10 @@ void Serial::data_available() } else if(rx_buf[0]=='S' && rx_fill==3) { - unsigned speed = (rx_buf[1]-'0')*10+(rx_buf[2]-'0'); - IO::print("Set speed %d\n", speed); - train->set_speed(speed); + // XXX The firmware is still coded for speed step based control + float speed = ((rx_buf[1]-'0')*10+(rx_buf[2]-'0'))*10/3.6*catalogue.get_scale(); + IO::print("Set speed %g\n", speed); + train->set_control("speed", speed); rx_fill = 0; } }