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

Linking AFF3CT with SDRs #7

Open
MrEvgy opened this issue Oct 31, 2021 · 2 comments
Open

Linking AFF3CT with SDRs #7

MrEvgy opened this issue Oct 31, 2021 · 2 comments

Comments

@MrEvgy
Copy link

MrEvgy commented Oct 31, 2021

Hi again,

I manage to work fluently with your code (the python wrapped version) and in parallel I have a working physical communication channel configured using LimeSDR Tx and Rx. But I have no idea how to link those two together :(

Here is an example to the workflow I am interested to achieve, while using your encode & decode functions:

[vecIn = A packed vector I provide from python]
vecTx = enc(vecIn)
[vecTx => SDR_Tx => the real world]
[the real world => SDR_Rx => vecRx]
vecOut = dec(vecRx)
if vecOut == vecIn: print('Well done Evgy!')

Can you maybe tell me how this can be done?

Thank you

@rtajan
Copy link
Member

rtajan commented Nov 5, 2021

Hi,
Interfacing SDR and AFF3CT is a very interesting feature!

Have you tried to build your own module like this example?
The module that you will create will have two tasks:

  • SDR_Tx: which have one input socket vecTx, it is responsible for sending vecTx to the real world.
  • SDR_Rx: which have one output socket vecRx, it is responsible for listening it to the real world and writing the result inside vecRx.

Another point that you are raising seems to come from the following binding

[vecTx => SDR_Tx => the real world]
[the real world => SDR_Rx => vecRx]

In this case, if you want to force the execution of the task SDR_Rx after SDR_Tx you can bind the task SDR_Rx to any socket of SDR_Tx like this

SDR_module["SDR_Rx"] = SDR_module["SDR_Tx::status"]

where SDR_module is an instance of your module.
Note that the previous task binding works only because SDR_Rx has only output sockets.

Regards,

@MrEvgy
Copy link
Author

MrEvgy commented Nov 7, 2021

Thanks! I will try this with the example you sent.

About the Tx-Rx binding, I am less concerned. My SDR_Rx captures the data and passes along only the data that is relevant, I do this because the detected signal has a lot of irrelevant bits before the clock gets locked properly. So my Tx and Rx are asynchronous while I'm working in a real word scenario. I use two different processes to run Rx and Tx, or sometimes two different systems which is even better.

Evgeny

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

No branches or pull requests

2 participants