- get_state(handle, state);
- ::set_baud_rate(state, lexical_cast<unsigned>(params.substr(0, i)));
- ::set_data_bits(state, params[i+1]-'0');
- ::set_parity(state, (params[i+2]=='E' ? EVEN : params[i+2]=='O' ? ODD : NONE));
- ::set_stop_bits(state, params[i+3]-'0');
- set_state(handle, state);
+ state.get_from(handle);
+ state.set_baud_rate(lexical_cast<unsigned>(params.substr(0, i)));
+ state.set_data_bits(params[i+1]-'0');
+ state.set_parity((params[i+2]=='E' ? EVEN : params[i+2]=='O' ? ODD : NONE));
+ state.set_stop_bits(params[i+3]-'0');
+ state.apply_to(handle);