]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/unix/serial.cpp
Additional baud rates from termios.h
[libs/core.git] / source / io / unix / serial.cpp
index 49d9e9c138da1afaad12cc485b331b96a117bb32..2be5dc589f6efe57c5a83d9434776912d290faac 100644 (file)
@@ -33,14 +33,14 @@ void Serial::platform_init(const string &port)
 }
 
 
-void Serial::DeviceState::get_from(const Handle &handle)
+void Serial::DeviceState::get_from(const Handle &h)
 {
-       tcgetattr(*handle, &state);
+       tcgetattr(*h, &state);
 }
 
-void Serial::DeviceState::apply_to(const Handle &handle)
+void Serial::DeviceState::apply_to(const Handle &h)
 {
-       if(tcsetattr(*handle, TCSADRAIN, &state)==-1)
+       if(tcsetattr(*h, TCSADRAIN, &state)==-1)
                throw system_error("tcsetattr");
 }
 
@@ -68,6 +68,18 @@ void Serial::DeviceState::set_baud_rate(unsigned baud)
        case 57600:  speed = B57600; break;
        case 115200: speed = B115200; break;
        case 230400: speed = B230400; break;
+       case 460800: speed = B460800; break;
+       case 500000: speed = B500000; break;
+       case 576000: speed = B576000; break;
+       case 921600: speed = B921600; break;
+       case 1000000: speed = B1000000; break;
+       case 1152000: speed = B1152000; break;
+       case 1500000: speed = B1500000; break;
+       case 2000000: speed = B2000000; break;
+       case 2500000: speed = B2500000; break;
+       case 3000000: speed = B3000000; break;
+       case 3500000: speed = B3500000; break;
+       case 4000000: speed = B4000000; break;
        default: throw invalid_argument("set_baud_rate");
        }