1
0
mirror of https://github.com/wjwwood/serial.git synced 2026-01-22 11:44:53 +08:00

385 Commits

Author SHA1 Message Date
Alex Moriarty
40d295030e cmake: option BUILD_SHARED_LIBS ON
Default to building as a shared libary

Signed-off-by: Alex Moriarty <alex.moriarty@picknik.ai>
2023-06-15 10:59:05 -03:00
Alec Leamas
61da1e2c99 cmake: Add defined so-version and public header to lib.
Adding a so-version means defining an ABI level. This level is decoupled
from the ordinary version, even a major version change doesn't
necessarily mean that the so-version should change (and thus have all
dependencies to be rebuilt).

Adding the public header to clarify the setup.

Note: cherry-pick from PR #231

 Conflicts:
	CMakeLists.txt
 Author:    Alec Leamas <leamas.alec@gmail.com>
 Date:      Tue Sep 22 13:28:04 2020 +0200

Gbp-Pq: Name 0002-cmake-Add-defined-so-version-and-public-header-to-li.patch
Signed-off-by: Alex Moriarty <alex.moriarty@picknik.ai>
2023-06-15 10:58:45 -03:00
Alec Leamas
c9da89d348 cmake: Use cmake >= 3.5, add project setup.
Cmake made major changes in the 2.x -> 3.0 switch, keeping the 2.x
compatiblity just isn't worth it. Since serial anyway doesn't build on
versions before xenial, use xenial's cmake at 3.5 as baseline.

Cherry-pick from PR #231

 Conflicts:
	CMakeLists.txt
 Author:    Alec Leamas <leamas.alec@gmail.com>
 Date:      Tue Sep 22 13:08:46 2020 +0200

Gbp-Pq: Name 0001-cmake-Use-cmake-3.5-add-project-setup.patch
Signed-off-by: Alex Moriarty <alex.moriarty@picknik.ai>
2023-06-15 10:55:19 -03:00
Alex Moriarty
380c4e4117 compile with -fPIC and bump cmake version
This couldn't be cherry-picked because but essentially the same change
from the ros2 branch here:
d8d160678a

Fixes this error:

