Commit 0ca17321 authored by YargoA2's avatar YargoA2

cosmetics; change ToC timing base

parent 51c4b487
......@@ -31,7 +31,7 @@ Verzeichnisstruktur:
- SLICETIME: Zeitscheibenlaenge
- SLICEDEPTH: Anzahl vorauszuberechnender Zeitscheiben
- TOCLENGTH: maximale Laenge [sec] des Inhaltsverzeichnisses
- TOCPERIOD: Sendeperiode [sec] des Inhaltsverzeichnisses
- TOCSLICES: Anzahl Zeitscheiben zwischen Inhaltsverzeichnis-Sendungen
- POSTPROCESSOR: Skript zum Postprozessing: Umlaute, verbotene Woerter, ...
- WPM: Tastgeschwindigkeit (kann durch Rezept oder Prio veraendert werden)
- SOURCES: Liste von IDENTIFICATIONs (Quellen), welche gesendet werden sollen
......@@ -90,7 +90,7 @@ _ok, shellscript_ `src/ambros`
### Bereiter
_ok, shellscript_ `scr/extractor`
_ok, shellscript_ `src/extractor`
- gestartet von `Kontroller`
- holt Rohdaten mit `Sauger` und wandelt sie mittels Rezepten
......@@ -111,11 +111,20 @@ _ok, shellscript_ `src/fetcher`
_shellscript_ `src/planner`
- erstellt `SendeTexte` (formatierte Texte) via Filesystem fuer `Sendechef`,
basierend auf aktuellem Status und _Durchsatzoptimierung_
basierend auf aktuellem Status und Durchsatzoptimierung
- erzeugt Filenamen aufsteigend je Kanalprefix
- erzeugt Sendeplan zur Uebertragung zu vordefinierten Zeiten
- eine Instanz je Kanalprefix
### Durchsatz-Optimierer
_shellscript_ `src/optimize`
- berechnet beste Anordnung der `SendeTexte` (aus stdin) und gibt sie
umgestellt wieder aus (stdout)
- stdin&stdout: Liste der Textdateinamen und ihrer jeweiligen Kosten
- Argumente: Dateien mit Kostenfunktions-Parametern und Kanalkonfiguration
### Sendechef
_shellscript_ `scr/sender`
......@@ -134,7 +143,7 @@ _shellscript_ `scr/sender`
## Signale
### HUP,STOP
### SIGDAEMONTERMINATE
- Abbruchsignal
- von ambros.sh
......@@ -146,7 +155,7 @@ _shellscript_ `scr/sender`
- von extern
- fuer ambros.sh
### USR1
### SIGDAEMONRESTART
- Signal zum Neulesen der Konfiguration und Neustart
- von ambros.sh
......@@ -253,7 +262,7 @@ Skript, Zusatzprogrammen zum Morsen sowie evtl Kommunikationsverbindungen
#### allgemeine Kosten:
- Leerzeit in Zeitscheibe: `q.n=Zeit([Prio.10-49]/Zeitscheibenlaenge)`
- Leerzeit in Zeitscheibe: `q.n=Zeit([Prio.10-59]/Zeitscheibenlaenge)`
- Konstanten in Kostenfunktion: `k.A, k.P, g.(), f.()`
#### Einzelkosten:
......@@ -331,4 +340,3 @@ Bit 7 muss gesetzt sein fuer Morsedaten, geloescht fuer Steuerdaten
- 1 = Tempo in WPM mit 1 Byte Argument, minimal Tempo 1WPM, maximal Tempo 255WPM; "Tempo 0" wird ignoriert, folglich am einfachsten 0 fuer Start-&Stopbyte; *muss* vor ersten Morsedaten gegeben sein, sonst Default-Tempo; Tempo-Basis ist PARIS
- 0x20 .. 0x2F = Kommentar (inkl Argument komplett ignoriert)
---
......@@ -2,7 +2,7 @@
SLICETIME 600 sec
SLICEDEPTH 2
TOCLENGTH 100 sec
TOCPERIOD 900 sec = 1/4 h
TOCSLICES 3 slices
POSTPROCESSOR /bin/cat
WPM 23 wpm
SOURCES utc
......@@ -10,12 +10,26 @@
# save channel name for reference - but we should already be in that directory
chan=$1
logf=`logfile planner-$chan`
myself=planner-$chan
logf=`logfile $myself`
statf=$STATUSDIR/$myself
statrep $statf STATUS initializing
# check if config file present, if not, sleep to reduce load
if ! -r $CHANNELCONFIG
then
logit $logf FAIL missing config file $CHANNELCONFIG
statrep $statf STATUS FAIL missing config file $CHANNELCONFIG
sleep 10
return 1
fi
# check if prefix defined -- we cannot define it here by ourselves!
if ! prefix=`configread $CHANNELCONFIG PREFIX`
then
logit $logf FAIL missing PREFIX definition in $CHANNELCONFIG
statrep $statf STATUS FAIL missing PREFIX definition in $CHANNELCONFIG
sleep 10
return 1
fi
......@@ -28,7 +42,7 @@ restart () {
# flag initially _set_ to force initializing during launch
# will be reset after initialization routine
RESTARTPLANNER=1
trap restart USR1
trap restart $SIGDAEMONRESTART
# handler for stopping
finish () {
......@@ -36,35 +50,26 @@ finish () {
ABORTPLANNER=1
}
ABORTPLANNER=0
trap finish HUP INT STOP
trap finish $SIGDAEMONTERMINATE
while test ABORTPLANNER -eq 0
# reduce load in case of severe bugs/problems
do sleep 3
if test $RESTARTPLANNER -eq 1
then
sources=`configread $CHANNELCONFIG SOURCES ',:;'`
logit $logf config sources: $sources"
# last resource default: speed 10WpM
speed=`configread $CHANNELCONFIG WPM`
speed=${speed:-$SPEED}
speed=${speed:-10}
logit $logf config speed: $speed
# last resource defaults: slicetime 10min, slicedepth 0
slicetime=`configread $CHANNELCONFIG SLICETIME`
slicetime=${slicetime:-600}
slicedepth=`configread $CHANNELCONFIG SLICEDEPTH`
slicedepth=${slicedepth:-0}
logit $logf config slice time: $slicetime , depth: $slicedepth
# last resource default: no postprocessor, i.e `cat`
postprocessor=`configread $CHANNELCONFIG POSTPROCESSOR`
postprocessor=${postprocessor:-/bin/cat}
logit $logf config postprocessor: $postprocessor
# last resource defaults: ToC length 2min, ToC retransmission period 30min
# last resource defaults: ToC length 2min, ToC retransmission period 3 slices
toclength=`configread $CHANNELCONFIG TOCLENGTH`
toclength=${toclength:-120}
tocperiod=`configread $CHANNELCONFIG TOCPERIOD`
tocperiod=${tocperiod:-1800}
tocslices=`configread $CHANNELCONFIG TOCSLICES`
tocslices=${tocslices:-3}
# do not restart until signal received again
RESTARTPLANNER=0
fi
done
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment