Giter Club home page Giter Club logo

libqi's People

Contributors

alkino avatar blastrock avatar cgestes avatar ckilner avatar clemolgat-sbr avatar dmerejkowsky avatar goreal avatar gschweitzer-aldebaran avatar gstavrinos avatar hcuche avatar houssemkouki avatar jlanca avatar jmassot avatar klaim avatar llec avatar lpea avatar nyibbang avatar pmartin-sbre avatar rhumbert avatar rom1v avatar sbarthelemy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libqi's Issues

Compilation fails with boost-1.58

Compilation fails with the following error:

/libqi/src/eventloop.cpp:355:16: error: call to 'bind' is ambiguous
      _io.post(boost::bind<void>(&EventLoopAsio::invoke_maybe, this, cb, id, p, erc));
               ^~~~~~~~~~~~~~~~~
/usr/include/boost/bind/bind_mf_cc.hpp:201:5: note: candidate function [with R = void, T = qi::EventLoopAsio, B1 = boost::function<void ()>, B2 = unsigned int, B3 = qi::Promise<void>, B4 =
      const boost::system::error_code &, A1 = qi::EventLoopAsio *, A2 = boost::function<void ()>, A3 = unsigned int, A4 = qi::Promise<void>, A5 = boost::system::error_code]
    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
    ^
/usr/include/boost/bind/bind.hpp:1579:20: note: expanded from macro 'BOOST_BIND'
#define BOOST_BIND bind
                   ^
/usr/include/boost/bind/bind_mf_cc.hpp:223:5: note: candidate function [with Rt2 = void, R = void, T = qi::EventLoopAsio, B1 = boost::function<void ()>, B2 = unsigned int, B3 =
      qi::Promise<void>, B4 = const boost::system::error_code &, A1 = qi::EventLoopAsio *, A2 = boost::function<void ()>, A3 = unsigned int, A4 = qi::Promise<void>, A5 =
      boost::system::error_code]
    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
    ^
/usr/include/boost/bind/bind.hpp:1579:20: note: expanded from macro 'BOOST_BIND'
#define BOOST_BIND bind
                   ^
/usr/include/boost/bind/bind.hpp:1626:5: note: candidate function [with R = void, F = void (qi::EventLoopAsio::*)(boost::function<void ()>, unsigned int, qi::Promise<void>, const
      boost::system::error_code &), A1 = qi::EventLoopAsio *, A2 = boost::function<void ()>, A3 = unsigned int, A4 = qi::Promise<void>, A5 = boost::system::error_code]
    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
    ^
/usr/include/boost/bind/bind.hpp:1579:20: note: expanded from macro 'BOOST_BIND'
#define BOOST_BIND bind
                   ^

Tried on ubuntu 16.04 with both gcc-5.3.1 and clang-3.8.

Trying to port NAOqi SDK example to libqi

I want to port the following code found in the NAOqi Python SDK examples here:
http://doc.aldebaran.com/2-4/naoqi/vision/alphotocapture-tuto.html#alphotocapture-tuto

Please help me with the syntax.

The Python SDK code is:


#This test demonstrates how to use the ALPhotoCapture module.
#Note that you might not have this module depending on your distribution
import os
import sys
import time
from naoqi import ALProxy

#Replace this with your robot's IP address
IP = "10.0.252.91"
PORT = 9559

#Create a proxy to ALPhotoCapture
try:
photoCaptureProxy = ALProxy("ALPhotoCapture", IP, PORT)
except Exception, e:
print "Error when creating ALPhotoCapture proxy:"
print str(e)
exit(1)

#Take 3 pictures in VGA and store them in /home/nao/recordings/cameras/
photoCaptureProxy.setResolution(2)
photoCaptureProxy.setPictureFormat("jpg")
photoCaptureProxy.takePictures(3, "/home/nao/recordings/cameras/", "image")

#This call returns ['/home/nao/recordings/cameras/image_0.jpg', '/home/nao/recordings/cameras/image_1.jpg', '/home/nao/recordings/cameras/image_2.jpg']


My attempt is here:


#include <qi/applicationsession.hpp>
#include <qi/eventloop.hpp>

int main(int argc, char** argv)
{
qi::ApplicationSession app(argc, argv);
app.start();
qi::SessionPtr session = app.session();
qi::AnyObject photo_capture_service = session->service("ALPhotoCapture");
photo_capture_service.async("setResolution", 2);
photo_capture_service.async("setPictureFormat", "jpg");
photo_capture_service.async("takePictures", 3, "/home/nao/recordings/cameras/", "image");
}


Here are the errors I get:
main.cpp:16:48: error: no matching function for call to ‘qi::Objectqi::Empty::async(const char [14], int)’ photo_capture_service.async("setResolution", 2);
main.cpp:17:55: error: no matching function for call to ‘qi::Objectqi::Empty::async(const char [17], const char [4])’ photo_capture_service.async("setPictureFormat", "jpg");
main.cpp:18:89: error: no matching function for call to ‘qi::Objectqi::Empty::async(const char [13], int, const char [30], const char [6])’ photo_capture_service.async("takePictures", 3, "/home/nao/recordings/cameras/", "image");

Recompiling C++ NAO SDK for VS2015?

I know that this might be really really bad place to ask this, but I've been trying to figure out how to do this for several hours now and only thing I stumbled upon was this; https://community.ald.softbankrobotics.com/en/forum/visual-studio-2015-and-c-sdk-6663

therefore I came here for help...

