-
Notifications
You must be signed in to change notification settings - Fork 14
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
rpt_telemetry: Update PAGE command to use correct channel. #493
Conversation
debug.log |
BTW: I suspect this is wrong as well, but have no way to test. app_rpt/apps/app_rpt/rpt_telemetry.c Lines 1171 to 1174 in b73bc4c
|
I have to ask what is the difference between mychannel and txchannel? Was paging broken? |
COP 48 -> is paging. |
I'm not positive, but I don't think this is "right" - a bit out of my comfort zone here: app_rpt/apps/app_rpt/rpt_telemetry.c Line 1172 in c857a1a
Is this a "hidden" malloc? app_rpt/apps/app_rpt/rpt_telemetry.c Line 1156 in c857a1a
Same here: app_rpt/apps/app_rpt/rpt_telemetry.c Line 1149 in c857a1a
|
I gotta ask ... Without the proposed change, the PAGE code appears to be waiting on "mychannel" (an allocated pseudo-channel) and then playing the "page" to "myrpt->txchannel". What's the difference between the two channels? Is the "page" ONLY supposed to go to the "tx" channel? and could we be waiting on the wrong channel? |
The lock out is between |
No. The allocation is here : app_rpt/apps/app_rpt/rpt_functions.c Lines 1584 to 1595 in c857a1a
|
Oh - so my proposed memory leak fix is hidden in the called function? That seems a bit odd/difficult to follow. |
If the intent is for the caller to say "here's everything you need to do what I want and I'm gonna move on" then it's essentially handing off the allocated memory and need not worry about it's disposal. The alternative would be to assume that the rpt_telemetry() call either operates synchronously or that it will make a copy of any data it needs to retain. I'd leave the code alone (having rpt_telemetry free any allocated/passed "data"). Of course, a few comments can't hurt 😄 |
So is mychannel associated with a conference that would cause this to go out to all linked repeaters? If so, that could be the reason it is directed to the txchannel. |
It looks like the conference (as currently being setup) is NOT limited to the local tx conference. app_rpt/apps/app_rpt/rpt_telemetry.c Lines 1057 to 1060 in c857a1a
|
So - what's the right answer? Use |
f7d5489
to
b8bf237
Compare
This code is a bit interesting (as it's not doing what we think?) Debug shows DAHDI joining different conferences but not hearing a difference on the audio route.
Line 2830 in c857a1a
Line 2777 in c857a1a
|
My interpretation/understanding at this point :
In the first two cases (using given pointers), cop 48 1,2,3,4,5,6... will generate "already blocked by thread" debug messages and unreliably transmit tones. Using |
b4aa570
to
004d20a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't really have the expertise to comment here, but I think the most important thing though here is testing. It sounds like mkmer has already tested it, have multiple people validated the old way didn't work properly and the new way works on their systems?
Can you comment on |
And here is what I believe to be the answer to one of my questions : Lines 2773 to 2777 in ce12077
Lines 2808 to 2809 in ce12077
I do think we want to be using the RPT_TELECONF conference |
apps/app_rpt/rpt_telemetry.c
Outdated
@@ -1057,7 +1057,9 @@ void *rpt_tele_thread(void *this) | |||
/* make a conference for the tx */ | |||
/* If the telemetry is only intended for a local audience, only connect the ID audio to the local tx conference so linked systems can't hear it */ | |||
/* first put the channel on the conference in announce mode */ | |||
if (rpt_conf_add(mychannel, myrpt, mytele->mode == ID1 || mytele->mode == PLAYBACK || mytele->mode == TEST_TONE || mytele->mode == STATS_GPS_LEGACY ? RPT_CONF : RPT_TELECONF, RPT_CONF_CONFANN)) { | |||
if (rpt_conf_add(mychannel, myrpt, mytele->mode == MDC1200 || mytele->mode == PAGE || |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure about adding MDC1200 and PAGE here. We want to be treated like LOCALPLAY, not PLAYBACK
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems odd that we would send a TEST_TONE or ID1 out links... Is there a LOCALPLAY defined or is PLAYBACK actually rpt xxx localplay
?
Bit of off line conversation: |
Update MDC1200 command to use correct channel. Local conference for MDC1200 and PAGE to match previous audio path
Does paging work with all duplex settings? |
Addressing issue #481
Looks like we are pointing to the wrong channel.