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

Repeater Timeout notification #660

Open
f5vmr opened this issue Jan 17, 2024 · 1 comment
Open

Repeater Timeout notification #660

f5vmr opened this issue Jan 17, 2024 · 1 comment

Comments

@f5vmr
Copy link

f5vmr commented Jan 17, 2024

When implementing in [Rx1] SQL_TIMEOUT=300 (for example), a repeater installation simply issues a rgr-beep and goes into 'boing mode' until shutdown, or the person causing the timeout releases the PTT. All other participants have no idea at the present time, what has occured, but clearly any further transmissions would be ineffective, until the caller drops his transmission. I think it would be beneficial at this moment to perhaps consider that a variable "TIMEOUT" be added to the $reason list in the c++ to be able to be read in the RepeaterLogic.tcl and passed to Logic.tcl to a playMsg "Core" "timeout" announcing that the initial caller had overrun. (enabling the others to call him out on speaking for too long - LOL.) Only if another station stronger in RF than the blocking station can perhaps reset the timer?

Would this be a simple fix in the RepeaterLogic.cpp or other connected file to enable this addition.

73 - Chris.

@f5vmr
Copy link
Author

f5vmr commented Jul 12, 2024

I have created this code to replace proc squelch_open in Logic.tcl.
proc squelch_open {rx_id is_open} {
variable sql_rx_id;
variable second_tick_subscribers;
global time_elapsed;
global squelch_is_open;

set sql_rx_id $rx_id;
set squelch_is_open $is_open;

if {$is_open} {
set time_elapsed 0;
lappend second_tick_subscribers check_squelch_timeout;
} else {
if {$time_elapsed >= 180} {
playMsg "Default" "timeout";
}
set time_elapsed 0;
set second_tick_subscribers [lsearch -all -inline -not $second_tick_subscribers check_squelch_timeout];
}
}

proc check_squelch_timeout {} {
global time_elapsed;
global squelch_is_open;

if {$squelch_is_open} {
incr time_elapsed;
puts "Time elapsed: $time_elapsed";

if {$time_elapsed >= 180} {
  sound_timeout;
}
return 1;

} else {
return 0;
}
}

proc sound_timeout {} {
playTone 850 700 100
}
This code runs when the squelch is opened, and closes normally, however provides a count of duration, that if exceeding 180 seconds, will superimpose a regular pip tone upon the emission of the repeater or module, until the squelch is closed, when the verbal announcement of "timeout" is transmitted. The duration of the counter is reset, and the repeater/Simplex unit resumes its normal operation.

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

1 participant