From e1e1db327723b7f3535dbb4d6ac11f0f5480c21b Mon Sep 17 00:00:00 2001 From: Ricky Zheng Date: Sun, 6 Jan 2019 00:09:59 -0800 Subject: [PATCH 1/6] Fixed XON/XOFF config bug --- ext/native/posix_serialport_impl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/native/posix_serialport_impl.c b/ext/native/posix_serialport_impl.c index 4b7329d..ca59bf6 100644 --- a/ext/native/posix_serialport_impl.c +++ b/ext/native/posix_serialport_impl.c @@ -157,7 +157,7 @@ VALUE sp_create_impl(class, _port) params.c_oflag = 0; params.c_lflag = 0; - params.c_iflag &= (IXON | IXOFF | IXANY); + params.c_iflag &= ~(IXON | IXOFF | IXANY); params.c_cflag |= CLOCAL | CREAD; params.c_cflag &= ~HUPCL; From 9aeec648e6bab9ed7d6f4827e32e09ce1364c921 Mon Sep 17 00:00:00 2001 From: Ricky Date: Sun, 6 Jan 2019 21:40:35 +1300 Subject: [PATCH 2/6] Bump version number to 1.3.2 --- CHANGELOG | 2 ++ lib/serialport/version.rb | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index cc7cc6b..f179094 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,5 @@ +1.3.2 => 01/06/2019: [FIXED] 0x11/0x13 stripped out under Linux + 1.3.1 => 07/26/2014: [FIXED] Ruby 2.2 support [NEW] UNIX MARK/SPACE parity (CMSPAR) support diff --git a/lib/serialport/version.rb b/lib/serialport/version.rb index 430feb2..718c16c 100644 --- a/lib/serialport/version.rb +++ b/lib/serialport/version.rb @@ -1,3 +1,3 @@ class SerialPort - VERSION = "1.3.1" + VERSION = "1.3.2" end From 40d4b70d2ec2e201fd7f8c8ba0f01132e7cd1778 Mon Sep 17 00:00:00 2001 From: Ricky Date: Wed, 15 Jul 2020 19:57:11 +1200 Subject: [PATCH 3/6] clear o_iflag to prevent some unusual behaviour --- ext/native/posix_serialport_impl.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ext/native/posix_serialport_impl.c b/ext/native/posix_serialport_impl.c index ca59bf6..577b9b5 100644 --- a/ext/native/posix_serialport_impl.c +++ b/ext/native/posix_serialport_impl.c @@ -155,9 +155,12 @@ VALUE sp_create_impl(class, _port) rb_sys_fail(sTcgetattr); } + // clean oflag and iflag, you may get unexpected behaviour if any bit of iflag/oflag is set. params.c_oflag = 0; + params.c_iflag = 0; + params.c_lflag = 0; - params.c_iflag &= ~(IXON | IXOFF | IXANY); + params.c_cflag |= CLOCAL | CREAD; params.c_cflag &= ~HUPCL; From c1a248a8237df7e6f752411415ee1fa01affe0dc Mon Sep 17 00:00:00 2001 From: Ricky Date: Wed, 15 Jul 2020 20:04:55 +1200 Subject: [PATCH 4/6] ver 1.3.3 --- CHANGELOG | 2 ++ lib/serialport/version.rb | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index f179094..436722b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,5 @@ +1.3.3 => 07/15/2020: [FIXED] 0x0D got translated to 0x0A under Linux + 1.3.2 => 01/06/2019: [FIXED] 0x11/0x13 stripped out under Linux 1.3.1 => 07/26/2014: [FIXED] Ruby 2.2 support diff --git a/lib/serialport/version.rb b/lib/serialport/version.rb index 718c16c..96c4d7f 100644 --- a/lib/serialport/version.rb +++ b/lib/serialport/version.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class SerialPort - VERSION = "1.3.2" + VERSION = '1.3.4' end From c9f20361bc67cd7684242781f8a1219ba198afc7 Mon Sep 17 00:00:00 2001 From: Ricky Date: Wed, 15 Jul 2020 20:08:12 +1200 Subject: [PATCH 5/6] ver 1.3.3 --- lib/serialport/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/serialport/version.rb b/lib/serialport/version.rb index 96c4d7f..b6c8d34 100644 --- a/lib/serialport/version.rb +++ b/lib/serialport/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true class SerialPort - VERSION = '1.3.4' + VERSION = '1.3.3' end From d07be3179f6b97da65b2ebe91258ca57039f55b3 Mon Sep 17 00:00:00 2001 From: Ricky Date: Wed, 15 Jul 2020 20:48:47 +1200 Subject: [PATCH 6/6] default to disable RTS/CTS hw flow control --- ext/native/posix_serialport_impl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/native/posix_serialport_impl.c b/ext/native/posix_serialport_impl.c index 577b9b5..82777b0 100644 --- a/ext/native/posix_serialport_impl.c +++ b/ext/native/posix_serialport_impl.c @@ -162,7 +162,7 @@ VALUE sp_create_impl(class, _port) params.c_lflag = 0; params.c_cflag |= CLOCAL | CREAD; - params.c_cflag &= ~HUPCL; + params.c_cflag &= ~(HUPCL | CRTSCTS); // default not use RTS/CTS hw flow control if (tcsetattr(fd, TCSANOW, ¶ms) == -1) {