mirror of
https://github.com/wjwwood/serial.git
synced 2026-01-22 19:54:57 +08:00
Merge branch 'master' of github.com:wjwwood/serial
Conflicts: include/serial.h src/serial.cpp
This commit is contained in:
commit
619fd31dd4
@ -54,6 +54,19 @@
|
||||
TypeName(const TypeName&); \
|
||||
void operator=(const TypeName&)
|
||||
|
||||
// If on Windows undefine the PARITY_* defines that are in winbase.h
|
||||
#ifdef PARTIY_NONE
|
||||
#undef PARITY_NONE
|
||||
#endif
|
||||
|
||||
#ifdef PARTIY_ODD
|
||||
#undef PARITY_ODD
|
||||
#endif
|
||||
|
||||
#ifdef PARTIY_EVEN
|
||||
#undef PARITY_EVEN
|
||||
#endif
|
||||
|
||||
// DEFINES
|
||||
#ifndef DEFAULT_BAUDRATE
|
||||
#define DEFAULT_BAUDRATE 9600
|
||||
|
||||
@ -159,6 +159,8 @@ void Serial::init() {
|
||||
|
||||
Serial::~Serial() {
|
||||
this->close();
|
||||
if(this->timeout != NULL)
|
||||
delete this->timeout;
|
||||
}
|
||||
|
||||
void Serial::open() {
|
||||
@ -185,8 +187,11 @@ void Serial::open() {
|
||||
void Serial::close() {
|
||||
// Cancel the current timeout timer and async reads
|
||||
this->timeout_timer.cancel();
|
||||
this->serial_port->cancel();
|
||||
this->serial_port->close();
|
||||
if(this->serial_port != NULL) {
|
||||
this->serial_port->cancel();
|
||||
this->serial_port->close();
|
||||
delete this->serial_port;
|
||||
}
|
||||
}
|
||||
|
||||
static const boost::posix_time::time_duration timeout_zero_comparison(boost::posix_time::milliseconds(0));
|
||||
@ -326,13 +331,13 @@ const bytesize_t Serial::getBytesize() const {
|
||||
|
||||
void Serial::setParity(parity_t parity) {
|
||||
switch(parity) {
|
||||
case NONE:
|
||||
case PARITY_NONE:
|
||||
this->parity = boost::asio::serial_port_base::parity(boost::asio::serial_port_base::parity::none);
|
||||
break;
|
||||
case ODD:
|
||||
case PARITY_ODD:
|
||||
this->parity = boost::asio::serial_port_base::parity(boost::asio::serial_port_base::parity::odd);
|
||||
break;
|
||||
case EVEN:
|
||||
case PARITY_EVEN:
|
||||
this->parity = boost::asio::serial_port_base::parity(boost::asio::serial_port_base::parity::even);
|
||||
break;
|
||||
default:
|
||||
@ -344,11 +349,11 @@ void Serial::setParity(parity_t parity) {
|
||||
const parity_t Serial::getParity() const {
|
||||
switch(this->parity.value()) {
|
||||
case boost::asio::serial_port_base::parity::none:
|
||||
return parity_t(NONE);
|
||||
return parity_t(PARITY_NONE);
|
||||
case boost::asio::serial_port_base::parity::odd:
|
||||
return parity_t(ODD);
|
||||
return parity_t(PARITY_ODD);
|
||||
case boost::asio::serial_port_base::parity::even:
|
||||
return parity_t(EVEN);
|
||||
return parity_t(PARITY_EVEN);
|
||||
default:
|
||||
throw(InvalidParityException(this->parity.value()));
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user