Eine tcl Routine "blockiert" eine andere

  • Hallo OMs!

    Ich habe zwei zusätzlche TCLs unter /usr/share/svxlink/events.d/local ...
    Eine soll den Disconnect verhindern, wie unter 'http://svxlink.de/?page_id=957' beschieben.
    Die zweite soll im EL Modul die Kommandos 31,32,50 und 51 deaktivieren. Leider funktioniert das nur wenn ich die "disconnect.tcl" wieder lösche.

    Anders herum: Sind beide TCLs im Verzeichnis funktioniert nur das deaktivieren des Disconnect. Die zweite wird scheinbar ignoriert.
    Hat jemand eine Idee?
    Vielen Dank!
    73 Jürgen

  • Hi Juergen,

    das kann schon passieren wenn Du zwei Prozeduren mit gleichem Namen innerhalb des selben Namespaces hast, dann "gewinnt" die die als letztes geladen wird. Es waere guenstig mal die betreffenden Dateien anschauen zu koennen.

    Ich bin aber noch unterwegs, ab Dienstag habe ich wieder Zeit.

    vy 73s de Adi, DL1HRC

  • Hi Jürgen,

    ich habe mir mal die beiden Dateien angeschaut und es ist genau wie ich es vermutet habe, beide ändern ein und die selbe Funktion innerhalb eines Namespaces. Damit gewinnt die Änderung, die als letztes geladen wurde:

    Tcl-Datei 1:

    Code
    namespace eval Logic {   proc dtmf_cmd_received {cmd} {   ...   }}

    Tcl-Datei 2:

    Code
    namespace eval Logic {
       proc dtmf_cmd_received {cmd} {
       ...
       }
    }

    In so einem Fall muß man beide Funktionen zu einer zusammenfassen.

    vy 73's de Adi, DL1HRC