Repository Summary

Checkout URI https://github.com/ros-naoqi/libqi.git
VCS Type git
VCS Version ros2
Last Updated 2022-09-10
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)

Packages

Name Version
naoqi_libqi 2.9.7

README

naoqi_libqi

This fork is used to define the naoqi_libqi ROS2 package, based on 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 naoqi_libqi, clone this repository in a ROS2 workspace and use the colcon build command.

Please note that you should checkout the branch corresponding to your ROS distro (eg. galactic-devel for Galactic, foxy-devel for Foxy, etc...)

Status

The project can currently be successfully built for Galactic (focal) and Foxy (focal) from source. Please refer to the build workflow for more information. The package binary status column details wether the package has been released for a specific distro.

ROS Distro Binary Status Source Status Github Build
Humble ros2-humble-jammy
Galactic Build Status Build Status ros2-galactic-focal
Foxy Build Status Build Status ros2-foxy-focal

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/ros-naoqi/libqi.git
VCS Type git
VCS Version ros2
Last Updated 2022-09-10
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)

Packages

Name Version
naoqi_libqi 2.9.7

README

naoqi_libqi

This fork is used to define the naoqi_libqi ROS2 package, based on 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 naoqi_libqi, clone this repository in a ROS2 workspace and use the colcon build command.

Please note that you should checkout the branch corresponding to your ROS distro (eg. galactic-devel for Galactic, foxy-devel for Foxy, etc...)

Status

The project can currently be successfully built for Galactic (focal) and Foxy (focal) from source. Please refer to the build workflow for more information. The package binary status column details wether the package has been released for a specific distro.

ROS Distro Binary Status Source Status Github Build
Humble ros2-humble-jammy
Galactic Build Status Build Status ros2-galactic-focal
Foxy Build Status Build Status ros2-foxy-focal

CONTRIBUTING

No CONTRIBUTING.md found.

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)

Packages

Name Version

README

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

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/ros-naoqi/libqi.git
VCS Type git
VCS Version v1.11.0-melodic
Last Updated 2021-12-12
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
naoqi_libqi 2.9.7

README

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

CONTRIBUTING

No CONTRIBUTING.md found.