svxlink
svxlink copied to clipboard
1st version of an AnnounceLogic. It is used to broadcast audio messag…
…es "Rundsprueche" at predefined time/dates to connected logics or repeater systems.
Maybe could be interesting? mni 73s de Adi / DL1HRC
@dl1hrc
I have been working on a similar system but mine is all TCL so no need to compile anything. Not saying mine is better by any means, just a different approach. We should compare notes and merge approaches into a single setup so we are not doing redundant work
ok Daniel, my approach was to have a stupid core logic that provide a simple functionality for streaming announcements into a reflector linked network, normally known as broadcasts. Some ideas what an AnnounceLogic should do (in my opinion):
- linking it with all reflectors that are available on a local node by command (dtmf, pty ...)
- time/date controlled playback of announcements
- sending out announcements e.g. once a year/month/week/day/hour/minute due to configuration
- sending greetings (Whitsun, Easter, ...)
- dynamic playback of announcements "on-the-fly"
- no influence to the linked logics (rx/tx) out of playing back announcements
It's just an idea, it should be very flexible, e.g. if you have 4 links it should be no problem to link a single AnnounceLogic as well as to have 4 different AnnounceLogics. Maybe I have to work on it to fulfill this requirement.
Mni 73s de Adi / DL1HRC
Here are my so far very simple working scripts, not ready for error handling, polite announcing, etc yet, but should show the basic approach for the arrays annoucements.zip
ok, the question is does it send it into the network or does it announce it only at the local node? My idea was to send the information to all connected nodes from time to time.
My scripts are setup to use a simple array of data (needs expanded for month and year still, with start and stop conditions, etc)
So far the data array looks like this
Day of week (wildcard or 0-6) Hour of day (wildcard or specific 24 hour) Minute (0-59) .wav path to announcement to play (assumption is you will have a single file rather than stitching together a bunch of words)
So its something like this
#D H M Path
-
- 10 /path/to/announcement.wav
This will then play the announcement every day, every hour at the 10 minute marker.
At the 1 min timer, the script itterates thru the list and plays any announcements that are due using the existing functions (playsound? Need to review)
I will dig up some files to share so you can take a look at the approach I am using
Dan
On Sun, Sep 4, 2022, 9:44 AM Adi Bier @.***> wrote:
ok Daniel, my approach was to have a stupid core logic that provide a simple functionality for streaming announcements into a reflector linked network, normally known as broadcasts. Some ideas what an AnnounceLogic should do (in my opinion):
- linking it with all reflectors that are available on a local node by command (dtmf, pty ...)
- time/date controlled playback of announcements
- sending out announcements e.g. once a year/month/week/day/hour/minute due to configuration
- sending greetings (Whitsun, Easter, ...)
- dynamic playback of announcements "on-the-fly"
- no influence to the linked logics (rx/tx) out of playing back announcements
It's just an idea, it should be very flexible, e.g. if you have 4 links it should be no problem to link a single AnnounceLogic as well as to have 4 different AnnounceLogics. Maybe I have to work on it to fulfill this requirement.
Mni 73s de Adi / DL1HRC
— Reply to this email directly, view it on GitHub https://github.com/sm0svx/svxlink/pull/586#issuecomment-1236377217, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACPI3DJNQXKC6QLGL53EUNTV4TGXZANCNFSM5Y5SYNEQ . You are receiving this because you commented.Message ID: @.***>
ok, just checked in the changes according to your hints. Thank you! Mni 73s de Adi / DL1HRC
Adi,
I suggest adding README.adoc which will contain short info about AnnounceLogic and how to compile like
..... -DWITH_CONTRIB_ANNOUNCE_LOGIC=ON
it will be useful who will try to use
and maybe link to your PDF document (in Germany language) where is more info about this
73 Waldek
Adi,
It will be useful to add info that we need to create in the sounds directory AnnounceLogic/ which contains the file prenotification.wav Can you write what this file contains?
I see in AnnounceLogic.tcl that this Logic use sounds wav files "prenotify.wav". "Broadcast.wav" do you have example?
Adi,
Please check the files:
https://github.com/sm0svx/svxlink/blob/master/src/svxlink/svxlink/contrib/AnnounceLogic/AnnounceLogic.conf.5 and https://github.com/sm0svx/svxlink/blob/master/src/svxlink/svxlink/contrib/AnnounceLogic/AnnounceLogic.conf.in
different parameters contains it looks like AnnounceLogic.conf.5 is not from this branch ??? maybe I do not understand the full AnnounceLogic ?
Adi,
I suggest a change in this file https://github.com/sm0svx/svxlink/blob/master/src/svxlink/svxlink/contrib/AnnounceLogic/AnnounceLogic.conf.in
[Announce]
to
[AnnounceLogic]
it will be compatible with name of tcl file
https://github.com/sm0svx/svxlink/blob/master/src/svxlink/svxlink/contrib/AnnounceLogic/AnnounceLogic.tcl
namespace eval AnnounceLogic {
or I am wrong
73 Waldek
Hi Waldek, thank you for the hints, will check it soon. Mni 73s de Adi / DL1HRC