greatscottgadgets / gr-bluetooth

[Archived] A Bluetooth receiver implementation for GNU Radio
GNU General Public License v2.0
202 stars 71 forks source link

Gnuradio 3.8 doesn't detect gr-bluetooth after sucessfull installation. #26

Closed tellmenot closed 3 months ago

tellmenot commented 3 years ago

I successfully installed the gr-bluetooth but its not reflecting in my gnuradio, iam using gnuradio3.8 on ubuntu 18.04 and I think gr-bluetooth pretty well support gnuradio3.8.

tellmenot commented 3 years ago

Thanks @straithe for adding the issue to technical support

tellmenot commented 3 years ago

Iam waiting for reply from the community

tranzmatt commented 3 years ago

I used pybombs to install gnuradio-default, which is 3.8.3.git, but when I try to build gr-bluetooth, I get

CMake Error at CMakeLists.txt:87 (find_package): Could not find a configuration file for package "Gnuradio" that is compatible with requested version "3.7.0".

The following configuration files were considered but not accepted:

/home/src/gnuradio/lib/cmake/gnuradio/GnuradioConfig.cmake, version: 3.8.3.git

The repo says it supports 3.7 or later, so what am I doing wrong?

tellmenot commented 3 years ago

I used pybombs to install gnuradio-default, which is 3.8.3.git, but when I try to build gr-bluetooth, I get CMake Error at CMakeLists.txt:87 (find_package): Could not find a configuration file for package "Gnuradio" that is compatible with requested version "3.7.0". The following configuration files were considered but not accepted:

/home/src/gnuradio/lib/cmake/gnuradio/GnuradioConfig.cmake, version: 3.8.3.git

The repo says it supports 3.7 or later, so what am I doing wrong?

Try building GNURadio 3.7 from scratch and then build gr-bluetooth, hope this resolve the issue. If you get the cmake error then just look at the cmake file using your favourite text editor. you can resolve it from there. There are some ongoing issues with 3.8

miek commented 3 years ago

This repo doesn't yet support GNURadio 3.8, I think that line in the README was written before 3.8 was released and originall just meant 3.7.*.

There is a pull request open for 3.8 support here: https://github.com/greatscottgadgets/gr-bluetooth/pull/20 - we haven't had a chance to review and merge it yet, but maybe you could try it out and let us know how it goes.

JakeReeves21 commented 3 years ago

Has there been any update to the attempt to use the gr-bluetooth branch with GNURadio 3.8?

straithe commented 3 years ago

I haven't had time to try the gr-bluetooth branch with GNURadio 3.8, but I'd love to hear your experience with it if you want to try. If you do try it out, leave comments on https://github.com/greatscottgadgets/gr-bluetooth/pull/20. It'll help us when we do go to review that PR.

stevewillson commented 2 years ago

I attempted to build: https://github.com/bkerler/gr-bluetooth/tree/maint-3.10 , but was unsuccessful.

Ubuntu 22.04LTS Python: 3.10.4 GCC: 11.2.0

Steps:

Below are the start of the error messages received from make

