Skip to content

Svxlink usrp#547

Open
dl1hrc wants to merge 117 commits intosm0svx:masterfrom
dl1hrc:svxlink-usrp
Open

Svxlink usrp#547
dl1hrc wants to merge 117 commits intosm0svx:masterfrom
dl1hrc:svxlink-usrp

Conversation

@dl1hrc
Copy link
Contributor

@dl1hrc dl1hrc commented May 13, 2021

Hi Tobias,
would be nice if you could have a closer look to the Usrp extension. This protocol allows the communication to mmdvm and some other projects over udp.
There are some om's that currently test this extension and it looks promising but I have some questions and hope you will find the the time to answer it:

  • I think the encoder/decoder could be removed because it doesn't needed, what Audiohandler can replace it?
  • I think that the implementation of the UsrpMessages in UsrpMsg.h can be done better, I'm not satisfied with that. Can you give me some hints please?
  • There is an error message when the SvxLink is ended by 'q'. I can not find the reason for it. It seems that one method of the EventHandler is started when the destructor starts to cleanup the resources but I'm not sure:

Program received signal SIGSEGV, Segmentation fault.
0x00005555555f84e5 in EventHandler::processEvent(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) ()
(gdb) bt
#0 0x00005555555f84e5 in EventHandler::processEvent(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) ()
#1 0x00005555555dd6aa in Logic::processEvent(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, Module const*) [clone .constprop.0] ()
#2 0x00005555555dd982 in Logic::sendRgrSound() ()
#3 0x00005555555e0b7d in Logic::checkIdle() ()
#4 0x00005555555ee792 in non-virtual thunk to Async::AudioStreamStateDetector::allSamplesFlushed() ()
#5 0x00007ffff7f6fcc0 in Async::AudioMixer::allSamplesFlushed() () from /lib/x86_64-linux-gnu/libasyncaudio.so.1.6
#6 0x00007ffff7f6faf7 in Async::AudioMixer::outputHandler(Async::Timer*) [clone .part.0] () from /lib/x86_64-linux-gnu/libasyncaudio.so.1.6
#7 0x00007ffff7f5e1ed in Async::AudioSink::unregisterSource() () from /lib/x86_64-linux-gnu/libasyncaudio.so.1.6
#8 0x00007ffff7f5e3bb in Async::AudioSink::~AudioSink() () from /lib/x86_64-linux-gnu/libasyncaudio.so.1.6
#9 0x000055555564df94 in LocalTx::~LocalTx() ()
#10 0x000055555564e0fd in LocalTx::~LocalTx() ()
#11 0x00005555555e2336 in Logic::cleanup() ()
#12 0x00005555555e24e0 in Logic::~Logic() ()
#13 0x00005555555f2986 in RepeaterLogic::~RepeaterLogic() ()
#14 0x00005555555d328f in main ()
(gdb)

mni 73s de Adi / DL1HRC

dl1hrc added 30 commits April 22, 2021 11:08
…ion. Remaining Bug: unpack USRP_TYPE_TEXT message
…ta,-)messages.. Add some checks for pack/unpack in AsyncMsg.h
…om Waldek/SP2ONG added, removed unused methods
@sp2ong
Copy link

sp2ong commented Mar 18, 2025

The original USRP protocol code that is used in Allsatrlink and by many other radio applications is in the Allsatrlink code

https://github.com/AllStarLink/app_rpt/blob/master/channels/chan_usrp.c

https://github.com/AllStarLink/app_rpt/blob/master/channels/chan_usrp.h

I have written down all the information about this protocol during my work with svxbride in Python that Adi has placed in the file

https://github.com/dl1hrc/svxlink/blob/svxlink-usrp/src/svxlink/svxlink/contrib/UsrpLogic/usrp_protocol.txt

Maybe analyzing the Allstarlink code can help improve the USRP svxlink

Copy link
Owner

@sm0svx sm0svx Aug 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some tips to make this file "compliant" with the rest of the SvxLink logics:

  • Rename this file to UsrpLogicType.tcl
  • Change the namespace definition to "namespace eval ${::logic_name}"
  • Create a new file that only contain a namespace. Have a look at ReflectorLogic.tcl for example.
  • Remove the "check to see if this is the correct logic core" (not needed anymore)
  • The "unknown_command" procedure (if used by your module) cannot call Logic::unknown_command since there is no such function in LogicBase.tcl so it must be completely defined like in ReflectorLogicType.tcl.
  • The same as above for the "command_failed" procedure

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.

5 participants