Thanks Wayne,
just the nudge I needed to take an alternate look.

I set up a UDP RLM like this

[Udp1]
IpAddress=127.0.0.1
UdpPort=5861
FormatString=CART=%n BCTIME=%d(hh:mm)\n
Encoding=0
ProcessNullUpdates=1
MasterLog=Yes
Aux1Log=No
Aux2Log=No

Since I only want to get data for the one CART when it plays, I run nc from within the shell script for as long as it takes.

# takes the udp output of RDAIRPLAY looks for line with CART
# adds it to log

nc -d -u -l 5861 |        (

while read -t 1800 REPLY; do

# time out set to 3 minutes in case cart gets bumped by time event
#REPLY is default output of read

  if [[ "$REPLY" == *"CART=002005"* ]]; then

    #when we get it peel of broadcast time and put it in log
    echo "${REPLY:(-13)}" > /home/rd/zexacary.log
    break
  fi

done
                                )
exit 0

I could have set the CART as a variable; this is the quick and dirty.

The script carts and plays each item 3 times over 70 minutes.

The log gets emailed to me.
I had to use sed to get rid of the '\r' in the lines that are generated by the UDP RLM so the data comes as a message not as an attachment. I decided to run nc as needed. One less permanent process. Accurate reporting when you have three up at any time.

It runs every 10 minutes. When there is a bulletin the script gives each instance a unique ID so it is possible to have several info bulletins running simultaneously. ' Weather events as they happen' play in a FIFO series of snippets just often enough. In this area we get 'weather bombs' about once every 18 months. Some are supposed to be once in 20 and once in 50 year events. When you get 200mm of rain in a few hours on the top of a steep sided mountain range it's got two ways to flow and both of them are down. The flat area at the bottom on both sides of a 50km ridge is between 500m and 2km from the ocean. When the rain hits the [king] high tide the rivers back up and everything floods. First storm in a while it takes time. The second one while everything is still wet is the jackpot.
We're in between a significant one and a follow up one right now!
It's never a question of if it's going to happen it's more where.
People who come on holidays and weekends, still insist on trying to drive everywhere, ford flooded rivers, complain when the power goes out, and wonder why it takes so log to get trucks and excavators past all sorts of blockages to clear something outside their place.
The locals have an unkind name for such people.
I have had the playout script running for a while. Now I can produce a log of actual broadcast times. This along with archive copies of all announcements helps local Civil Defence demonstrate that they are doing their best. Our CD media liason is an ex radio guy and when it's really turning pear shaped delivers audio bulletins every 15 minutes.

Thanks again Wayne, and RD, keeping radio always on, always local.

regards
Robert

On 10/07/16 02:46, Wayne Merricks wrote:
Hi,

I used the UDP rlm to do this in house as I found the icecast rlm to sometimes do strange things in our weird set up. I have the following udp conf (for rlm):

[Udp1]
IpAddress=127.0.0.1
UdpPort=5860
FormatString=CART=%n\nTITLE=%t\nARTIST=%a\nALBUM=%l\nMS=%h\n
Encoding=0
ProcessNullUpdates=1
MasterLog=Onair
Aux1Log=No
Aux2Log=No

Obviously remove the bits you don't need, I assume you could literally stick with a cart number as:

FormatString=%n\n

That way you're just dealing with cart numbers and nothing else each time.

Then I have a reader script that just does this:

CARTNUM=123456

while true; do
  read RAWDATA

  if [[ $RAWDATA == $CARTNUM ]]; then

    #This is the cart you wanted do something

  fi

done

In order to start the listening port I use nc and another script (via screen):

screen -d -m -S updreader bash -c "nc -l -u -p 5860 | /path/to/reader/script.sh"

Hope that makes sense,

Wayne

On 2016-07-09 00:40, Robert Jeffares wrote:
I have a script which  picks up [road] traffic information from a
dropbox and plays it 3 times.
 Audio is carted using rdimport and using RML PX it gets placed next
and goes to air.
 Works well and handles multiple bulletins.
 When we have bad weather we have lots of data!

 I want to get the actual broadcast times and put them in the log the
shell script generates.

 I thought I could make a macro cart which I can put in the log first,
then put the traffic cart in so they play in sequence, the macro cart
outputting time of day.

 I have thought of using Now & Next to somehow get data when that
unique cart plays.

 Monitoring port 5860 and pulling in the data is something I can
manage.

 But the how to generate the data in the first place is causing acute
brain fade.

 Someone will have done this somewhere for something else.

 regards
 Robert Jeffares

_______________________________________________
Rivendell-dev mailing list
[email protected]
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev

--
*Communication Consultants*
64 Warner Park Avenue

Laingholm

Auckland 0604

09 8176358

0221693124

06 650 6087
_______________________________________________
Rivendell-dev mailing list
[email protected]
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev

Reply via email to