/home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc: In function ‘void bind_packet(pybind11::module&)’:
/home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:188:22: error: no matching function for call to ‘init(<unresolved overloaded function type>)’
  188 |         .def(py::init(&classic_packet::make),
      |              ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/pybind11/complex.h:12,
                 from /home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:20:
/usr/local/include/pybind11/pybind11.h:1882:40: note: candidate: ‘template<class ... Args> pybind11::detail::initimpl::constructor<Args ...> pybind11::init()’
 1882 | detail::initimpl::constructor<Args...> init() {
      |                                        ^~~~
/usr/local/include/pybind11/pybind11.h:1882:40: note:   template argument deduction/substitution failed:
/home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:188:22: note:   candidate expects 0 arguments, 1 provided
  188 |         .def(py::init(&classic_packet::make),
      |              ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/pybind11/complex.h:12,
                 from /home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:20:
/usr/local/include/pybind11/pybind11.h:1894:5: note: candidate: ‘template<class Func, class Ret> Ret pybind11::init(Func&&)’
 1894 | Ret init(Func &&f) {
      |     ^~~~
/usr/local/include/pybind11/pybind11.h:1894:5: note:   template argument deduction/substitution failed:
/home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:188:22: note:   couldn’t deduce template parameter ‘Func’
  188 |         .def(py::init(&classic_packet::make),
      |              ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/pybind11/complex.h:12,
                 from /home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:20:
/usr/local/include/pybind11/pybind11.h:1902:5: note: candidate: ‘template<class CFunc, class AFunc, class Ret> Ret pybind11::init(CFunc&&, AFunc&&)’
 1902 | Ret init(CFunc &&c, AFunc &&a) {
      |     ^~~~
/usr/local/include/pybind11/pybind11.h:1902:5: note:   template argument deduction/substitution failed:
/home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:188:22: note:   candidate expects 2 arguments, 1 provided
  188 |         .def(py::init(&classic_packet::make),
      |              ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/user/gr-bluetooth/build/python/bluetooth/bindings/packet_pydoc.h:9,
                 from /home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:28:
/home/user/gr-bluetooth/build/python/bluetooth/bindings/pydoc_macros.h:12:32: error: ‘__doc_gr_bluetooth_classic_packet_make’ was not declared in this scope; did you mean ‘__doc_gr_bluetooth_classic_packet_make_1’?
   12 | #define __DOC4(n1, n2, n3, n4) __doc_##n1##_##n2##_##n3##_##n4
      |                                ^~~~~~
/home/user/gr-bluetooth/build/python/bluetooth/bindings/pydoc_macros.h:4:21: note: in definition of macro ‘__EXPAND’
    4 | #define __EXPAND(x) x
      |                     ^
/home/user/gr-bluetooth/build/python/bluetooth/bindings/pydoc_macros.h:4:21: note: in expansion of macro ‘__DOC4’
/home/user/gr-bluetooth/build/python/bluetooth/bindings/pydoc_macros.h:17:27: note: in expansion of macro ‘__EXPAND’
   17 | #define DOC(...) __EXPAND(__EXPAND(__CAT2(__DOC, __VA_SIZE(__VA_ARGS__)))(__VA_ARGS__))
      |                           ^~~~~~~~
/home/user/gr-bluetooth/build/python/bluetooth/bindings/pydoc_macros.h:8:22: note: in expansion of macro ‘__CAT1’
    8 | #define __CAT2(a, b) __CAT1(a, b)
      |                      ^~~~~~
/home/user/gr-bluetooth/build/python/bluetooth/bindings/pydoc_macros.h:17:36: note: in expansion of macro ‘__CAT2’
   17 | #define DOC(...) __EXPAND(__EXPAND(__CAT2(__DOC, __VA_SIZE(__VA_ARGS__)))(__VA_ARGS__))
      |                                    ^~~~~~
/home/user/gr-bluetooth/build/python/bluetooth/bindings/packet_pydoc.h:10:16: note: in expansion of macro ‘DOC’
   10 | #define D(...) DOC(gr,bluetooth, __VA_ARGS__ )
      |                ^~~
/home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:191:12: note: in expansion of macro ‘D’
  191 |            D(classic_packet,make)
      |            ^
In file included from /usr/local/include/pybind11/pybind11.h:14,
                 from /usr/local/include/pybind11/complex.h:12,
                 from /home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:20:
/usr/local/include/pybind11/detail/init.h: In instantiation of ‘Class* pybind11::detail::initimpl::construct_or_initialize(Args&& ...) [with Class = gr::bluetooth::packet; Args = {}; typename std::enable_if<(! std::is_constructible<_Tp, _Args>::value), int>::type <anonymous> = 0]’:
/usr/local/include/pybind11/detail/init.h:203:70:   required from ‘static void pybind11::detail::initimpl::constructor<Args>::execute(Class&, const Extra& ...) [with Class = pybind11::class_<gr::bluetooth::packet, std::shared_ptr<gr::bluetooth::packet> >; Extra = {const char*}; typename std::enable_if<(! Class::has_alias), int>::type <anonymous> = 0; Args = {}]’
/usr/local/include/pybind11/pybind11.h:1596:21:   required from ‘pybind11::class_<type_, options>& pybind11::class_<type_, options>::def(const pybind11::detail::initimpl::constructor<Args ...>&, const Extra& ...) [with Args = {}; Extra = {const char*}; type_ = gr::bluetooth::packet; options = {std::shared_ptr<gr::bluetooth::packet>}]’
/home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:41:13:   required from here
/usr/local/include/pybind11/detail/init.h:79:12: error: invalid new-expression of abstract class type ‘gr::bluetooth::packet’
   79 |     return new Class{std::forward<Args>(args)...};
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:26:
/home/user/gr-bluetooth/python/bluetooth/bindings/../../../include/bluetooth/packet.h:37:25: note:   because the following virtual functions are pure within ‘gr::bluetooth::packet’:
   37 |     class BLUETOOTH_API packet
      |                         ^~~~~~
/home/user/gr-bluetooth/python/bluetooth/bindings/../../../include/bluetooth/packet.h:142:20: note:     ‘virtual bool gr::bluetooth::packet::decode_header()’
  142 |       virtual bool decode_header() = 0;
      |                    ^~~~~~~~~~~~~
/home/user/gr-bluetooth/python/bluetooth/bindings/../../../include/bluetooth/packet.h:145:20: note:     ‘virtual void gr::bluetooth::packet::decode_payload()’
  145 |       virtual void decode_payload() = 0;
      |                    ^~~~~~~~~~~~~~
/home/user/gr-bluetooth/python/bluetooth/bindings/../../../include/bluetooth/packet.h:148:20: note:     ‘virtual void gr::bluetooth::packet::print()’
  148 |       virtual void print() = 0;
      |                    ^~~~~
/home/user/gr-bluetooth/python/bluetooth/bindings/../../../include/bluetooth/packet.h:151:21: note:     ‘virtual char* gr::bluetooth::packet::tun_format()’
  151 |       virtual char *tun_format() = 0;
      |                     ^~~~~~~~~~
/home/user/gr-bluetooth/python/bluetooth/bindings/../../../include/bluetooth/packet.h:154:20: note:     ‘virtual bool gr::bluetooth::packet::header_present()’
  154 |       virtual bool header_present() = 0;
      |                    ^~~~~~~~~~~~~~
/home/user/gr-bluetooth/python/bluetooth/bindings/../../../include/bluetooth/packet.h:156:19: note:     ‘virtual int gr::bluetooth::packet::get_channel()’
  156 |       virtual int get_channel() = 0;
      |                   ^~~~~~~~~~~
In file included from /usr/local/include/pybind11/pybind11.h:14,
                 from /usr/local/include/pybind11/complex.h:12,
                 from /home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:20:
/usr/local/include/pybind11/detail/init.h: In instantiation of ‘Class* pybind11::detail::initimpl::construct_or_initialize(Args&& ...) [with Class = gr::bluetooth::packet; Args = {char*, int, double}; typename std::enable_if<(! std::is_constructible<_Tp, _Args>::value), int>::type <anonymous> = 0]’:
/usr/local/include/pybind11/detail/init.h:203:70:   required from ‘static void pybind11::detail::initimpl::constructor<Args>::execute(Class&, const Extra& ...) [with Class = pybind11::class_<gr::bluetooth::packet, std::shared_ptr<gr::bluetooth::packet> >; Extra = {pybind11::arg, pybind11::arg, pybind11::arg_v, const char*}; typename std::enable_if<(! Class::has_alias), int>::type <anonymous> = 0; Args = {char*, int, double}]’
/usr/local/include/pybind11/pybind11.h:1596:21:   required from ‘pybind11::class_<type_, options>& pybind11::class_<type_, options>::def(const pybind11::detail::initimpl::constructor<Args ...>&, const Extra& ...) [with Args = {char*, int, double}; Extra = {pybind11::arg, pybind11::arg, pybind11::arg_v, const char*}; type_ = gr::bluetooth::packet; options = {std::shared_ptr<gr::bluetooth::packet>}]’
/home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:42:13:   required from here
/usr/local/include/pybind11/detail/init.h:79:12: error: invalid new-expression of abstract class type ‘gr::bluetooth::packet’
   79 |     return new Class{std::forward<Args>(args)...};
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/pybind11/detail/init.h: In instantiation of ‘Class* pybind11::detail::initimpl::construct_or_initialize(Args&& ...) [with Class = gr::bluetooth::packet; Args = {const gr::bluetooth::packet&}; typename std::enable_if<(! std::is_constructible<_Tp, _Args>::value), int>::type <anonymous> = 0]’:
/usr/local/include/pybind11/detail/init.h:203:70:   required from ‘static void pybind11::detail::initimpl::constructor<Args>::execute(Class&, const Extra& ...) [with Class = pybind11::class_<gr::bluetooth::packet, std::shared_ptr<gr::bluetooth::packet> >; Extra = {pybind11::arg, const char*}; typename std::enable_if<(! Class::has_alias), int>::type <anonymous> = 0; Args = {const gr::bluetooth::packet&}]’
/usr/local/include/pybind11/pybind11.h:1596:21:   required from ‘pybind11::class_<type_, options>& pybind11::class_<type_, options>::def(const pybind11::detail::initimpl::constructor<Args ...>&, const Extra& ...) [with Args = {const gr::bluetooth::packet&}; Extra = {pybind11::arg, const char*}; type_ = gr::bluetooth::packet; options = {std::shared_ptr<gr::bluetooth::packet>}]’
/home/user/gr-bluetooth/python/bluetooth/bindings/packet_python.cc:47:13:   required from here
/usr/local/include/pybind11/detail/init.h:79:12: error: invalid new-expression of abstract class type ‘gr::bluetooth::packet’
make[2]: *** [python/bluetooth/bindings/CMakeFiles/bluetooth_python.dir/build.make:146: python/bluetooth/bindings/CMakeFiles/bluetooth_python.dir/packet_python.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:386: python/bluetooth/bindings/CMakeFiles/bluetooth_python.dir/all] Error 2
straithe commented 3 months ago

Closed in preparation for archiving this repository. https://github.com/mikeryan/ice9-bluetooth-sniffer may fit your needs instead.