Comments (5)
Since the package already uses CMake why not use the standard approach:
- clone repo
- invoke cmake
- invoke make test
ament_tools
will handle it well even if it is just a plain CMake project.
from freertps.
this repo has another level of indirection due to the desire to build multiple times with different cross-compilers, and (at least, according to my current understanding) CMake only allows one declaration of the C compiler per project. At least, I couldn't figure out how to ask CMake to build with different C compilers. So what currently happens is:
- clone repo
- invoke make
- this spins through the SYSTEMS environment variable, which can have more than one target system (e.g., native-posix, stm32-whatever, etc.). For each of those, it invokes CMake separately
However, the default "make" just builds it natively, assuming it's running on a POSIX host. That is the idea for just a plain "make test" as well, to do a minimal "yes, we can send hello-world from talker to listener" simple standalone test, without any other infrastructure being required. 😀 🐔
On Fri, Jan 8, 2016 at 4:01 PM, Dirk Thomas [email protected]
wrote:
Since the package already uses CMake why not use the standard approach:
- clone repo
- invoke cmake
- invoke make test
ament_tools will handle it well even if it is just a plain CMake project.
—
Reply to this email directly or view it on GitHub
#26 (comment).
from freertps.
how about these steps
- clone repo
- invoke make (which invokes cmake under the hood, with existing machinery)
- invoke make test
- test will run; confirmation of messages getting passed will fly across the terminal
and this too
- clone repo into ROS workspace
- build with ament
- same tests will get run with
ament test
, maybe with the addition oflaunch
to automatically check console output
Also:
I like the idea of reusing the existing apps by creating a test executable that forks those processes, since code reuse is always great, but this would probably only work on POSIX; is that OK?
from freertps.
👍 that sounds like a good plan. I just fixed it now so that freertps can talk with itself finally, no matter which side is started first 😥 I'm not sure where the existing apps other than the simplest talker/listener string blasters should be moved, since they (should) be using the auto-generated ROS2 message structure and serializers. Perhaps another repo called freertps_ros2_mcu_demos
or something? The idea is that such a repo would be using freertps and the freertps ros2 message CDR stuff currently in mega_genmsg.py
to create ROS2-compatible messages without incurring the overhead of all of rclc and friends. Although of course eventually the goal is for rclc to be so small that it can be used directly on MCU's, it's always going to be larger than the super-simple, bare-bones "send an IMU message every 100ms" type of thing.
from freertps.
A related task is configuring Jenkins to do what we want once there are automated tests in place 💪 I just added the option to test a branch for the freertps project on ci.ros2.org, which is useful for my workflow since I like branches... I tested it by making a bogus branch test_jenkins
which puts trash in the CMakeLists.txt
. Predictably, the CI job for that branch failed. So I think the feature works...
http://ci.ros2.org/job/freertps/18/
from freertps.
Related Issues (20)
- cross-compile, burn, and run minimalist listener example on stm32f7-discovery board
- support multiple stm32 boards
- minimalist std_interfaces::String best-effort RTPS publisher from userland HOT 1
- sensor_Interfaces::Imu publisher for stm32f4-discovery
- std_interfaces::UInt32 subscriber for LEDs on multiple embedded boards
- rmw_freertps HOT 4
- DDS for UAV telemetry HOT 2
- support SAMV71
- ros2 demo platform HOT 2
- data writes not working in talker HOT 3
- i2c support HOT 1
- freertps compile fail "Policy CMP0057 not set" HOT 9
- make doen't work HOT 1
- SEDP for subscribers
- make build system capable of targeting both x86 and STM32
- Get Connext talking to FreeRTPS
- SEDP for publishers
- figure out double-subscribe bug HOT 5
- parse DATA messages in userland
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from freertps.