Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Input and Output of SYM, BIN, and RRC formats #21

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

robojay
Copy link
Contributor

@robojay robojay commented May 31, 2022

Adds output (m17-mod) and input (m17-demod) for the SYM, BIN, and RRC formats as described here: https://spec.m17project.org/appendix/file-formats

SYM - M17 symbols
BIN - packed M17 di-bits
RRC - RRC filtered and scaled M17 symbols

These are useful for debugging and developing other M17 implementations.

Input/output formats are selected by command line options. See the --help on each command for details.

Tried to figure out the logical way to inject symbols/dibits
into the demodulator, and it turned out to be fairly difficult.

The easier way to handle the symbols/dibits was to run them
through a modulator to generate baseband (rrc), and simply
run the baseband through the standard demodulator.

It's somewhat more brute force, but ended up being very simple
and clean.
@sp5wwp
Copy link

sp5wwp commented Jul 28, 2022

@mobilinkd can you consider this PR? We need this to move forward.

@n1ai
Copy link
Contributor

n1ai commented Jul 28, 2022

I have been using this code from Jay's fork for several weeks and it is is very useful.

@mobilinkd
Copy link
Owner

Please fix #20, caused by your Windows patches first. Then we can look at adding new features.

@mobilinkd
Copy link
Owner

This breaks backwards compatibility by unnecessarily changing command-line parameters. I will not accept that. Stable interfaces have real value.

@Abraxas3d
Copy link

Abraxas3d commented Aug 1, 2022 via email

@robojay
Copy link
Contributor Author

robojay commented Aug 1, 2022

Please fix #20, caused by your Windows patches first. Then we can look at adding new features.

Can I fix the README.md so that this requires C++20 ? That will solve the problem.

This breaks backwards compatibility by unnecessarily changing command-line parameters. I will not accept that. Stable interfaces have real value.

It wasn't an arbitrary change. All the other command line options have a shortcut with the first letter of the option, except the one I changed. I changed it to a) be consistent with all your other options, and b) make it consistent with the new options.

However, I will alter the new options to be all UPPER case shortcuts ('B', 'R', 'S'), and return the 'noise-blanker' shortcut to 'b', if that is acceptable.

@robojay
Copy link
Contributor Author

robojay commented Aug 1, 2022

Please fix #20, caused by your Windows patches first. Then we can look at adding new features.

Can I fix the README.md so that this requires C++20 ? That will solve the problem.

This breaks backwards compatibility by unnecessarily changing command-line parameters. I will not accept that. Stable interfaces have real value.

It wasn't an arbitrary change. All the other command line options have a shortcut with the first letter of the option, except the one I changed. I changed it to a) be consistent with all your other options, and b) make it consistent with the new options.

However, I will alter the new options to be all UPPER case shortcuts ('B', 'R', 'S'), and return the 'noise-blanker' shortcut to 'b', if that is acceptable.

Ok, BERT is already 'B', so I will use 'x', 'r', and 's' for 'bin', 'rrc', and 'sym' respectively.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants