implemented serial port config
Stefan Schuermans authored 12 years ago
|
1) /* Blinker
2) Copyright 2011 Stefan Schuermans <stefan@blinkenarea.org>
3) Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4) a blinkenarea.org project */
5)
6) #include <sstream>
7) #include <string>
8)
9) #include "SerCfg.h"
10) #include "StringParser.h"
11)
12) namespace Blinker {
13)
14) /// constructor
15) SerCfg::SerCfg():
16) m_baud(9600),
17) m_data(8),
18) m_parity(ParityNone),
19) m_stop(1)
20) {
21) }
22)
23) /**
24) * @brief parse from string format
25) * @param[in] str string format
26) * @return if parsing was successful
27) */
28) bool SerCfg::fromStr(const std::string &str)
29) {
30) StringParser parser(str);
31) unsigned int baud, data, stop;
32) char parityChr;
33)
34) if (!parser.uintMin(1, baud) ||
35) !parser.fixChr(','))
36) return false;
37) if (parser.uintMin(1, data)) { // data bits, parity
38) if (!parser.fixChr(',') ||
39) !parser.oneChrOf("nNeEoO", parityChr))
40) return false;
41) } else { // parity, data bits
42) if (!parser.oneChrOf("nNeEoO", parityChr) ||
43) !parser.fixChr(',') ||
44) !parser.uintMin(1, data))
45) return false;
46) }
|