34c49fea2bb08e0f06b0078cd563179734b615f2
Stefan Schuermans 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)   }
Stefan Schuermans fix parsing serial config

Stefan Schuermans authored 12 years ago

47)   if (!parser.fixChr(',') ||