Quantcast

Combining ID and squelch close via Tcl

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Combining ID and squelch close via Tcl

Nils Prause
Hi everybody,

We are running a Hytera digital repeater. This unit always wants to
repeat the incoming audio itself (no_repeat=1). To have correct audio
ID, rogerbeep etc. we put a SvxLink on top.

Now we have the problem that if a signal is received while the
short_ident_interval is reached SvxLink is completely muted by the
Hytera unit so that the ID is not heared until the received signal ends
and the squelch is closed. So what I'm seaching for is a smooth way to
let the ID wait until the squelch is closed.

I hope to do this with some Tcl stuff. Getting a variable which shows if
the RX squelch is open or not is no big thing. But I still need a way to
pause the ID as long as the squelch is open.

Something like this:

proc checkPeriodicIdent
   do
      puts "I'm still waiting for the squelch to close"
   until (!$sql_open)

or something like that.

I tried some things with vwait and some other keywords but I'm not
familiar enogugh with Tcl to solve this without crashing the SvxLink
process completely.. :-)

Any hints would make me happy. :-)




--

73s, Nils


------------------------------------------------------------------------------
_______________________________________________
Svxlink-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/svxlink-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Combining ID and squelch close via Tcl

Martin Burkhardt
Hi Nils,

To run SvxLink combined with Hytera Repeater you have to put the repeater itself into the correct mode. If I remeber right that shoud be the base mode. But anyway there are only two operating modes available. So please put it just into the other mode.

If you do so svxlink will have the full control and the Hytera is just a dumb TRX with full duplex capability. We tried these settings on db0oal wich will also be running in this combination.

73 de Martin, DF1AMB

> Am 17.08.2016 um 13:12 schrieb Nils Prause <[hidden email]>:
>
> Hi everybody,
>
> We are running a Hytera digital repeater. This unit always wants to
> repeat the incoming audio itself (no_repeat=1). To have correct audio
> ID, rogerbeep etc. we put a SvxLink on top.
>
> Now we have the problem that if a signal is received while the
> short_ident_interval is reached SvxLink is completely muted by the
> Hytera unit so that the ID is not heared until the received signal ends
> and the squelch is closed. So what I'm seaching for is a smooth way to
> let the ID wait until the squelch is closed.
>
> I hope to do this with some Tcl stuff. Getting a variable which shows if
> the RX squelch is open or not is no big thing. But I still need a way to
> pause the ID as long as the squelch is open.
>
> Something like this:
>
> proc checkPeriodicIdent
>   do
>      puts "I'm still waiting for the squelch to close"
>   until (!$sql_open)
>
> or something like that.
>
> I tried some things with vwait and some other keywords but I'm not
> familiar enogugh with Tcl to solve this without crashing the SvxLink
> process completely.. :-)
>
> Any hints would make me happy. :-)
>
>
>
>
> --
>
> 73s, Nils
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Svxlink-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/svxlink-devel


------------------------------------------------------------------------------
_______________________________________________
Svxlink-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/svxlink-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Combining ID and squelch close via Tcl

Nils Prause
Hi Martin,

on 17-08-2016 14:19, Martin Burkhardt wrote:
> To run SvxLink combined with Hytera Repeater you have to put the repeater itself into the correct mode. If I remeber right that shoud be the base mode. But anyway there are only two operating modes available. So please put it just into the other mode.
>
> If you do so svxlink will have the full control and the Hytera is just a dumb TRX with full duplex capability. We tried these settings on db0oal wich will also be running in this combination.
Thanks for your reply. Good idea but that doesn't work for me. You are
right that this would work if we talk about a FM-only repeater. But or
repeater runs in mixed-mode (DMR and FM) and if you run the unit as a
DMR repeater you also have to run it as a FM repeater. Otherwise, as far
as I understand, you can only have DMR without FM. So combining the
Hytera repeateer functionality with SvxLink is a must (altough I would
like to deactivate the internal functionality).




--
Vy 73, Nils

------------------------------------------------------------------------------
_______________________________________________
Svxlink-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/svxlink-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Combining ID and squelch close via Tcl

Rob Janssen
In reply to this post by Nils Prause
On Wed, Aug 17, 2016 at 01:12:44PM +0200, Nils Prause wrote:

> I hope to do this with some Tcl stuff. Getting a variable which shows if
> the RX squelch is open or not is no big thing. But I still need a way to
> pause the ID as long as the squelch is open.
>
> Something like this:
>
> proc checkPeriodicIdent
>    do
>       puts "I'm still waiting for the squelch to close"
>    until (!$sql_open)
>
> or something like that.
>
> I tried some things with vwait and some other keywords but I'm not
> familiar enogugh with Tcl to solve this without crashing the SvxLink
> process completely.. :-)

This is not possible because the entire svxlink is a single-treaded
process.  When an event occurs it calls your TCL script, but this script
cannot wait for other events to occur as these events can only occur
when svxlink is running other code.

Even sequences like "send some beep", "pause a while", "play some wav
file" and the CW ID generator are not doing their task while inside
the TCL script.  All those beeps and pauses are merely queued into a
buffer and then played in real time by the svxlink C++ code after your
TCL script has already completed.

When you spin-loop inside a TCL script it will just block the entire
program and render it inoperative.

But of course, when svxlink knows when your squelch closes, it is
possible to do things in the particular TCL routine called at that
time (like send_rgr_sound) and you can choose to send your CW ID
at that point.

------------------------------------------------------------------------------
_______________________________________________
Svxlink-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/svxlink-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Combining ID and squelch close via Tcl

Rob Janssen
In reply to this post by Nils Prause
On Wed, Aug 17, 2016 at 01:12:44PM +0200, Nils Prause wrote:

> I hope to do this with some Tcl stuff. Getting a variable which shows if
> the RX squelch is open or not is no big thing. But I still need a way to
> pause the ID as long as the squelch is open.
>
> Something like this:
>
> proc checkPeriodicIdent
>    do
>       puts "I'm still waiting for the squelch to close"
>    until (!$sql_open)
>
> or something like that.
>
> I tried some things with vwait and some other keywords but I'm not
> familiar enogugh with Tcl to solve this without crashing the SvxLink
> process completely.. :-)

This is not possible because the entire svxlink is a single-treaded
process.  When an event occurs it calls your TCL script, but this script
cannot wait for other events to occur as these events can only occur
when svxlink is running other code.

Even sequences like "send some beep", "pause a while", "play some wav
file" and the CW ID generator are not doing their task while inside
the TCL script.  All those beeps and pauses are merely queued into a
buffer and then played in real time by the svxlink C++ code after your
TCL script has already completed.

When you spin-loop inside a TCL script it will just block the entire
program and render it inoperative.

But of course, when svxlink knows when your squelch closes, it is
possible to do things in the particular TCL routine called at that
time (like send_rgr_sound) and you can choose to send your CW ID
at that point.

------------------------------------------------------------------------------
_______________________________________________
Svxlink-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/svxlink-devel
Loading...