https://github.com/ami-iit/serial_cpp

Friendly mantained fork of https://github.com/wjwwood/serial .

https://github.com/ami-iit/serial_cpp

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    2 of 46 committers (4.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.4%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Friendly mantained fork of https://github.com/wjwwood/serial .

Basic Info
  • Host: GitHub
  • Owner: ami-iit
  • License: mit
  • Language: C++
  • Default Branch: main
  • Size: 659 KB
Statistics
  • Stars: 9
  • Watchers: 7
  • Forks: 1
  • Open Issues: 3
  • Releases: 4
Created over 1 year ago · Last pushed 11 months ago
Metadata Files
Readme Changelog License

README.md

serial_cpp 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++.

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.

serial_cpp started as a friendly fork wjwwood/serial, see https://github.com/wjwwood/serial/issues/312 for more details.

[!NOTE] Most projects in the ami-iit use the dash (-) as a separator inside names. This repo makes an exception as it is a derivation of a project originally started in the ROS community, where the use of underscore (_) is tipically used, and so the original mantainer asked to keep an underscore, see https://github.com/wjwwood/serial/issues/312#issuecomment-2773775993 .

Dependencies

Required: * C++ compiler * cmake - buildsystem

Optional (for documentation): * Doxygen - Documentation generation tool * graphviz - Graph visualization software

Example

An example of usage of the library is provided in ./examples/serial_cpp_example.cxx

Usage when compiling from source and installing

First compile the project:

~~~bash git clone https://github.com/ami-iit/serialcpp.git cd serialcpp cmake -DCMAKEBUILDTYPE=Release -Bbuild -S. -DCMAKEINSTALLPREFIX= cmake --build build cmake --install build ~~~

then, add the following CMake code in your CMake project, where <target> is the library or executable that requires serial_cpp:

~~~cmake findpackage(serialcpp REQUIRED)

targetlinklibraries( PRIVATE serialcpp::serialcpp) ~~~

Usage with CMake's FetchContent

If you only need to use serial_cpp inside a given CMake project, it make sense to include it via the CMake's FetchContent module:

~~~cmake include(FetchContent) FetchContentDeclare( serialcpp GITREPOSITORY https://github.com/ami-iit/serialcpp.git GIT_TAG v1.3.4 # or use the tag or commit you prefer )

FetchContentMakeAvailable(serialcpp)

targetlinklibraries( PRIVATE serialcpp::serialcpp) ~~~

Development commands

serial_cpp is a pure C++ project that can be installed on any system, as long as CMake is available. However, we use pixi to simplify development, to run the tests (the same run in CI) in pixi, run:

~~~ git clone https://github.com/ami-iit/serial_cpp.git pixi run test ~~~

Migration from wjwwood/serial

The serial_cpp library started as a friendly fork of the wjwwood/serial. To migrate a project from wjwwood/serial to serial_cpp, the following modifications are needed:

  • Change the #include <serial/serial.h> inclusion to #include <serial_cpp/serial.h>
  • Change all serial:: namespace to serial_cpp::

Alternatively, in case you do not want to modify all your code from serial:: namespace to serial_cpp::, a compatibility header is provided, so that you can simply do the following:

  • Change the #include <serial/serial.h> inclusion to #include <serial_cpp/serial_compat.h>

License

The MIT License

Mantainers

Authors

Owner

  • Name: Artificial and Mechanical Intelligence
  • Login: ami-iit
  • Kind: organization
  • Location: Italy

GitHub Events

Total
  • Create event: 12
  • Release event: 4
  • Issues event: 2
  • Watch event: 11
  • Delete event: 1
  • Issue comment event: 7
  • Public event: 1
  • Push event: 16
  • Pull request review event: 2
  • Pull request event: 15
  • Fork event: 1
Last Year
  • Create event: 12
  • Release event: 4
  • Issues event: 2
  • Watch event: 11
  • Delete event: 1
  • Issue comment event: 7
  • Public event: 1
  • Push event: 16
  • Pull request review event: 2
  • Pull request event: 15
  • Fork event: 1

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 323
  • Total Committers: 46
  • Avg Commits per committer: 7.022
  • Development Distribution Score (DDS): 0.399
Past Year
  • Commits: 9
  • Committers: 2
  • Avg Commits per committer: 4.5
  • Development Distribution Score (DDS): 0.111
Top Committers
Name Email Commits
William Woodall w****d@g****m 194
John Harrison a****h@g****m 31
Mike Purvis m****s@c****m 19
Christopher Baker me@c****t 10
Silvio Traversaro s****o@t****t 8
Linquize l****e@y****k 7
Craig Lilley c****y@g****m 5
David Hodo d****o@g****m 3
Konstantina Kastanara k****a@g****m 3
Nicolas Bigaouette n****e@r****m 2
Ben Moyer b****r@g****m 2
Patrick O'Leary p****y@g****m 2
aleksey-sergey s****0@g****m 2
daniser d****r@m****u 2
Dawid Piotrowski d****d@a****l 2
Brandon Morton b****n@v****u 1
Atomie CHEN a****h@1****m 1
Anthony J. Bentley a****y@c****s 1
Alexander Bulychev a****v@g****m 1
David Hodo d****o@i****m 1
Rami r****a@j****m 1
Scott Martin s****8@G****) 1
William Woodall w****m@u****) 1
natem345 m****t@r****u 1
dontsovcmc d****e@m****u 1
bsbaliga 4****a 1
achronop a****p@g****m 1
William Hilton w****n@g****m 1
Vladimir Gamalian v****n 1
Tomaz Solc t****c@t****g 1
and 16 more...

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 2
  • Total pull requests: 7
  • Average time to close issues: N/A
  • Average time to close pull requests: 7 minutes
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 7
  • Average time to close issues: N/A
  • Average time to close pull requests: 7 minutes
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • traversaro (2)
Pull Request Authors
  • traversaro (10)
  • akshaybabloo (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/test-pixi.yaml actions
  • actions/checkout v4 composite
  • prefix-dev/setup-pixi v0.8.1 composite