No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.

package from naoqi_libqi repo

Package Summary

Tags No category tags.
Version
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-naoqi/libqi.git
VCS Type git
VCS Version master
Last Updated 2021-09-15
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

No additional links.

Maintainers

No known maintainers.

Authors

No additional authors.

libqi

libqi is a middle-ware framework that provides RPC, type-erasure, cross-language interoperability, OS abstractions, logging facilities, asynchronous task management, dynamic module loading.

Compilation

To compile libqi you need qibuild which give some cmake functions used in libqi\'s CMakeLists.txt.

pip2 install --user qibuild

git clone git@github.com:aldebaran/libqi.git
cd libqi

mkdir BUILD && cd BUILD
cmake .. -DQI_WITH_TESTS=OFF
make
make install DESTDIR=./output

Example

The following example shows some features of the framework, please refer to the documentation for further details.

#include <boost/make_shared.hpp>
#include <qi/log.hpp>
#include <qi/applicationsession.hpp>
#include <qi/anyobject.hpp>

qiLogCategory("myapplication");

class MyService
{
public:
  void myFunction(int val) {
    qiLogInfo() << "myFunction called with " << val;
  }
  qi::Signal<int> eventTriggered;
  qi::Property<float> angle;
};

// register the service to the type-system
QI_REGISTER_OBJECT(MyService, myFunction, eventTriggered, angle);

void print()
{
  qiLogInfo() << "print was called";
}

int main(int argc, char* argv[])
{
  qi::ApplicationSession app(argc, argv);

  // connect the session included in the app
  app.start();

  qi::SessionPtr session = app.session();

  // register our service
  session->registerService("MyService", boost::make_shared<MyService>());

  // get our service through the middleware
  qi::AnyObject obj = session->service("MyService");

  // call myFunction
  obj.call<void>("myFunction", 42);

  // call print in 2 seconds
  qi::async(&print, qi::Seconds(2));

  // block until ctrl-c
  app.run();
}

You can then run the program with:

./myservice --qi-standalone # for a standalone server
./myservice --qi-url tcp://somemachine:9559 # to connect to another galaxy of sessions

git repository: http://github.com/aldebaran/libqi

Documentation: http://doc.aldebaran.com/libqi/

IRC Channel: #qi on freenode.

Maintainers:

  • Jo
CHANGELOG

libqi Change Log

libqi 2.0.0

This release provides a few fixes. Particularly, on OS using systemd, when compiling with the WITH_SYSTEMD flag, it fixes localhost communication issues due to the qi-messaging's machine-id implementation. Compatibility breakage on OS using systemd: The behavior change when WITH_SYSTEMD is defined at compile time, makes it incompatible with older versions of libqi running on the same machine, when localhost is the only available endpoint. This change shall be considered a qi-messaging protocol breakage.

libqi 1.8.7

This release mainly ports the tests on GoogleTest 1.10.0, and improves the compatibility with more recent versions of boost.

libqi 1.8.6

This release aims to improve security and reliability.

libqi 1.8.3

This release aims to improve TLS connection security (#45843) and to fix a connection backward compatibility issue (#45842).

libqi 1.8.2

This release focuses on fixing a blocking issue on the service directory proxy (mirroring) (#45483).

libqi 1.8.1

This release focuses on enabling remote access to service gateways on a machine hidden behind another, by adding NAT support.

libqi 1.8.0

This release focuses on improving security. Particularly, libqi now requires TLS 1.2 on server side.

libqi 1.7.2

This release focuses on improving reliability of libqi client side.

libqi 1.7.0

This release focuses on improving reliability and memory consumption. It includes fixes to libqi.

Notice that this release introduces a small API breakage by changing qi::Signal<T> and qi::Property<T> to be no more a boost::function<T>. However qi::SignalF<T> still can be converted to boost::function<T> implicitely.

libqi 1.6.15

This release focuses on improving security and fixes some gateway crashes.

libqi 1.6.14

This release fixes a few qi-messaging issues.

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged at Robotics Stack Exchange

No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.