Package Summary
Tags | No category tags. |
Version | 1.2.1 |
License | MIT |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/wjwwood/serial.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2022-03-09 |
Dev Status | MAINTAINED |
CI status |
|
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- William Woodall
Authors
- William Woodall
- John Harrison
Serial Communication Library
This is a cross-platform library for interfacing with rs-232 serial like ports written in C++. It provides a modern C++ interface with a workflow designed to look and feel like PySerial, but with the speed and control provided by C++.
This library is in use in several robotics related projects and can be built and installed to the OS like most unix libraries with make and then sudo make install, but because it is a catkin project it can also be built along side other catkin projects in a catkin workspace.
Serial is a class that provides the basic interface common to serial libraries (open, close, read, write, etc..) and requires no extra dependencies. It also provides tight control over timeouts and control over handshaking lines.
Documentation
Website: http://wjwwood.github.io/serial/
API Documentation: http://wjwwood.github.io/serial/doc/1.1.0/index.html
Dependencies
Required:
- catkin - cmake and Python based buildsystem
- cmake - buildsystem
-
Python - scripting language
- empy - Python templating library
- catkin_pkg - Runtime Python library for catkin
Optional (for documentation):
Install
Get the code:
git clone https://github.com/wjwwood/serial.git
Build:
make
Build and run the tests:
make test
Build the documentation:
make doc
Install:
make install
License
Authors
William Woodall wjwwood@gmail.com John Harrison ash.gti@gmail.com
Contact
William Woodall william@osrfoundation.org
Changelog for package serial
1.2.1 (2015-04-21)
- Removed the use of a C++11 feature for compatibility with older browsers.
- Fixed an issue with cross compiling with mingw on Windows.
- Restructured Visual Studio project layout.
- Added include of
#include <AvailabilityMacros.h>
on OS X (listing of ports). - Fixed MXE for the listing of ports on Windows.
- Now closes file device if
reconfigureDevice
fails (Windows). - Added the MARK/SPACE parity bit option, also made it optional. Adding the enumeration values for MARK and SPACE was the only code change to an API header. It should not affect ABI or API.
- Added support for 576000 baud on Linux.
- Now releases iterator properly in listing of ports code for OS X.
- Fixed the ability to open COM ports over COM10 on Windows.
- Fixed up some documentation about exceptions in
serial.h
.
1.2.0 (2014-07-02)
- Removed vestigial
read_cache_
private member variable from Serial::Serial - Fixed usage of scoped locks Previously they were getting destroyed immediately because they were not stored in a temporary scope variable
- Added check of return value from close in Serial::SerialImpl::close () in unix.cc and win.cc
- Added ability to enumerate ports on linux and windows. Updated serial_example.cc to show example of port enumeration.
- Fixed compile on VS2013
- Added functions
waitReadable
andwaitByteTimes
with implemenations for Unix to support high performance reading - Contributors: Christopher Baker, Craig Lilley, Konstantina Kastanara, Mike Purvis, William Woodall
1.1.7 (2014-02-20)
- Improved support for mingw (mxe.cc)
- Fix compilation warning See issue #53
- Improved timer handling in unix implementation
- fix broken ifdef _WIN32
- Fix broken ioctl calls, add exception handling.
- Code guards for platform-specific implementations. (when not using cmake / catkin)
- Contributors: Christopher Baker, Mike Purvis, Nicolas Bigaouette, William Woodall, dawid
1.1.6 (2013-10-17)
- Move stopbits_one_point_five to the end of the enum, so that it doesn't alias with stopbits_two.
1.1.5 (2013-09-23)
- Fix license labeling, I put BSD, but the license has always been MIT...
- Added Microsoft Visual Studio 2010 project to make compiling on Windows easier.
- Implemented Serial::available() for Windows
- Update how custom baudrates are handled on OS X This is taken from the example serial program on Apple's developer website, see: http://free-pascal-general.1045716.n5.nabble.com/Non-standard-baud-rates-in-OS-X-IOSSIOSPEED-IOCTL-td4699923.html
- Timout settings are now applied by reconfigurePort
- Pass LPCWSTR to CreateFile in Windows impl
- Use wstring for
port_
type in Windows impl
1.1.4 (2013-06-12 00:13:18 -0600)
- Timing calculation fix for read and write. Fixes #27
- Update list of exceptions thrown from constructor.
- fix, by Thomas Hoppe <<thomas.hoppe@cesys.com>> For
SerialException's:
- The name was misspelled...
- Use std::string's for error messages to prevent corruption of messages on some platforms
- alloca.h does not exist on OpenBSD either.
1.1.3 (2013-01-09 10:54:34 -0800)
- Install headers
1.1.2 (2012-12-14 14:08:55 -0800)
- Fix buildtool depends
1.1.1 (2012-12-03)
- Removed rt linking on OS X. Fixes #24.
1.1.0 (2012-10-24)
- Previous history is unstructured and therefore has been truncated. See the commit messages for more info.
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
um6 | |
um7 | |
rm_referee |
Launch files
Messages
Services
Plugins
Recent questions tagged serial at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.2.1 |
License | MIT |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/wjwwood/serial.git |
VCS Type | git |
VCS Version | 1.2.1 |
Last Updated | 2015-04-22 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- William Woodall
Authors
- William Woodall
- John Harrison
Serial Communication Library
This is a cross-platform library for interfacing with rs-232 serial like ports written in C++. It provides a modern C++ interface with a workflow designed to look and feel like PySerial, but with the speed and control provided by C++.
This library is in use in several robotics related projects and can be built and installed to the OS like most unix libraries with make and then sudo make install, but because it is a catkin project it can also be built along side other catkin projects in a catkin workspace.
Serial is a class that provides the basic interface common to serial libraries (open, close, read, write, etc..) and requires no extra dependencies. It also provides tight control over timeouts and control over handshaking lines.
Documentation
Website: http://wjwwood.github.com/serial/
API Documentation: http://wjwwood.github.com/serial/doc/1.1.0/index.html
Dependencies
- catkin - cmake and Python based buildsystem
- cmake - buildsystem
- Python - scripting language
- empy - Python templating library
- catkin_pkg - Runtime Python library for catkin
Install
Get the code:
git clone https://github.com/wjwwood/serial.git
Build:
make
Build and run the tests:
make test
Build the documentation:
make docs
Install:
make install
Uninstall:
make uninstall
License
The MIT License
Copyright (c) 2012 William Woodall, John Harrison
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Authors
William Woodall wjwwood@gmail.com John Harrison ash.gti@gmail.com
Contact
William Woodall william@osrfoundation.org
Changelog for package serial
1.2.1 (2015-04-21)
- Removed the use of a C++11 feature for compatibility with older browsers.
- Fixed an issue with cross compiling with mingw on Windows.
- Restructured Visual Studio project layout.
- Added include of
#include <AvailabilityMacros.h>
on OS X (listing of ports). - Fixed MXE for the listing of ports on Windows.
- Now closes file device if
reconfigureDevice
fails (Windows). - Added the MARK/SPACE parity bit option, also made it optional. Adding the enumeration values for MARK and SPACE was the only code change to an API header. It should not affect ABI or API.
- Added support for 576000 baud on Linux.
- Now releases iterator properly in listing of ports code for OS X.
- Fixed the ability to open COM ports over COM10 on Windows.
- Fixed up some documentation about exceptions in
serial.h
.
1.2.0 (2014-07-02)
- Removed vestigial
read_cache_
private member variable from Serial::Serial - Fixed usage of scoped locks Previously they were getting destroyed immediately because they were not stored in a temporary scope variable
- Added check of return value from close in Serial::SerialImpl::close () in unix.cc and win.cc
- Added ability to enumerate ports on linux and windows. Updated serial_example.cc to show example of port enumeration.
- Fixed compile on VS2013
- Added functions
waitReadable
andwaitByteTimes
with implemenations for Unix to support high performance reading - Contributors: Christopher Baker, Craig Lilley, Konstantina Kastanara, Mike Purvis, William Woodall
1.1.7 (2014-02-20)
- Improved support for mingw (mxe.cc)
- Fix compilation warning See issue #53
- Improved timer handling in unix implementation
- fix broken ifdef _WIN32
- Fix broken ioctl calls, add exception handling.
- Code guards for platform-specific implementations. (when not using cmake / catkin)
- Contributors: Christopher Baker, Mike Purvis, Nicolas Bigaouette, William Woodall, dawid
1.1.6 (2013-10-17)
- Move stopbits_one_point_five to the end of the enum, so that it doesn't alias with stopbits_two.
1.1.5 (2013-09-23)
- Fix license labeling, I put BSD, but the license has always been MIT...
- Added Microsoft Visual Studio 2010 project to make compiling on Windows easier.
- Implemented Serial::available() for Windows
- Update how custom baudrates are handled on OS X This is taken from the example serial program on Apple's developer website, see: http://free-pascal-general.1045716.n5.nabble.com/Non-standard-baud-rates-in-OS-X-IOSSIOSPEED-IOCTL-td4699923.html
- Timout settings are now applied by reconfigurePort
- Pass LPCWSTR to CreateFile in Windows impl
- Use wstring for
port_
type in Windows impl
1.1.4 (2013-06-12 00:13:18 -0600)
- Timing calculation fix for read and write. Fixes #27
- Update list of exceptions thrown from constructor.
- fix, by Thomas Hoppe <<thomas.hoppe@cesys.com>> For
SerialException's:
- The name was misspelled...
- Use std::string's for error messages to prevent corruption of messages on some platforms
- alloca.h does not exist on OpenBSD either.
1.1.3 (2013-01-09 10:54:34 -0800)
- Install headers
1.1.2 (2012-12-14 14:08:55 -0800)
- Fix buildtool depends
1.1.1 (2012-12-03)
- Removed rt linking on OS X. Fixes #24.
1.1.0 (2012-10-24)
- Previous history is unstructured and therefore has been truncated. See the commit messages for more info.