I need to recompile the C++ SDK for NAO so that I can use it with Visual Studio 2015 (yes, it really is necessary and no I can't use 2010), however as I do not have that much experience with libraries and I see no CMake list or anything that I could use to recompile it I have no idea what to do now

I have installed qibuild, downloaded libqi and C++ NAO SDK, please for heaven's sake could someone help me recompile this? what do I need? where do I look? I'm kinda desperate here, all I need is to use C++ library with visual studio 2015

Possible bug in version 2.4...

So I was cleaning up all the warnings in release 2.4 and ran across the following warning:
1>c:\work\ibm\self\lib\libqi\src\type\anyreference.cpp(404): warning C4800: 'unsigned int': forcing value to bool 'true' or 'false' (performance warning)

Looking at the code, there seems to be an error here on this line:
mustDestroy.assign(false, mustDestroy.size());

In std::vector::assign, the first argument is the size, the 2nd argument is the value to assign into the vector. I think the author intended to do this instead:

  mustDestroy.assign( mustDestroy.size(), false );

This does fix the warning... However, I'm unsure about the intent .. do we want the Cleanup() object to delete the objects or not.

Compiling libqi with Visual Studio 2015...

So, i've almost got libqi building under Visual Studio 2015... I'm down to one last compile error, just wondering if you've seen this issue before:

------ Build started: Project: libqi, Configuration: Debug Win32 ------
1> eventloop.cpp
1>c:\work\ibm\self\lib\libqi\src\eventloop.cpp(324): error C2672: 'boost::chrono::duration_cast': no matching overloaded function found
1>c:\work\ibm\self\lib\libqi\src\eventloop.cpp(324): error C2770: invalid explicit template argument(s) for 'boost::enable_ifboost::chrono::detail::is_duration<T,ToDuration>::type boost::chrono::duration_cast(const boost::chrono::duration<Rep2,Period> &)'
1> c:\work\ibm\self\lib\boost_1_60_0\boost\chrono\duration.hpp(786): note: see declaration of 'boost::chrono::duration_cast'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

I'm compiling with the latest version of Boost - 1.60.0

Cannot import python naoqi library after upgrading Ubuntu 14.04 to 16.04

I have recently upgraded the system to 16.04 Gnome. The most troubling thing that I am facing is that I cannot import a NAOqi library for my work. The python version of this library was pretty simple to set-up. One just has to untar the file and then enter a path variable called PYTHONPATH pointing to this library and it worked like a charm in 14.04. Now since upgrade I am facing:

Python 2.7.12 (default, Jul  1 2016, 15:12:24) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
 import naoqi
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/dell/nao_sdk/pynaoqi/naoqi.py", line 7, in <module>
    import qi
  File "/home/dell/nao_sdk/pynaoqi/qi/__init__.py", line 72, in <module>
    from _qi import Application as _Application
ImportError: libqipython.so: cannot open shared object file: No such file or directory

If I add a path variable:
export LD_LIBRARY_PATH=:/home/dell/nao_sdk/pynaoqi/
The error changes to:

Python 2.7.12 (default, Jul  1 2016, 15:12:24) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import naoqi
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/dell/nao_sdk/pynaoqi/naoqi.py", line 7, in <module>
    import qi
  File "/home/dell/nao_sdk/pynaoqi/qi/__init__.py", line 72, in <module>
    from _qi import Application as _Application
ImportError: libboost_regex.so.1.55.0: cannot open shared object file: No such file or directory

Please help me what should I do to get it working? I have also used python 2.6.9 but same error occurs with error below.

ImportError: libboost_python.so.1.55.0: cannot open shared object file: No such file or directory

things to clarify in README

I believe the following could be improved:

  • instructions on how to build (or at least a link to qibuild).
  • details on which OS / libraries / languages are supported / not supported and with which versions.
  • I don't think the maintainers listed there read their emails anymore.
  • the mailing list is the one for qibuild, is that normal ?
  • links to who's using it, connected projects (libqicore), bindings

Problem regarding the language compatibilty in Choregraphe project

My Pepper currently have one Project which supports both language English and German. But Now one new Project which I tried to run in Pepper, Support only English but it doesn't work and gives me the below error. I tried to add German language by going to porject properties but it still gives same error.

Any Kind of help will be appreciated.

[ERROR] audio.alspeechrecognition :xTryTriggerSignsAndFeedback:0 Didn't trigger ExpressiveBit BeginSpeechRecognitionEyes: Cannot find service 'ALSignsAndFeedback' in index
[ERROR] behavior.translator :load:0 Fail to load translation for '/home/nao/.local/share/PackageManager/apps/.lastUploadedChoregrapheBehavior' lang 'de_DE'

Thank you very much for your Kind support

Error while loading shared libraries: libopencv_imgproc.so

I've wrote my own module, using openCV and qitoolchain to linux-sdk. And after running executable file I always receive such error:

./build-linux-sdk/sdk/bin/remotevision: error while loading shared libraries: libopencv_imgproc.so.3.1: cannot open shared object file: No such file or directory
Makefile:25: recipe for target 'run' failed
make: *** [run] Error 127

Please help me. I've been searching for solutions several days

Error on compile (pepper)

Hi all,

I am trying to compile Libqi on the Pepper (I have a gentoo environment), and I am getting the following error when trying to compile.

Any thoughts on what is going on?

I should say, I am only going down this route because for some reason, when I try to install qi via python, I get a segmentation fault whenever I import the library. So if either of those two issues finds a solution, it would be fine.

nao@pepper-robot ~/libqi $ mkdir BUILD && cd BUILD
nao@pepper-robot ~/libqi/BUILD $ cmake .. -DQI_WITH_TESTS=OFF
-- The C compiler identification is GNU 9.2.0
-- The CXX compiler identification is GNU 9.2.0
-- Check for working C compiler: /tmp/gentoo/usr/bin/cc
-- Check for working C compiler: /tmp/gentoo/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /tmp/gentoo/usr/bin/c++
-- Check for working CXX compiler: /tmp/gentoo/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using qibuild 3.14.1
-- Looking for _SC_HOST_NAME_MAX
-- Looking for _SC_HOST_NAME_MAX - found
-- Library: qi
-- Binary: qipath_example
-- Binary: sharedlibrary_example
-- Binary: log_example
-- Binary: buffer_example
-- Binary: qiconvloc_example
-- Using qibuild 3.14.1
-- Binary: test_translate
-- Using qibuild 3.14.1
-- Module: foo
-- Binary: footest
-- Library: qitestutils
-- Library: testsession
-- Configuring done
-- Generating done
-- Build files have been written to: /home/nao/libqi/BUILD
nao@pepper-robot ~/libqi/BUILD $ make
make[1]: Entering directory '/data/home/nao/libqi/BUILD'
make[2]: Entering directory '/data/home/nao/libqi/BUILD'
Scanning dependencies of target qi
make[2]: Leaving directory '/data/home/nao/libqi/BUILD'
make[2]: Entering directory '/data/home/nao/libqi/BUILD'
[  1%] Building CXX object CMakeFiles/qi.dir/src/dlfcn.cpp.o
[  2%] Building CXX object CMakeFiles/qi.dir/src/path.cpp.o
[  3%] Building CXX object CMakeFiles/qi.dir/src/application.cpp.o
[  4%] Building CXX object CMakeFiles/qi.dir/src/buffer.cpp.o
[  5%] Building CXX object CMakeFiles/qi.dir/src/bufferreader.cpp.o
[  6%] Building CXX object CMakeFiles/qi.dir/src/clock.cpp.o
[  7%] Building CXX object CMakeFiles/qi.dir/src/future.cpp.o
In file included from /home/nao/libqi/qi/anyfunction.hpp:295,
                 from /home/nao/libqi/qi/type/detail/listtypeinterface.hxx:14,
                 from /home/nao/libqi/qi/type/typeinterface.hpp:435,
                 from /home/nao/libqi/qi/type/detail/anyreference.hpp:564,
                 from /home/nao/libqi/qi/type/detail/futureadapter.hpp:10,
                 from /home/nao/libqi/qi/detail/future.hxx:17,
                 from /home/nao/libqi/qi/future.hpp:8,
                 from /home/nao/libqi/src/future.cpp:5:
/home/nao/libqi/qi/type/detail/anyfunctionfactory.hxx:77:61: error: 'is_fundamental' in namespace 'boost' does not name a template type
   77 |       using type = typename boost::mpl::if_<typename boost::is_fundamental<T>::type, void*, T>::type;
      |                                                             ^~~~~~~~~~~~~~
/home/nao/libqi/qi/type/detail/anyfunctionfactory.hxx:77:75: error: expected template-argument before '<' token
   77 |       using type = typename boost::mpl::if_<typename boost::is_fundamental<T>::type, void*, T>::type;
      |                                                                           ^
/home/nao/libqi/qi/type/detail/anyfunctionfactory.hxx:77:75: error: expected '>' before '<' token
/home/nao/libqi/qi/type/detail/anyfunctionfactory.hxx:77:94: error: template argument 1 is invalid
   77 |       using type = typename boost::mpl::if_<typename boost::is_fundamental<T>::type, void*, T>::type;
      |                                                                                              ^
/home/nao/libqi/qi/type/detail/anyfunctionfactory.hxx:78:63: error: 'is_fundamental' in namespace 'boost' does not name a template type
   78 |       using rType =  typename boost::mpl::if_<typename boost::is_fundamental<T>::type, void*, T>::type;
      |                                                               ^~~~~~~~~~~~~~
/home/nao/libqi/qi/type/detail/anyfunctionfactory.hxx:78:77: error: expected template-argument before '<' token
   78 |       using rType =  typename boost::mpl::if_<typename boost::is_fundamental<T>::type, void*, T>::type;
      |                                                                             ^
/home/nao/libqi/qi/type/detail/anyfunctionfactory.hxx:78:77: error: expected '>' before '<' token
/home/nao/libqi/qi/type/detail/anyfunctionfactory.hxx:78:96: error: template argument 1 is invalid
   78 |       using rType =  typename boost::mpl::if_<typename boost::is_fundamental<T>::type, void*, T>::type;
      |                                                                                                ^
make[2]: *** [CMakeFiles/qi.dir/build.make:141: CMakeFiles/qi.dir/src/future.cpp.o] Error 1
make[2]: Leaving directory '/data/home/nao/libqi/BUILD'
make[1]: *** [CMakeFiles/Makefile2:311: CMakeFiles/qi.dir/all] Error 2
make[1]: Leaving directory '/data/home/nao/libqi/BUILD'
make: *** [Makefile:130: all] Error 2

Failing compilation on Ubuntu 20.04.2 LTS

Trying to build libQi directly with no toolchain, on Ubuntu 20.04.2 LTS, leads to the following error:

~/Code/qi/libqi on  release-2.9 ⌚ 12:08:52
$ qm -j1
Current build worktree: /home/victor.paleologue/Code/qi
* (1/1) Building libqi in RelWithDebInfo
-- Using qibuild 3.16
-- Library: qi
-- Binary: qipath_example
-- Binary: sharedlibrary_example
-- Binary: log_example
-- Binary: buffer_example
-- Binary: qiconvloc_example
-- Using qibuild 3.16
-- Binary: test_translate
-- Using qibuild 3.16
-- Module: foo
-- Binary: footest
-- Library: qitestutils
-- Library: testsession
-- Configuring done
-- Generating done
-- Build files have been written to: /home/victor.paleologue/Code/qi/libqi/build-sys-linux-x86_64
Scanning dependencies of target qi
[  1%] Building CXX object CMakeFiles/qi.dir/src/dlfcn.cpp.o
[  2%] Building CXX object CMakeFiles/qi.dir/src/path.cpp.o
[  3%] Building CXX object CMakeFiles/qi.dir/src/application.cpp.o
[  4%] Building CXX object CMakeFiles/qi.dir/src/buffer.cpp.o
[  5%] Building CXX object CMakeFiles/qi.dir/src/bufferreader.cpp.o
[  6%] Building CXX object CMakeFiles/qi.dir/src/clock.cpp.o
[  6%] Building CXX object CMakeFiles/qi.dir/src/future.cpp.o
In file included from /home/victor.paleologue/Code/qi/libqi/qi/anyfunction.hpp:295,
                 from /home/victor.paleologue/Code/qi/libqi/qi/type/detail/listtypeinterface.hxx:14,
                 from /home/victor.paleologue/Code/qi/libqi/qi/type/typeinterface.hpp:435,
                 from /home/victor.paleologue/Code/qi/libqi/qi/type/detail/anyreference.hpp:564,
                 from /home/victor.paleologue/Code/qi/libqi/qi/type/detail/futureadapter.hpp:10,
                 from /home/victor.paleologue/Code/qi/libqi/qi/detail/future.hxx:17,
                 from /home/victor.paleologue/Code/qi/libqi/qi/future.hpp:8,
                 from /home/victor.paleologue/Code/qi/libqi/src/future.cpp:5:
/home/victor.paleologue/Code/qi/libqi/qi/type/detail/anyfunctionfactory.hxx:77:61: error: ‘is_fundamental’ in namespace ‘boost’ does not name a template type
   77 |       using type = typename boost::mpl::if_<typename boost::is_fundamental<T>::type, void*, T>::type;
      |                                                             ^~~~~~~~~~~~~~
/home/victor.paleologue/Code/qi/libqi/qi/type/detail/anyfunctionfactory.hxx:77:75: error: expected template-argument before ‘<’ token
   77 |       using type = typename boost::mpl::if_<typename boost::is_fundamental<T>::type, void*, T>::type;
      |                                                                           ^
/home/victor.paleologue/Code/qi/libqi/qi/type/detail/anyfunctionfactory.hxx:77:75: error: expected ‘>’ before ‘<’ token
/home/victor.paleologue/Code/qi/libqi/qi/type/detail/anyfunctionfactory.hxx:77:94: error: template argument 1 is invalid
   77 | sing type = typename boost::mpl::if_<typename boost::is_fundamental<T>::type, void*, T>::type;
      |                                                                                       ^

/home/victor.paleologue/Code/qi/libqi/qi/type/detail/anyfunctionfactory.hxx:78:63: error: ‘is_fundamental’ in namespace ‘boost’ does not name a template type
   78 |       using rType =  typename boost::mpl::if_<typename boost::is_fundamental<T>::type, void*, T>::type;
      |                                                               ^~~~~~~~~~~~~~
/home/victor.paleologue/Code/qi/libqi/qi/type/detail/anyfunctionfactory.hxx:78:77: error: expected template-argument before ‘<’ token
   78 |       using rType =  typename boost::mpl::if_<typename boost::is_fundamental<T>::type, void*, T>::type;
      |                                                                             ^
/home/victor.paleologue/Code/qi/libqi/qi/type/detail/anyfunctionfactory.hxx:78:77: error: expected ‘>’ before ‘<’ token
/home/victor.paleologue/Code/qi/libqi/qi/type/detail/anyfunctionfactory.hxx:78:96: error: template argument 1 is invalid
   78 | ng rType =  typename boost::mpl::if_<typename boost::is_fundamental<T>::type, void*, T>::type;
      |                                                                                       ^

make[2]: *** [CMakeFiles/qi.dir/build.make:158: CMakeFiles/qi.dir/src/future.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:328: CMakeFiles/qi.dir/all] Error 2
make: *** [Makefile:147: all] Error 2
[ERROR]: BuildFailed Error occurred when building project libqi
Traceback (most recent call last):
  File "/home/victor.paleologue/.local/lib/python3.8/site-packages/qibuild/project.py", line 402, in build
    qisys.command.call(cmd, env=build_env_str)
  File "/home/victor.paleologue/.local/lib/python3.8/site-packages/qisys/command.py", line 553, in call
    raise CommandFailedException(cmd, returncode, cwd)
qisys.command.CommandFailedException: The following command failed
['/usr/local/bin/cmake', '--build', '/home/victor.paleologue/Code/qi/libqi/build-sys-linux-x86_64', '--config', 'RelWithDebInfo', '--', '-j', '1']
Return code is 2
Working dir was /home/victor.paleologue/Code/qi/libqi


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/victor.paleologue/.local/lib/python3.8/site-packages/qisys/script.py", line 139, in main_wrapper
    module.do(args)
  File "/home/victor.paleologue/.local/lib/python3.8/site-packages/qisys/ui.py", line 367, in res
    ret = func(*args, **kwargs)
  File "/home/victor.paleologue/.local/lib/python3.8/site-packages/qibuild/actions/make.py", line 35, in do
    cmake_builder.build(rebuild=args.rebuild,
  File "/home/victor.paleologue/.local/lib/python3.8/site-packages/qibuild/cmake_builder.py", line 92, in new_func
    res = func(self, *args, **kwargs)
  File "/home/victor.paleologue/.local/lib/python3.8/site-packages/qibuild/cmake_builder.py", line 206, in build
    project.build(**kwargs)
  File "/home/victor.paleologue/.local/lib/python3.8/site-packages/qibuild/project.py", line 404, in build
    raise qibuild.build.BuildFailed(self)
qibuild.build.BuildFailed: Error occurred when building project libqi

libqi crash on android

I'm trying to build a app with libqi and it crash at the code below.
Application app = new Application(args);
I am using libqi-master libqi-java-master on Android 4.4.2 .
And the permissions are
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.READ_OWNER_DATA"/> <uses-permission android:name="android.permission.CLEAR_APP_CACHE"/> <uses-permission android:name="android.permission.WRITE_OWNER_DATA"/>

Then I found the tombstone
[email protected]

backtrace:
#00 pc 000221a8 /system/lib/libc.so (tgkill+12)
#1 pc 00013265 /system/lib/libc.so (pthread_kill+48)
#2 pc 00013479 /system/lib/libc.so (raise+10)
#3 pc 000121af /system/lib/libc.so
#4 pc 00021a5c /system/lib/libc.so (abort+4)
#5 pc 00050810 /data/app-lib/com.example.acer.hello-1/libgnustl_shared.so (__gnu_cxx::__verbose_terminate_handler()+348)

stack:
76e67318 00000065
76e6731c 00000004
76e67320 4010d05d /system/lib/libc.so (dlmalloc)
76e67324 00000065
76e67328 76e67374 [stack:25740]
76e6732c 2e7f0a89
76e67330 0000002f
76e67334 2e7f0a89
76e67338 0000000b
76e6733c 00000001
76e67340 00000015
76e67344 72627cf0 [anon:libc_malloc]
76e67348 00000001
76e6734c 40137929 /system/lib/libc.so (write+12)
76e67350 401481d0 /system/lib/libc.so
76e67354 72627cf0 [anon:libc_malloc]
#00 76e67358 00000006
76e6735c 0000000d
76e67360 0000648c
76e67364 785db940 [anon:libc_malloc]
76e67368 785db940 [anon:libc_malloc]
76e6736c 40110269 /system/lib/libc.so (pthread_kill+52)
#1 76e67370 00000006
76e67374 00000000
76e67378 785dba04 [anon:libc_malloc]
76e6737c 4011047d /system/lib/libc.so (raise+14)
#2 76e67380 76e6738c [stack:25740]
76e67384 4010f1b3 /system/lib/libc.so
#3 76e67388 40148224 /system/lib/libc.so
76e6738c ffffffdf
76e67390 0000000a
76e67394 00000000
76e67398 40148224 /system/lib/libc.so
76e6739c 4015632c
76e673a0 0000000a
76e673a4 4014817c /system/lib/libc.so
76e673a8 00000001
76e673ac 4011ea60 /system/lib/libc.so (__pthread_clone)
#4 76e673b0 0000648c
76e673b4 76eba814 /data/app-lib/com.example.acer.hello-1/libgnustl_shared.so (__gnu_cxx::__verbose_terminate_handler()+352)
#5 76e673b8 785db7a0 [anon:libc_malloc]
76e673bc 00000000
76e673c0 785db7a0 [anon:libc_malloc]
76e673c4 785db748 [anon:libc_malloc]
76e673c8 770f2f34 /data/app-lib/com.example.acer.hello-1/libqi.so (boost::filesystem::filesystem_error::~filesystem_error())
76e673cc 7785b0b0 /data/app-lib/com.example.acer.hello-1/libqi.so
76e673d0 76e673dc [stack:25740]
76e673d4 76eb86e4 /data/app-lib/com.example.acer.hello-1/libgnustl_shared.so (__cxxabiv1::__terminate(void ()())+12)
76e673d8 76e673e4 [stack:25740]
76e673dc 76eb8784 /data/app-lib/com.example.acer.hello-1/libgnustl_shared.so (__cxxabiv1::__unexpected(void (
)()))
76e673e0 76e673fc [stack:25740]
76e673e4 76eb8ad0 /data/app-lib/com.example.acer.hello-1/libgnustl_shared.so (__cxa_throw+160)
76e673e8 785db7a0 [anon:libc_malloc]
76e673ec 0000000d
76e673f0 7786a8b8 /data/app-lib/com.example.acer.hello-1/libqi.so
76e673f4 76e674bc [stack:25740]

So I think that maybe some uncaught execption (boost::filesystem::filesystem_error) cause the crash.

I tried to read the code of libqi and i found there many function may throw an exception out of try{};

Maybe next step I should try to catch these excption in qimessaging-jni.so and rethrow them to the java side thus I can use System.out.println to show them on the log-cat.(is that possible to catch a exception in anothor library? )

Boost static assert to c++11 static assert

Hi

I want to compile libqi but i get errors with the last version.

[ 1%] Building CXX object CMakeFiles/qi.dir/src/future.cpp.o
In file included from /home/arne/Documents/Dev/arne/libqi-master/qi/type/typeinterface.hpp:381:0,
from /home/arne/Documents/Dev/arne/libqi-master/qi/type/detail/anyreference.hpp:376,
from /home/arne/Documents/Dev/arne/libqi-master/qi/anyvalue.hpp:10,
from /home/arne/Documents/Dev/arne/libqi-master/qi/detail/future_fwd.hpp:17,
from /home/arne/Documents/Dev/arne/libqi-master/qi/future.hpp:7,
from /home/arne/Documents/Dev/arne/libqi-master/src/future.cpp:5:
/home/arne/Documents/Dev/arne/libqi-master/qi/type/detail/listtypeinterface.hxx:123:3: warning: identifier ‘static_assert’ is a keyword in C++11 [-Wc++0x-compat]
static_assert(!boost::is_same<T,bool>::value, "std::vector is not supported by AnyValue.");
^
In file included from /home/arne/Documents/Dev/arne/libqi-master/qi/type/typeinterface.hpp:381:0,
from /home/arne/Documents/Dev/arne/libqi-master/qi/type/detail/anyreference.hpp:376,
from /home/arne/Documents/Dev/arne/libqi-master/qi/anyvalue.hpp:10,
from /home/arne/Documents/Dev/arne/libqi-master/qi/detail/future_fwd.hpp:17,
from /home/arne/Documents/Dev/arne/libqi-master/qi/future.hpp:7,
from /home/arne/Documents/Dev/arne/libqi-master/src/future.cpp:5:
/home/arne/Documents/Dev/arne/libqi-master/qi/type/detail/listtypeinterface.hxx:123:17: error: expected identifier before ‘!’ token
static_assert(!boost::is_same<T,bool>::value, "std::vector is not supported by AnyValue.");
^
/home/arne/Documents/Dev/arne/libqi-master/qi/type/detail/listtypeinterface.hxx:123:17: error: expected ‘,’ or ‘...’ before ‘!’ token
/home/arne/Documents/Dev/arne/libqi-master/qi/type/detail/listtypeinterface.hxx:123:98: warning: ISO C++ forbids declaration of ‘static_assert’ with no type [-fpermissive]
static_assert(!boost::is_same<T,bool>::value, "std::vector is not supported by AnyValue.");
^
make[2]: *** [CMakeFiles/qi.dir/src/future.cpp.o] Error 1
make[1]: *** [CMakeFiles/qi.dir/all] Error 2
make: *** [all] Error 2

Any clue what is wrong?

Thanks in advance

Installation guides faulty or at least unclear.

I started with following the linux guides at. link. Those all seem to work fine. Then i start with making a first service according to link. This however is not possible. My project returns an error that it can not find the package qimodule. After long searching i figured that that belongs to libqi not naoqisdk c++. I tried installing that. A proper way is specified nowhere. Most guides redirect to installing naoqi sdk for c++ which in turn does not contain the cmake qimodule package.

Right at this moment i am building the libqi package from here. God knows if im doing that right. Afterwards i was still not able to build because everything that is located in the libqi can not be found by de build tools. And i do not know what is the best way to let qibuild know where libqi is. Do i add it to the path. do i put everything under /usr/include /usr/lib /usr/share? do i add it to a toolchain, do i add it to my worktree and make a depend on it in my project? Its nowhere specified. according to the installation guide all you should have to do is make install and you're all set.

I tried the last option having libqi source in my worktree and make a depend. this seemed to fix the qibuild package being found. But now qibuild (or CMAKE) cant find GMOCK.cmake. No where is specified where i get this or what it is and where i leave this.

My next step is to just build libqi put it next to the naoqi c++ SDK and de CTC and see if i can add it to the toolchains with qitoolchain add-package -t /path/to/libqi and pray that this works. But i doubt i can use that to cross compile.

I would really suggest that you take someone who has never worked on this project. give him a clean OS. And let him try to install all the sdk's and other tools and let him document everything that is not correct in the documentation.

How can I build code successful in ubuntu16.04 with C++ SDK?

when I use the naoqi-sdk-2.1.4.13-linux64 in my ubuntu16.04, I cannot build the code successful while in ubuntu14.04 it indeed successed.
In your team's github resources,I find someone else has the same issues as me(#18). In your team's reply,I get the conclusion that the current naoqi-sdk-2.1.4.13-linux64 only support boost 1.55 while ubuntu16.04 has the 1.58 version. As a result.they cannot linked successful.
Owing that issue,I get the idea that I can install boost1.55 in my PC,then I installed it .However , I cannot build the example success as well. What can I do next? When would the SDK will support ubuntu16.04 or some vresions above such as ubuntu17.04 or even higher?What is the easist way for me to deal with this problem?

Wish you could give me some advice. Thanks.

image

Unable to find Naoqi SDK

Does anyone have Naoqi SDK ? I am following these steps. but I am unable to find Naoqi SDK but I have found Python bindings. It will be a great if anyone share Naoqi SDK to me. Thanks in advance.

How to get angle velocity

Joint control APIs described in docs only allow us to get the current joint angles.
How can I access the angle velocities?
Thank you very much if you can provide any suggestions.

Real-time control of joints using setAngles or changeAngles

Hi, this is more of a question than an issue, but it seemed like this was the best place to ask since Support said they weren't really the best to answer it.

I have some NAO v4's that I am trying to control in real-time (fast, small changes) with either setAngles or changeAngles from libqi (I was specifically using the python bindings). However, when I do this, I get undesired stuttering with setAngles or oscillation with changeAngles. I am guessing that the issue with setAngles is an imposed slow-start/slow-stop, and the issue with changeAngles (I am reading in the joints and calculating the delta) is the error in the joint position estimation.

Is there a way of overriding the slow-start/slow-stop, or any way of getting the desired behavior?
Thanks for any and all help you may be able to provide!

Max 5 params for a module method

Hi All

I have been struggling to find out why a module method, only supports 5 params. After searching on forums I finaly landed on the libqi source.
Can somebody confirm that lines 167 and further in libqi/qi/anyfunction.hpp are causing that limitation?
Thanks in advance

    class MathModule(ALModule):
        def __init__(self, name):
            ALModule.__init__(self, name)

        def sum(self, a, b, c, d, e):
            """ WORKING """
            print a + " " + b + " " + c + " " + d + " " + e

        def sum1(self, a, b, c, d, e, f):
             """ METHOD UNDEFINED """
             print a + " " + b + " " + c + " " + d + " " + e + " " + f

Thanks for your time

Best regards
Wim

Adding tags

Having tags for the 2.9 version could be useful, especially for projects such as libqi-release (ROS release of libqi). I noticed that some tags have been created for older versions, could it be done for the new ones as well ?

Executing libqi code cross compiled for 32-bit ARM

Hi, I'm attempting to cross-compile libqi to run on an ARMv7 chip.
Libqi has some depenedencies on boost and openssl, so I cross compile those libraries before I cross compile libqi. The host machine where I am compiling this code is a 64 bit Redhat machine.

I am able to cross compile with no errors, but when I run an executable that uses libqi on the target ARM I get an error. As a side note I am able to execute libqi libraries compiled for the host machine on the host machine just fine.

Here is the error I see when running a cross-compiled executable on the ARM:
$ ./video_stream --qi-url=196.168.3.2
[E] 1496944759.281001 8415 qimessaging.messagesocket: 0x96b2d8: Ill-formed capabilities message: Type b not deserializable
[W] 1496944759.282350 8414 qitype.genericvalue: Conversion from X(int) to X(long long) failed
[W] 1496944759.286159 8413 qi.FutureSync: Error in future on destruction: 'disconnected' - continuing stack unwinding...
terminate called after throwing an instance of 'qi::FutureUserException'
what(): disconnected
Aborted

Here is the code for video_stream:
#include < iostream>
#include <qi/applicationsession.hpp>
#include <qi/vision_definitions.h>
#include <qi/anyvalue.hpp>
#include <qi/jsoncodec.hpp>

using namespace std;

int main(int argc, char** argv)

{
qi::ApplicationSession app(argc, argv);
app.startSession();
qi::SessionPtr session = app.session();
qi::AnyObject video_service = session->service("ALVideoDevice");

   auto subscriberId = video_service.call<std::string>("subscribe", "test", kQVGA, kBGRColorSpace, 30);
    auto results = video_service.call<qi::AnyValue>("getImageRemote", subscriberId);
    std::cout << "image " << qi::encodeJSON(results) << std::endl;
    auto imageAsValue = results[6];
    auto buffer = imageAsValue.content().asRaw();
    std::cout << "buffer size: " << buffer.second << std::endl;

    video_service.call<void>("releaseImage", subscriberId);
    video_service.call<void>("unsubscribe", subscriberId);
}

Here are some properties of the executable:
$ file video_stream
video_stream: ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped

$ objdump -f video_stream 
video_stream:     file format elf32-littlearm
architecture: arm, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x001c2bb0

$ objdump -j .interp -s ./video_stream
./video_stream:     file format elf32-littlearm

Contents of section .interp:
 8134 2f6c6962 2f6c642d 6c696e75 782e736f  /lib/ld-linux.so
 8144 2e3300                               .3.           

Here are the first few lines of the build processs which let me know that cmake has picked up the cross-toolchain:
-- The C compiler identification is GNU 4.9.2
-- The CXX compiler identification is GNU 4.9.2
-- Check for working C compiler: //arm-xilinx-linux-gnueabi-gcc
-- Check for working C compiler: //arm-xilinx-linux-gnueabi-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: //arm-xilinx-linux-gnueabi-g++
-- Check for working CXX compiler: //arm-xilinx-linux-gnueabi-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Using qibuild 3.11.14

Another sidenote. I am able to execute a cross compiled simple project on the ARM. Here's the code for that:
#include

int main()
{
std::cout << "Hello, world" << std::endl;
return 0;
}

Output:
$ ./temp
Hello, world

Here are the steps I take to cross compile:
OpenSSL:
cd /openssl source directory/
./Configure linux-armv4 --cross-compile-prefix=arm-xilinx-linux-gnueabi- --prefix=//libqi-team-platform-dev --openssldir=//libqi-team-platform-dev/openssl no-shared
make
make install

Boost:
echo "using gcc : arm : arm-xilinx-linux-gnueabi-gcc ;" > ~/user-config.jam
./bootstrap.sh --prefix=//libqi-team-platform-dev
./b2 --prefix=//libqi-team-platform-dev link=static install

LibQI:
To compile libqi, I edit libqi's CMakeLists.txt so that the Boost and OpenSSL libraries are are included. I also add a compiler flag to enable GDB debugging. Finally I tell cmake to compile the projects libraries as STATIC.
Below is the CMAKE code that does what I just described.

CMakeLists.txt


set(Boost_NO_SYSTEM_PATHS TRUE)
if (Boost_NO_SYSTEM_PATHS)
set(BOOST_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/include")
set(BOOST_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include/boost")
set(BOOST_LIBRARY_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/lib")
endif (Boost_NO_SYSTEM_PATHS)
find_package(Boost REQUIRED atomic date_time thread chrono filesystem locale regex program_options)
include_directories(${BOOST_INCLUDE_DIRS})

set(OPENSSL_NO_SYSTEM_PATHS TRUE)
if (OPENSSL_NO_SYSTEM_PATHS)
set(OPENSSL_ROOT "${CMAKE_CURRENT_SOURCE_DIR}")
set(OPENSSL_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include")
set(OPENSSL_LIBRARY_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/lib")
endif (OPENSSL_NO_SYSTEM_PATHS)
include_directories(${OPENSSL_INCLUDE_DIRS})
link_directories(${OPENSSL_LIBRARY_DIRS})



Set compilation flags {{{

if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
endif()`



qi_create_lib(qi STATIC
${QI_H} ${QI_C}
${QITYPE_H} ${QITYPE_C}
${QIM_H} ${QIM_C}
${QIPERF_H} ${QIPERF_C}
DEPENDS ASSUME_SYSTEM_INCLUDE BOOST BOOST_ATOMIC BOOST_DATE_TIME BOOST_THREAD BOOST_CHRONO BOOST_FILESYSTEM BOOST_LOCALE BOOST_REGEX BOOST_PROGRAM_OPTIONS
SUBMODULE ${_tp_qi})



target_link_libraries(qi ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES})


Finally I compile libqi using the following commands
export PATH=//bin:$PATH
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
mkdir BUILD_CROSS && cd BUILD_CROSS
cmake .. -DCMAKE_TOOLCHAIN_FILE=zynq7-linux.cmake -DQI_WITH_TESTS=OFF -DBUILD_VIDEOSTREAM=ON
make -j8
make -j8 install DESTDIR=./output

contents of zynq7-linux.cmake
set (CMAKE_SYSTEM_PROCESSOR "arm" CACHE STRING "")
set (CROSS_PREFIX "arm-xilinx-linux-gnueabi-" CACHE STRING "")
include ("//cross-linux-gcc.cmake")

contents of cross-linux-gcc.cmake
set (CMAKE_SYSTEM_NAME "Linux" CACHE STRING "")
set (CMAKE_C_COMPILER "${CROSS_PREFIX}gcc" CACHE STRING "")
set (CMAKE_CXX_COMPILER "${CROSS_PREFIX}g++" CACHE STRING "")
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER CACHE STRING "")
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER CACHE STRING "")
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER CACHE STRING "")

Compile ros-naoqi/libqi failed on Noetic

ROS: noetic
Ubuntu:
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal

log

In file included from /usr/local/include/boost/asio/read.hpp:1480,
                 from /usr/local/include/boost/asio.hpp:172,
                 from /home/northpoleforce/pepper/ros_ws/src/libqi/qi/macro.hpp:31,
                 from /home/northpoleforce/pepper/ros_ws/src/libqi/qi/api.hpp:16,
                 from /home/northpoleforce/pepper/ros_ws/src/libqi/qi/os.hpp:17,
                 from /home/northpoleforce/pepper/ros_ws/src/libqi/qi/log.hpp:26,
                 from /home/northpoleforce/pepper/ros_ws/src/libqi/src/messaging/messagesocket.cpp:1:
/usr/local/include/boost/asio/impl/read.hpp: In instantiation of ‘class boost::asio::detail::initiate_async_read<qi::sock::SocketWithContext<qi::sock::NetworkAsio> >’:
/usr/local/include/boost/asio/read.hpp:811:3:   required by substitution of ‘template<class AsyncReadStream, class MutableBufferSequence, class ReadToken> decltype (async_initiate<ReadToken, void(boost::system::error_code, std::size_t)>(declval<boost::asio::detail::initiate_async_read<AsyncReadStream> >(), token, buffers, boost::asio::transfer_all())) boost::asio::async_read(AsyncReadStream&, const MutableBufferSequence&, ReadToken&&, typename boost::asio::constraint<boost::asio::is_mutable_buffer_sequence<MutableBufferSequence>::value>::type) [with AsyncReadStream = qi::sock::SocketWithContext<qi::sock::NetworkAsio>; MutableBufferSequence = boost::asio::mutable_buffers_1; ReadToken = boost::asio::detail::wrapped_handler<boost::asio::io_context&, ka::data_bound_proc_t<qi::sock::receiveMessage(const S&, M, qi::sock::SslEnabled, size_t, const Proc&, F0, F1) [with N = qi::sock::NetworkAsio; S = boost::shared_ptr<qi::sock::SocketWithContext<qi::sock::NetworkAsio> >; M = qi::Message*; Proc = qi::sock::ReceiveMessageContinuous<N>::operator()(const S&, qi::sock::SslEnabled, size_t, Proc, const F0&, const F1&) [with S = boost::shared_ptr<qi::sock::SocketWithContext<qi::sock::NetworkAsio> >; Proc = qi::sock::Connected<N, S>::Impl::start(qi::sock::SslEnabled, size_t, Proc, qi::int64_t) [with Proc = qi::sock::HandleMessage<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >; N = qi::sock::NetworkAsio; S = qi::sock::SocketWithContext<qi::sock::NetworkAsio>; size_t = long unsigned int; qi::int64_t = long int]::<lambda()> mutable::<lambda(qi::sock::ErrorCode<qi::sock::NetworkAsio>, qi::Message*)>; F0 = ka::data_bound_transfo_t<std::shared_ptr<qi::sock::Connected<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >::Impl> >; F1 = qi::sock::StrandTransfo<qi::sock::NetworkAsio>; N = qi::sock::NetworkAsio; size_t = long unsigned int]::<lambda(qi::sock::ErrorCode<qi::sock::NetworkAsio>, qi::Message*)>; F0 = ka::data_bound_transfo_t<std::shared_ptr<qi::sock::Connected<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >::Impl> >; F1 = qi::sock::StrandTransfo<qi::sock::NetworkAsio>; size_t = long unsigned int]::<lambda(qi::sock::ErrorCode<qi::sock::NetworkAsio>, std::size_t)>, std::shared_ptr<qi::sock::Connected<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >::Impl> >, boost::asio::detail::is_continuation_delegated>&]’
/home/northpoleforce/pepper/ros_ws/src/libqi/src/messaging/sock/networkasio.hpp:50:30:   required from ‘static void qi::sock::NetworkAsio::async_read(S&, const B&, H) [with S = qi::sock::SocketWithContext<qi::sock::NetworkAsio>; B = boost::asio::mutable_buffers_1; H = boost::asio::detail::wrapped_handler<boost::asio::io_context&, ka::data_bound_proc_t<qi::sock::receiveMessage(const S&, M, qi::sock::SslEnabled, size_t, const Proc&, F0, F1) [with N = qi::sock::NetworkAsio; S = boost::shared_ptr<qi::sock::SocketWithContext<qi::sock::NetworkAsio> >; M = qi::Message*; Proc = qi::sock::ReceiveMessageContinuous<N>::operator()(const S&, qi::sock::SslEnabled, size_t, Proc, const F0&, const F1&) [with S = boost::shared_ptr<qi::sock::SocketWithContext<qi::sock::NetworkAsio> >; Proc = qi::sock::Connected<N, S>::Impl::start(qi::sock::SslEnabled, size_t, Proc, qi::int64_t) [with Proc = qi::sock::HandleMessage<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >; N = qi::sock::NetworkAsio; S = qi::sock::SocketWithContext<qi::sock::NetworkAsio>; size_t = long unsigned int; qi::int64_t = long int]::<lambda()> mutable::<lambda(qi::sock::ErrorCode<qi::sock::NetworkAsio>, qi::Message*)>; F0 = ka::data_bound_transfo_t<std::shared_ptr<qi::sock::Connected<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >::Impl> >; F1 = qi::sock::StrandTransfo<qi::sock::NetworkAsio>; N = qi::sock::NetworkAsio; size_t = long unsigned int]::<lambda(qi::sock::ErrorCode<qi::sock::NetworkAsio>, qi::Message*)>; F0 = ka::data_bound_transfo_t<std::shared_ptr<qi::sock::Connected<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >::Impl> >; F1 = qi::sock::StrandTransfo<qi::sock::NetworkAsio>; size_t = long unsigned int]::<lambda(qi::sock::ErrorCode<qi::sock::NetworkAsio>, std::size_t)>, std::shared_ptr<qi::sock::Connected<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >::Impl> >, boost::asio::detail::is_continuation_delegated>]’
/home/northpoleforce/pepper/ros_ws/src/libqi/src/messaging/sock/receive.hpp:337:20:   required from ‘void qi::sock::receiveMessage(const S&, M, qi::sock::SslEnabled, size_t, const Proc&, F0, F1) [with N = qi::sock::NetworkAsio; S = boost::shared_ptr<qi::sock::SocketWithContext<qi::sock::NetworkAsio> >; M = qi::Message*; Proc = qi::sock::ReceiveMessageContinuous<N>::operator()(const S&, qi::sock::SslEnabled, size_t, Proc, const F0&, const F1&) [with S = boost::shared_ptr<qi::sock::SocketWithContext<qi::sock::NetworkAsio> >; Proc = qi::sock::Connected<N, S>::Impl::start(qi::sock::SslEnabled, size_t, Proc, qi::int64_t) [with Proc = qi::sock::HandleMessage<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >; N = qi::sock::NetworkAsio; S = qi::sock::SocketWithContext<qi::sock::NetworkAsio>; size_t = long unsigned int; qi::int64_t = long int]::<lambda()> mutable::<lambda(qi::sock::ErrorCode<qi::sock::NetworkAsio>, qi::Message*)>; F0 = ka::data_bound_transfo_t<std::shared_ptr<qi::sock::Connected<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >::Impl> >; F1 = qi::sock::StrandTransfo<qi::sock::NetworkAsio>; N = qi::sock::NetworkAsio; size_t = long unsigned int]::<lambda(qi::sock::ErrorCode<qi::sock::NetworkAsio>, qi::Message*)>; F0 = ka::data_bound_transfo_t<std::shared_ptr<qi::sock::Connected<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >::Impl> >; F1 = qi::sock::StrandTransfo<qi::sock::NetworkAsio>; size_t = long unsigned int]’
/home/northpoleforce/pepper/ros_ws/src/libqi/src/messaging/sock/receive.hpp:395:24:   required from ‘void qi::sock::ReceiveMessageContinuous<N>::operator()(const S&, qi::sock::SslEnabled, size_t, Proc, const F0&, const F1&) [with S = boost::shared_ptr<qi::sock::SocketWithContext<qi::sock::NetworkAsio> >; Proc = qi::sock::Connected<N, S>::Impl::start(qi::sock::SslEnabled, size_t, Proc, qi::int64_t) [with Proc = qi::sock::HandleMessage<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >; N = qi::sock::NetworkAsio; S = qi::sock::SocketWithContext<qi::sock::NetworkAsio>; size_t = long unsigned int; qi::int64_t = long int]::<lambda()> mutable::<lambda(qi::sock::ErrorCode<qi::sock::NetworkAsio>, qi::Message*)>; F0 = ka::data_bound_transfo_t<std::shared_ptr<qi::sock::Connected<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >::Impl> >; F1 = qi::sock::StrandTransfo<qi::sock::NetworkAsio>; N = qi::sock::NetworkAsio; size_t = long unsigned int]’
/home/northpoleforce/pepper/ros_ws/src/libqi/src/messaging/sock/connectedstate.hpp:288:9:   required from ‘void qi::sock::Connected<N, S>::Impl::start(qi::sock::SslEnabled, size_t, Proc, qi::int64_t) [with Proc = qi::sock::HandleMessage<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >; N = qi::sock::NetworkAsio; S = qi::sock::SocketWithContext<qi::sock::NetworkAsio>; size_t = long unsigned int; qi::int64_t = long int]’
/home/northpoleforce/pepper/ros_ws/src/libqi/src/messaging/sock/connectedstate.hpp:248:7:   required from ‘qi::sock::Connected<N, S>::Connected(qi::sock::SocketPtr<S>&, qi::sock::SslEnabled, size_t, const Proc&, qi::int64_t) [with Proc = qi::sock::HandleMessage<qi::sock::NetworkAsio, qi::sock::SocketWithContext<qi::sock::NetworkAsio> >; N = qi::sock::NetworkAsio; S = qi::sock::SocketWithContext<qi::sock::NetworkAsio>; qi::sock::SocketPtr<S> = boost::shared_ptr<qi::sock::SocketWithContext<qi::sock::NetworkAsio> >; size_t = long unsigned int; qi::int64_t = long int]’
/home/northpoleforce/pepper/ros_ws/src/libqi/src/messaging/tcpmessagesocket.hpp:475:18:   required from ‘qi::FutureSync<void> qi::TcpMessageSocket<N, S>::connect(const qi::Url&) [with N = qi::sock::NetworkAsio; S = qi::sock::SocketWithContext<qi::sock::NetworkAsio>]’
/home/northpoleforce/pepper/ros_ws/src/libqi/src/messaging/tcpmessagesocket.hpp:413:20:   required from here
/usr/local/include/boost/asio/impl/read.hpp:504:53: error: no type named ‘executor_type’ in ‘class qi::sock::SocketWithContext<qi::sock::NetworkAsio>’
  504 |     typedef typename AsyncReadStream::executor_type executor_type;

qi::log can not build with c++0x

In naoqi-sdk-2.1.0.19, when build helloworld with c++0x support (gcc 4.8.2), got the following error:

In file included from /home/xu/Roboter/2.1/naoqi-sdk-2.1.0.19-linux64/include/qi/log.hpp:243:0,
from /home/xu/Roboter/2.1/naoqi-sdk-2.1.0.19-linux64/include/qitype/typeinterface.hpp:18,
from /home/xu/Roboter/2.1/naoqi-sdk-2.1.0.19-linux64/include/qitype/anyfunction.hpp:53,
from /home/xu/Roboter/2.1/naoqi-sdk-2.1.0.19-linux64/include/qitype/manageable.hpp:13,
from /home/xu/Roboter/2.1/naoqi-sdk-2.1.0.19-linux64/include/qitype/anyobject.hpp:17,
from /home/xu/Roboter/2.1/naoqi-sdk-2.1.0.19-linux64/include/alcommon/alfunctor.h:17,
from /home/xu/Roboter/2.1/naoqi-sdk-2.1.0.19-linux64/include/alcommon/almodulecore.h:21,
from /home/xu/Roboter/2.1/naoqi-sdk-2.1.0.19-linux64/include/alcommon/almodule.h:16,
from /media/windows/Users/yuan.xu/Downloads/test/helloworld/helloworld.h:9,
from /media/windows/Users/yuan.xu/Downloads/test/helloworld/helloworld.cpp:5:
/media/windows/Users/yuan.xu/Downloads/test/helloworld/helloworld.cpp: In member function ‘void HelloWorld::sayHello()’:
/home/xu/Roboter/2.1/naoqi-sdk-2.1.0.19-linux64/include/qi/details/log.hxx:55:46: error: too few arguments to function ‘boost::format qi::log::detail::getFormat(const string&)’
boost::str(::qi::log::detail::getFormat(Msg) QI_VAARGS_APPLY(_QI_FORMAT_ELEM, _, VA_ARGS /**/))
^
/home/xu/Roboter/2.1/naoqi-sdk-2.1.0.19-linux64/include/qi/details/log.hxx:39:107: note: in definition of macro ‘_qiLogError’

define _qiLogError(...) qi::log::LogStream(qi::LogLevel_Error, FILE, FUNCTION, LINE, VA_ARGS).self()

                                                                                                       ^

/home/xu/Roboter/2.1/naoqi-sdk-2.1.0.19-linux64/include/qi/preproc.hpp:99:25: note: in expansion of macro ‘_QI_LOG_FORMAT_HASARG_0’

define QI_CAT_(A, B) A ## B

                     ^

/home/xu/Roboter/2.1/naoqi-sdk-2.1.0.19-linux64/include/qi/preproc.hpp:98:24: note: in expansion of macro ‘QI_CAT_’

define QI_CAT(A, B) QI_CAT_(A, B)

                    ^

/home/xu/Roboter/2.1/naoqi-sdk-2.1.0.19-linux64/include/qi/details/log.hxx:52:3: note: in expansion of macro ‘QI_CAT’
QI_CAT(QI_LOG_FORMAT_HASARG, _QI_LOG_ISEMPTY(VA_ARGS))(Msg, VA_ARGS)

......

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.