```
/usr/bin/ld: /home/alex/ros/h/robotiq/install/serial/lib/libserial.a(serial.cc.o): relocation R_X86_64_PC32 against symbol `_ZTVN6serial6SerialE' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value
```

Signed-off-by: Alex Moriarty <alex.moriarty@picknik.ai>
2023-06-14 11:18:01 -03:00
Scott K Logan
30259398ae Convert package to a pure CMake package
cherry-picking commit 4d5be00 from @cottsay
See: https://github.com/wjwwood/serial/pull/209#issuecomment-520018303

 Author:    Scott K Logan <logans@cottsay.net>
 Date:      Wed Jul 3 13:24:15 2019 -0700

Conflicts:
	CMakeLists.txt
	package.xml
	tests/CMakeLists.txt

Signed-off-by: Alex Moriarty <alex.moriarty@picknik.ai>
2023-06-14 10:41:16 -03:00
Eric Fontaine
69e0372cf0
Move License text to separate LICENSE file (#261) 2022-03-08 16:16:57 -08:00
Maicol Castro
33e5a31ab7
Fix broken links (#244) 2021-06-10 15:15:44 -07:00
Robin Krens
ed9f89ca31
Add support for serial bluetooth ports on Linux (#237)
Added search blob /dev/rfcomm*. rfcomm* is a commonly used naming
convention for bluetooth ports on linux
2021-06-10 15:14:48 -07:00
Jacob Perron
9fc9e81fc1
Remove Boost dependency (#235)
It wasn't being used so there's no need to depend on it.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>
2021-06-10 15:14:20 -07:00
Matthias Behr
57f72772a9
Add EINTR handling to SerialImpl::write (#233)
EINTR can still happen on write. Don't throw the exception in that
case but retry.
In case of other errors add more details to the SerialException.
2021-06-10 15:13:58 -07:00
Atomie CHEN
a93fc844d9
Solve issue Custom Baudrate OSX #139 of original repo; inspired by PySerial source code and #57 of github.com/npat-efault/picocom, we need to set custom baudrate after calling tcsetattr; tested on macOS Mojave 10.14.4 (#218) 2021-06-10 14:57:40 -07:00
Hannes Kamecke
7439db1228
Fix windows com port prefix (#179)
The check in `_prefix_port_if_needed` does not work, as it's currently comparing the whole input string to the prefix. As a consequence, port strings will be prefixed, even if they're already prefixed. This commit changes the call to `wstring::compare` to use an overload that compares a substring of the input string only.
2021-06-10 14:57:28 -07:00
Chenchen
9e331e7977
fix invalid memory access when eol size >1 (#220)
Co-authored-by: chenguojun <chenguojun@yogorobot.com>
2021-06-10 14:49:29 -07:00
Sean Yen
cbcca7c837 Install serial library to a portable location. (#216) 2020-01-06 11:15:17 -08:00
bsbaliga
683e12d2f6 Fix memory leak when exception is thrown by impl classes in (#198)
Serial::read() vector and string variants.
2019-03-25 15:25:33 -07:00
William Woodall
fba8d81b5d
whitespace 2018-11-12 12:03:16 -06:00
William Woodall
2ef29d7b10
whitespace 2018-11-12 12:01:58 -06:00
William Woodall
5a354eaab7
reduce the number of jobs on travis (#172)
* reduce the number of jobs on travis

* update usage of pip due to changes in Homebrew

* update pip and ensure the right one is being used with an alias

* force reinstall pip to get `pip` on PATH

* use python2 explicitly to run catkin_make

* force use of python2 executable by catkin packages

* python!

* simpler

* how to which

* Update .travis.yml

* make tests and run_tests

* test results

* disable timer tests on macOS
2018-02-05 19:44:04 -08:00
Mike Purvis
bdba3a80ad Fix CMake warning for rt and pthread. (#165) 2018-01-18 17:25:29 -08:00
William Woodall
17e3223e68
remove references to no longer available uninstall command (#171) 2018-01-13 13:37:26 -08:00
William Woodall
764fab8b5e sublime project file updates 2018-01-13 13:19:48 -08:00
Ben Moyer
235a5f716d print GetLastError() result instead of errno (#154) 2018-01-13 12:16:50 -08:00
Ben Moyer
534141aa8f implement flushInput and flushOutput for windows (#153) 2018-01-13 12:15:36 -08:00
José Manuel Díez
ce085ce88c Problem: hardware flow control uses RTS_CONTROL_TOGGLE (#132)
RTS_CONTROL_HANDSHAKE raises RTS when there is space in the input
buffer; RTS_CONTROL_TOGGLE only raises RTS when bytes are available for
transmission.

Also replace numeric constants with symbolic constants.
2018-01-13 12:10:11 -08:00
Mike Purvis
d3713af096 Support 500kbps serial ports. (#167) 2018-01-09 07:22:43 -08:00
rhd
827c4a784d Fix issue with write() and a timeout of 0. (#137)
* Fix issue with write() and a timeout of 0.

* fix up style
2017-01-20 17:34:49 -08:00
Stephane Poirier
771e62c220 Update documentation (#140)
* Fix typo and missing dependency in README

* [docs] Update docs: fix deprecation warnings + add missing deps to README
2017-01-20 15:29:03 -08:00
aleksey-sergey
02dfff7883 fixing unix timeouts handling ("timer_tests.short_interval" failure) (#147) 2016-11-28 17:38:53 -08:00
aleksey-sergey
4d69fb2e41 fix timeouts handling on Unix systems (#142)
fixed "singed long" overflow that took place on attempt
to use ~3000ms or bigger timeouts on Unix systems
2016-11-28 14:06:00 -08:00
dontsovcmc
c16faab6ea resource leak if exception in SerialImpl constructor (#146) 2016-11-21 14:48:07 -08:00
Christopher Baker
d76b7d6b7f Const corrections. (#141) 2016-10-17 13:54:11 +09:00
William Woodall
2d416f1560 Merge pull request #118 from Rimco/patch-1
Updated serial.cc for FreeBSD 9 compatibility.
2015-12-02 09:06:25 -08:00
Rimco
22dce33fa4 Updated serial.cc for FreeBSD 9 compatibility. 2015-11-26 22:15:48 +01:00
William Woodall
e12d81eadf Merge pull request #116 from pao/patch-1
Use CLOCK_MONOTONIC (Linux)/SYSTEM_CLOCK (OS X) to time select()
2015-11-10 15:35:05 -08:00
Patrick O'Leary
c5b4bbd181 on OS X, use SYSTEM_CLOCK, not CALENDAR_CLOCK
Analogously to using `CLOCK_MONOTONIC` on Linux to time events in favor of `CLOCK_REALTIME`, `SYSTEM_CLOCK` should be used in favor of `CALENDAR_CLOCK` on OS X.

Ref: http://stackoverflow.com/questions/11680461/monotonic-clock-on-osx
2015-11-10 17:28:45 -06:00
Patrick O'Leary
98f1c31e81 on Linux, use CLOCK_MONOTONIC for clock_gettime()
On Linux systems which are being driven by an external time source (NTP or PTP), it is possible that time appears to slew in reverse under `CLOCK_REALTIME`. Since the timer function is used to time durations of events (calls to `select()`), it is better to use `CLOCK_MONOTONIC`, which isn't subject to slewing.
2015-11-10 09:40:30 -06:00
William Woodall
ef7f77d411 Merge pull request #113 from vladimirgamalian/patch-1
Comment unreferenced formal parameters
2015-09-27 14:14:03 -07:00
Vladimir Gamalian
402657574c Comment unreferenced formal parameter
Fix warning from static analysis tools.
2015-09-27 19:41:56 +07:00
William Woodall
a81087ec85 Merge pull request #112 from linquize/vs2015
Support VS2015
2015-09-23 14:35:04 -07:00
Linquize
9b80fc3fbf Can use the toolsets from Visual Studio 2010, 2012, 2013, 2015 2015-09-22 21:45:43 +08:00
William Woodall
c57285f30a Merge pull request #106 from ramirahikkala/master
AdditionalIncludeDirectories must be relative for project not solution
2015-08-14 10:11:13 -07:00
Rami
cd5053cb32 AdditionalIncludeDirectories must be relative for project not solution
Fixes #105

Signed-off-by: Rami <rami.rahikkala@jotautomation.com>
2015-08-14 08:37:27 +03:00
William Woodall
6144d579af Merge pull request #103 from drummist180/master
Fix include directory paths in Visual Studio projects.
2015-07-21 16:02:36 -07:00
Brandon Morton
1580f10d39 Fix include directory paths in Visual Studio projects.
Remove previously ignored *.user file.
2015-07-16 19:17:52 -07:00
William Woodall
99e57e633c Merge pull request #98 from wjwwood/fix_issue_97
fix warning on Windows
2015-04-27 15:20:05 -07:00
William Woodall
b8320d31a7 fix warning on Windows 2015-04-27 14:44:16 -07:00
William Woodall
10ac4e1c25 1.2.1 1.2.1 2015-04-21 21:50:41 -07:00
William Woodall
03ca3be6a8 Merge pull request #96 from wjwwood/issue_84
fix handling of COM ports over 10 on Windows, fixes #84
2015-04-21 21:38:04 -07:00
William Woodall
52197afbc8 [doc] fixup/clarify some throws documentation 2015-04-21 21:15:51 -07:00
William Woodall
e438077cba [style] whitespace and configs 2015-04-21 21:15:51 -07:00