daniestevez / gr-satellites

GNU Radio decoder for Amateur satellites
GNU General Public License v3.0
784 stars 162 forks source link

Unify cc11xx_packet_crop and sx12xx_packet_crop #659

Open daniestevez opened 2 months ago

daniestevez commented 2 months ago

These two blocks do nearly the same thing. They should be marked as deprecated and a new block that does the same as sx12xx_packet_crop and is called something like length_field_packet_crop should be added to replace them.

mattcattb commented 2 months ago

This looks very interesting. I would love to work on this!

daniestevez commented 2 months ago

Go for it. A pull request is welcome.

mattcattb commented 2 months ago

Hi stevez. I would love to contribute, but first I need some help with installation and setup. Which method of installation is perfered, from source, from conda, or from the ubuntu PPA? I am using ubuntu jelly.

daniestevez commented 2 months ago

If you're going to do any development then you should build gr-satellites from source.

mattcattb commented 1 month ago

Hi, I have been looking into the 2 libraries and it seems I would only need to update binar2_deframer, fossasat_deframer, grizu263a_deframer for sx12xx and then aaltol_deframer, binarl_deframer, endurosat_deframer, reaktor_hello_world_deframer for cc11xx? I would also need to update the init and yaml files for this new length_field_packet_crop?

daniestevez commented 1 month ago

Yes. A GRC YAML file needs to be added and the Python __init__.py files and CMakeLists.txt need to be updated as for any other GNU Radio block that is added.

mattcattb commented 1 month ago

Issue with Building Main

I believe I have just finished this feature, I am just first trying to test out the normal main build. I am running into an error, after mkdir build cd build cmake .. make sudo amke install sudo ldconfig I run make test and fail every single test. It says that the

`1/24 Testing: qa_costas_loop_8apsk_cc 1/24 Test: qa_costas_loop_8apsk_cc Command: "/usr/bin/sh" "qa_costas_loop_8apsk_cc_test.sh" Directory: /home/mattyb/Desktop/UF_Classes/fall_2024/CEN_3031/Projects/Open_Source_Contrib/gr-satellites/build/python "qa_costas_loop_8apsk_cc" start time: Sep 18 16:10 EDT Output:

Traceback (most recent call last): File "/usr/local/lib/python3.10/dist-packages/satellites/init.py", line 47, in from .bindings.satellites_python import * ModuleNotFoundError: No module named 'satellites.bindings'` repeating the no module named satellites.bindings. What am I doing wrong here? I make the build directory in the gr-satellites folder with the readme, license, etc.

daniestevez commented 1 month ago

Since that is working on CI, it suggests an issue with your system building Python bindings. What distribution are you using, what version of GNU Radio and how did you install it, etc.? You can do some investigation in build/python/bindings to see if satellites_python*.so has been built, is correctly linked (ldd), etc. Also watch out for anything that could have looked like an error or warning about Python bindings during the build process.

mattcattb commented 1 month ago

The following is my list of steps:

  1. create conda enviroment: conda env create -n gr-sat python=3.9, then activate that
  2. git clone main branch of repository
  3. pip3 install --user --upgrade construct requests
  4. pip install websocket-client
  5. go to the cloned github
  6. mkdir build cd build cmake .. make sudo make install sudo ldconfig
  7. make test This is when the errors show up. I am not sure what to do. I also set the export to the pythonpath location, which is strange because I beleive it is not pointing to my python.
daniestevez commented 1 month ago

I'm not sure if trying to build out-of-tree modules against GNU Radio installed through conda is a good idea. I imagine that versions mismatches between the gcc or pybind11 that is installed in your distribution versus the ones that were used to build the GNU Radio conda package could cause Python bindings problems like the ones you're seeing. Maybe someone that is more familiar with conda would give better advice, but I would recommend to install GNU Radio through your distribution package manager if you're going to build out-of-tree modules.