Tcl-Routinen

Die TCL-Skripte im Verzeichnis /usr/share/svxlink/events.d/ stellen sozusagen die Präsentationsebene von SvxLink dar. Hier wird festgelegt auf welche Art und Weise beim Eintreten von bestimmten Ereignissen die Ausgaben erfolgen, ob z.B. vor oder nach einer Ansage noch ein Ton gesendet wird, wenn ja in welcher Höhe und Länge…usw.

Ein paar Beispiele

Ereignis Funktion im Tcl-Skript
Öffnen oder Schliessen der Rauschsperre Logic.tcl -> squelch_open{}
Schließen der Rauschsperre und Ablauf des RGR-Timers Logic.tcl -> send_rgr_sound{}
Empfang des DTMF-digits „*“ Logic.tcl -> manual_identification{}
Sender ein oder aus Logic.tcl -> transmit{}

Beispiel für Änderungen am Roger-Piep
Der für den Roger-Piep zuständige Abschnitt in der /usr/share/svxlink/events.d/Logic.tcl ist die Prozedur send_rgr_sound{}:
#
# Executed when the squelch just have closed and the RGR_SOUND_DELAY timer has
# expired.
#
proc send_rgr_sound {} {
 variable sql_rx_id;

 playTone 440 80 50;
 playSilence 50;

 for {set i 0} {$i < $sql_rx_id} {incr i 1} {
  playTone 880 50 50;
  playSilence 50;
 }
 playSilence 100;
}

playTone 440 80 50; erzeugt einen Ton von 440 Hertz mit eine Amplitude von 80 und einer Länge von 50 Millisekunden. playSilence 50; liefert eine Pause von 50 ms. Der darauf folgende Abschnitt

for {set i 0} {$i < $sql_rx_id} {incr i 1} {
 playTone 880 50 50;
 playSilence 50;
}

ist nur interessant, wenn Sie mehrere remote-trx betreiben. Anhand der Anzahl der nachfolgenden Töne läßt sich ermitteln, über welchen Rx die vorhergehende Sendung aufgenommen wurde.

In der Logic.tcl gibt es ca. 38 Routinen, welche bei unterschiedlichsten Ereignissen ausgeführt werden, so dass sich sicher für jeden nur erdenklichen Fall eine Konfiguration für ein bestimmtes Ereignis realisieren läßt. Achte Sie aber bei Anpassungen darauf, dass diese in userspezifischen tcl-Dateien passieren und NICHT in den mitgelieferten tcl-Routinen. Weitere Informationen finden Sie unter „locale-Konzept“: http://svxlink.de/?page_id=903