network_interface package from network_interface repo


Package Summary

Tags No category tags.
Version 3.1.0
License MIT
Build type CATKIN

Repository Summary

Checkout URI
VCS Type git
VCS Version master
Last Updated 2021-05-28
CI status No Continuous Integration
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Network interfaces and messages.

Additional Links


  • AutonomouStuff Software Development Team


  • Joshua Whitley
  • Daniel Stanek
  • Joe Kale

Platform-agnostic Network Interface API


This library was developed to allow ROS nodes to use a standardized, self-contained, platform-agnostic API for TCP and UDP communications.


Changelog for package network_interface

3.1.0 (2021-05-21)

  • Fix CMakeLists.txt include install (#40)
  • UDP Server: Don\'t send reply if zero length (#38)
  • Add stop function for terminating (#36)
  • UDP Server Class (#35)
  • Fix UDP read function, use buffer of fixed size and shrink down after receiving packet (#33)
  • Contributors: icolwell-as

3.0.0 (2021-03-03)

  • Add noetic CI builds (#31)
  • Disable docker layer caching (#30)
  • Merge pull request #26 from astuff/fix/memory_allocation Fix memory initialization of buffer vector.
  • Apply same buffer allocation fix to UDP interface.
  • Fix memory initialization of buffer vector.
  • Adding copyright to utils.cpp.
  • Moving definition of return_status_desc to fix linking bug.
  • Merge pull request #25 from astuff/maint/cpp_11_cleanup Maint/cpp 11 cleanup
  • Had to add offset to parse_tuple.
  • Moving parse_tuple from ibeo_core.
  • Allowing read functions to take multiple containers.
  • Commenting code.
  • New implementation of write_le and write_be. Tests for both.
  • Changing valueOffset to float and casting in util functions.
  • Replacing unsigned int with uint32_t.
  • Used wrong type-trait qualifier.
  • CI: Adding Melodic armhf build.
  • CI: Machine executors require sudo.
  • CI: Add first run at armhf build.
  • Changing to reinterpret_cast instead of non-portable solution.
  • Removing async calls from TCP. Allocating buffers with reserve.
  • Removing apparently useless check in write_le.
  • Consistent braced initializers.
  • -DBUILD_ROS is no longer a thing.
  • Reserving requested space in read_exactly.
  • Making ByteOrder enum scoped too.
  • Switching back to memcpy.
  • Moving common enums into common.h.
  • Scoped enum for return statuses.
  • Using vectors and type traits.
  • CI: Making roslint run in run_tests.
  • Merge pull request #20 from astuff/maint/ci_add_lint Maint/ci add lint
  • CI: Adding catkin_test_results the right way.
  • CI: Adding catkin_test_results.
  • Making lint cover all files and adding copyright.
  • CI: Need --no-deps for lint.
  • CI: Oops.
  • CI: Adding roslint to build tests.
  • Removing unused gitlabci file.
  • CI: Removing Indigo build.
  • Merge pull request #19 from astuff/maint/add_urls Adding website URL to package.xml.
  • Adding website URL to package.xml.
  • Merge pull request #18 from astuff/maint/ci_new_docker_images CI: Using AS Docker images.
  • CI: Using AS Docker images.
  • Contributors: Ian Colwell, Joshua Whitley, Rinda Gunjala, Sam Rustan, Zach Oakes

2.1.0 (2018-08-30)

  • Merge pull request #13 from astuff/maint/remove_unused_variables_in_test
  • Minor linting stuff.
  • Implementing proper dependencies for rosunit.
  • Removing unused variables in gtests.
  • Merge pull request #10 from astuff/maint/roslint
  • Removing temporary .orig files.
  • Fixing roslint suggestions.
  • Adding roslint.
  • Merge pull request #8 from astuff/fix/strict_aliasing
  • endianess check now returns bool
  • removes copying input into system endianess check
  • Adds check for system endianess This allows moving the source address start further into the stored uint64_t to properly grab the least significant bytes for putting into smaller containers.
  • changes comment on readbeint test case
  • removes unused include from debugging
  • Fixes read_be and read_le to remove aliasing issue Also adds .vscode to gitignore for VS Code users.
  • Merge pull request #6 from astuff/unit_testing
  • Adds unit tests for some methods. Corrects found issues Unit tests found issues with misinterpreting floats and doubles Modified methods and now this commit Fixes #1
  • Merge pull request #3 from KyleARectorAStuff/feature/tcp_read_timeout
  • Adding no-timeout option when the timeout_ms argument is 0 Before this commit, a timeout was used in every call TCPInterface::read or TCPInterface::read_exactly, with a default of 0 ms. After this commit, the default is set to 0 ms, and if the read or read_exactly methods receive a 0 timeout request, it will not set a deadline for the timeout, resulting in a blocking read. This allows for the TCPInterface to behave with a timeout, or else be used as it was previously.
  • Removing timeout/received flags, adding error checking in timeout handler Before this commit, the result of a read or timeout was stored in a private variable, populated by the respective callback. After this commit, the conditional statements that proviously relied on the flags instead rely on the gloabl error message\'s value. Additionally, the timeout handler has added error checking to prevent it from executing fully when the timer.cancel() method is called after a successful read.
  • Adding TCP timout to TCPInterface::read_exactly function Before this commit, the read_exactly method used a blocking read call. After this commit, the read_exactly function has a configurable timeout in milliseconds, with a default of 5 ms.
  • Parameterizing timeout value and setting default to 5 ms Before this commit, the timeout for the TCPInterface::read() method had a hard-coded timeout value of 5 ms. After this commit, the TCPInterface::read() function takes an optional parameter for the timeout, in milliseconds. This parameter defaults to 5 ms.
  • Removing while loop with io_service_.run_one() condition for correct execution Before this commit, the tcp_interface read method would constantly return a timeout error, even if data had been read properly. After this commit, the read method returns an OK status if the read was successful, or TIMEOUT or READ_FAILED depending on the failure type. In the Boost asio library, the io_service can be run continuously, or run once until an event hander has been dispatched. The return value of the run_one method was previously used as a while loop exit condition, but this resulted in the initial behavior describe above, as if the run_one method actually returned after several even handlers were dispatched, instead of just one. After removing the while loop and using the method alone, the desired behavior was achieved.
  • Initial implementation of timeout on TCP read
  • Contributors: Daniel-Stanek, Joe Kale, Joshua Whitley, Kyle Rector, Lucas Buckland, Nishanth Samala, Sam Rustan, Samuel Rustan, Zach Oakes

2.0.0 (2018-04-25)

  • Updating package.xml to format 2.
  • Re-releasing under MIT license.
  • Removing unused header.
  • Fixing type-punned pointer isssues.
  • Adding utility header.
  • Cleaning up function formatting and some const refs.
  • Adding README.
  • Removing roscpp from list of dependencies.
  • Updating repo URLs.
  • Adding Travis CI integration. Bumping version.
  • Adding is_open functions for tcp and udp.
  • Fixing license typos.
  • Standardizing interface error handling. Added additional error values BAD_PARAM and SOCKET_CLOSED. Removed ni_error_handler in favor of return_status_desc.
  • First pass at standardizing reads, writes, and error reporting in network_interface.
  • read_some on TCP was not returning the number of bytes read.
  • Changing license to GPLv3.
  • Changing message name to ROS standard format.
  • Fixing catkin_package line to include the correct directory.
  • added read_exactly message to tcp. adds size to TCPFrame
  • added tcp_interface. renamed packaged to network_interface
  • renamed package, added tcp interface, renamed header and namespace
  • Initial version
  • Contributors: Daniel Stanek, Joe Kale, Joshua Whitley

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found


No service files found


No plugins found.

Recent questions tagged network_interface at