Skip to content

Conversation

@jacobperron
Copy link
Contributor

Typesupport was previously updated in #66. This PR updates the rcljava package so that it compiles for Dashing. With this change we're am able to run the pub/sub examples in Dashing.

Updating the tests is a work-in-progress. I've discovered an issue with service code generation where not all definitions are being generated properly. I'll follow-up shortly with a fix for rosidl_generator_java and then continue updating the tests for rcljava.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>
A context represents an init/shutdown cycle and is used in the creation of top level entities
like nodes and guard conditions.

For convenience, a default context is created when rcljava is initialized.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Update wait set API calls
* Update entity creation API calls
* Use Context objects to check 'ok()' status
* Add Clock and Context members to NodeImpl
* Fix static member reference: 'this.defaultContext' -> 'RCLJava.defaultContext'

Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Otherwise we run into a runtime error about Fast-RTPS not supporting liveliness.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Load with JNIUtils
* Rename native create method for consistency
* Fix bug in native implementation

Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Use Context.ok() and deprecate RCLJava.isInitialized().
* Move implementation loading to static initialization code.
  Otherwise, calls to getDefaultContext() fail if called before rclJavaInit().
  It wasn't clear to me why the implementation should be loaded in a separate function call.
  We can probably refactor the code to avoid the error if we want to move the loading back
  into rclJavaInit().
* Refactor test into one init/shutdown test. Previously, not calling RCLJava.shutdown()
  was leaving a context around between tests.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Tests that involve services are broken due to issues related to interface generation.
There's a separate PR for a fix: #76.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>
@esteve
Copy link
Member

esteve commented Feb 11, 2020

@jacobperron thanks!

@esteve esteve merged commit eceb431 into dashing Feb 11, 2020
@jacobperron jacobperron deleted the rcljava_dashing branch February 11, 2020 17:19
jacobperron added a commit that referenced this pull request May 17, 2021
* Update API for getting rcl error string

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Add implementation for ROS Context

A context represents an init/shutdown cycle and is used in the creation of top level entities
like nodes and guard conditions.

For convenience, a default context is created when rcljava is initialized.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Add implementation for Clock

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Update for Dashing support

* Update wait set API calls
* Update entity creation API calls
* Use Context objects to check 'ok()' status
* Add Clock and Context members to NodeImpl
* Fix static member reference: 'this.defaultContext' -> 'RCLJava.defaultContext'

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Avoid hiding errors when cleaning up init options

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Disable tests

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix typos in JNI library files

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix native node method signature

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Populate missing QoS settings with defaults

Otherwise we run into a runtime error about Fast-RTPS not supporting liveliness.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix issues with Clock class

* Load with JNIUtils
* Rename native create method for consistency
* Fix bug in native implementation

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Enable linter tests

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix lint errors

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Enable RCLJava test and fix bugs

* Use Context.ok() and deprecate RCLJava.isInitialized().
* Move implementation loading to static initialization code.
  Otherwise, calls to getDefaultContext() fail if called before rclJavaInit().
  It wasn't clear to me why the implementation should be loaded in a separate function call.
  We can probably refactor the code to avoid the error if we want to move the loading back
  into rclJavaInit().
* Refactor test into one init/shutdown test. Previously, not calling RCLJava.shutdown()
  was leaving a context around between tests.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix NodeTest

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Enable most tests

Tests that involve services are broken due to issues related to interface generation.
There's a separate PR for a fix: #76.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>
jacobperron added a commit that referenced this pull request May 17, 2021
* Update API for getting rcl error string

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Add implementation for ROS Context

A context represents an init/shutdown cycle and is used in the creation of top level entities
like nodes and guard conditions.

For convenience, a default context is created when rcljava is initialized.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Add implementation for Clock

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Update for Dashing support

* Update wait set API calls
* Update entity creation API calls
* Use Context objects to check 'ok()' status
* Add Clock and Context members to NodeImpl
* Fix static member reference: 'this.defaultContext' -> 'RCLJava.defaultContext'

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Avoid hiding errors when cleaning up init options

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Disable tests

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix typos in JNI library files

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix native node method signature

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Populate missing QoS settings with defaults

Otherwise we run into a runtime error about Fast-RTPS not supporting liveliness.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix issues with Clock class

* Load with JNIUtils
* Rename native create method for consistency
* Fix bug in native implementation

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Enable linter tests

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix lint errors

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Enable RCLJava test and fix bugs

* Use Context.ok() and deprecate RCLJava.isInitialized().
* Move implementation loading to static initialization code.
  Otherwise, calls to getDefaultContext() fail if called before rclJavaInit().
  It wasn't clear to me why the implementation should be loaded in a separate function call.
  We can probably refactor the code to avoid the error if we want to move the loading back
  into rclJavaInit().
* Refactor test into one init/shutdown test. Previously, not calling RCLJava.shutdown()
  was leaving a context around between tests.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix NodeTest

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Enable most tests

Tests that involve services are broken due to issues related to interface generation.
There's a separate PR for a fix: #76.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>
ivanpauno added a commit that referenced this pull request Oct 28, 2021
* Cleanup service/client creation code

Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>

* Add methods to create a parameter client in Node

Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants