Akustische Kennung der NetLink - Teilnehmer

  • Hallo Svxserver - Fans,


    mit dieser kleinen Erweiterung können wir in unserem Verbund - derzeit 5 Teilenhmer - akustisch beim Betätigen der PTT unterscheiden, wer gerade sendet:


    Der Parameter playTone 330 variiert bei jedem Teilnehmer, jeder hat also einen individuellen Ton. Mit iterations 5 könnt ihr noch die Länge des Signals definieren. Einfach mal rumspielen!

  • Hallo Frank,


    Danke für die das Skript sowas haben wir hier immer gesucht...


    Ich habe es gleich eingefückt und es funktioniert.


    DO7SK - Sven

  • Noch ein Hinweis: Da die Prozedur repeater_up verwendet wird, ist die Ausgabe des "Pings" von der Abfallzeit der NetLogic (Repeater) abhängig, d.h. wird in der NetLogic-Definition ein IDLE_TIMEOUT von z.B. 20 Sekunden definiert, so erfolgt der "Ping" am Anfang der ersten Sendung und erst dann wieder wenn für 20 Sekunden kein Durchgang erfolgte, also sozusagen der "virtuelle Repeater" innerhalb der NetLogic abgefallen ist. Ich weiß nicht ob ich das jetzt eventuell zu kompliziert erklärt habe. Probiert einfach mit dem Parameter IDLE_TIMEOUT=xx in der NetLogic ein bisschen herum.


    vy 73s de Adi / DL1HRC

  • Hallo,


    Ich habe den Wert IDLE_TIMEOUT=1 gesetzt.


    Es funktioniert gut nur wenn keine Sprechpausen gelassen werden dann klappt es wie Adi schon sagt nicht mehr.


    DO7SK - Sven

  • Hallo zusammen,



    ab welcher Svxlink Version funktioniert das denn?
    Ich nutze 1.4.99.23 und es funktioniert leider nicht.



    Gruß Sebastian DL1ESK

  • Hallo,


    was heißt genau "...es funktioniert leider nicht."?
    Was hast Du konfiguriert, wie viele Stationen usw. Ein bisschen mehr mußt Du schon mitteilen.
    Die Version ist fast egal, sollte auch mit 2 Jahre alten Versionen funktionieren.


    73s Adi / DL1HRC

  • Hallo Adi,



    in der Config ist das ganze folgendermaßen konfiguriert:



    [NetLink]
    NAME=NetLink
    DEFAULT_ACTIVE=1
    TIMEOUT=300
    CONNECT_LOGICS=RepeaterLogic:123:DB0FTS,NetLogic #123 habe ich anstatt des eigentlichen Dtmf Codes eingegeben


    [NetLogic]
    TYPE=Simplex
    RX=NetRx
    TX=NetTx
    CALLSIGN=DM0KR
    EVENT_HANDLER=/usr/share/svxlink/events.tcl
    DEFAULT_LANG=de_DE
    OPEN_ON_SQL=50
    OPEN_SQL_FLANK=OPEN
    NO_REPEAT=1
    IDLE_TIMEOUT=1


    [NetRx]
    TYPE=Net



    Wie Du siehst ist das 'Relais via Simplex Link mit dem SvxServer verbunden.



    Mfg Sebastian

  • Hi Sebastian,


    das ist aber sicher noch nicht Deine gesamte Konfiguration, es sind weitere Änderungen in den Abschnitten
    [GLOBAL], [NetRx] und [NetTx] erforderlich. Verbindet sich denn Deine Logik mit dem SvxServer?
    Schick mir mal Deine svxlink.conf und die Logausgabe zu (nicht über's Forum). Weiterhin muß die Art der NetLogic (Simplex oder Repeater) mit den anderen Verbundenen Systemen übereinstimmen. Warum das so ist habe ich allerdings noch nicht rausfinden können.


    73s de Adi / DL1HRC

  • Hi Adi,


    ja die Logik verbindet sich mit dem SvxServer und es funktioniert auch alles, lediglich die Akustische Kennung wie beschrieben kommt nicht.




    Gruß Sebastian

  • Hallo SvxServer Gemeinde,


    wenn ich das richtig verstehe muss es auch bei den anderen im Verbund in der NetLogic.tcl stehen ist das richtig?? oder sogar in der RepeaterLogic.tcl ??


    muss ich in der svxconf, unter global noch was eintragen??


    danke für die Infos.



    73 Jens, dj1jay --Thüringen-Link--(PLUS) @db0fts.de

  • Quote

    ja die Logik verbindet sich mit dem SvxServer und es funktioniert auch alles, lediglich die Akustische Kennung wie beschrieben kommt nicht.


    ach so, ich dachte das geht ALLES überhaupt gar nicht.
    Nee, so wird das auch nicht gehen mit dem Audio, Du hast eine SimplexLogic als NetLogik definiert und da wird die Prozedur repeater_up{} niemals ausgeführt, da dieser Bereich ja kein Repeater ist und nicht "UP" sein kann


    vy 73s de Adi / DL1HRC

  • Hallo adi,



    ja wir haben jetzt alle auf Repeater umgestellt und es funktioniert.
    Auch einen CW Buchstaben anstatt des Sonars auszugeben funktioniert soweit.
    Gibt es eine Möglichkeit die Lautstärke des ausgegebenen Tons zu definieren?



    73 Sebastian

  • Hi Sebastian,


    geht wie folgt, zB.:


    CW::setPitch 800;
    CW::setAmplitude 500;
    CW::setCpm 100;


    sind die Defaultwerte, vor der Ausgabe der gewünschten Zeichen einfach CW::setAmplitude xxx; einsetzen oder wenn man es global ändern möchte über das locale Konzept die Defaultwerte des Namespaces CW überschreiben.


    73s de Adi / DL1HRC

  • Hi Adi,



    danke für Deine schnelle Info, ich werde es gleich testen....
    Mit diesem Script wird ja am Anfang der Aussendung der Ton bzw CW ausgegeben, ist es möglich dies auch am Ende der Aussendung zu realisieren?!
    Also anstatt am Anfang halt am Ende.



    P.S. Danke für die tolle Arbeit die Du hier leistest....


    73 Sebastian

  • Hi Sebastian,


    also eine Möglichkeit wäre es in der Prozedur repeater_down statt repeater_up unterzubringen, dann kommt es immer dann, wenn die NetLogic abfällt, also möglicherweise nicht nach jedem Durchgang sondern abhängig davon wie lange die Haltezeit (IDLE_TIMEOUT=xx) ist.
    Eine andere Variante wäre den Roger-Beep zu ersetzen bwz. zu aktivieren, siehe send_rgr_sound


    Code
    namespace eval NetLogic {
    #
    # Executed when the squelch just have closed and the RGR_SOUND_DELAY timer has
    # expired.
    #
    proc send_rgr_sound {} {
       playTone 900 100 100;
    }
    }


    Mußt mal ein bisschen probieren, in der NetLogic ist der Parameter RGR_SOUND_DELAY natürlich zu aktivieren.


    Quote

    P.S. Danke für die tolle Arbeit die Du hier leistest....


    Danke :oops:


    vy 73s de Adi / DL1HRC

  • Hallo Adi,



    wenn es aber kommt wenn die Netlogic abfällt dann kann man aber nicht mehr die unterschiedlichen Teilnehmer identifizieren, da dann immer der definierte Roger Beep kommt.
    Sinn und Zweck des Versuchs ist es ja die einzelnen Stationen bzw Relais identifizieren zu können von denen gerade gesendet wurde.
    Ich gehe davon aus das dies dann lediglich ein Standard Beep wäre der signalisiert das der letzte Durchgang via NetLink kam.
    Sehe ich das richtig?



    Gruß Sebastian

  • Hi Sebastian,


    ja, das ist richtig, da Du ja vom SvxServer nur einen Audiostream empfängst, unabhängig davon welcher andere Teilnehmer gerade sendet kannst Du auf Deinem Node nur feststellen, ob jemand per HF oder per SvxServer hereinkommt. Eine Unterscheidung müßte auf der sendenden Station generiert werden, also in der NetLogic jedes einzelnen Teilnehmers. Das könnte beim "Auftasten" oder "Abfallen" der jeweiligen NetLogic erfolgen (repeater_up). Hier könnte jeder ein typisches Erkennungszeichen mitsenden. Aber das müssen alle natürlich miteinander absprechen. Bei Netlogiken, die als Repeater arbeiten wäre da eine Haltezeit von 1 Sekunde angebracht.
    Das ist jetzt erst mal etwas theoretisch, probiert habe ich es noch nicht....wäre doch mal was, oder? :D


    vy 73s de Adi / DL1HRC

  • Hi Adi,



    ich werde da mal testen und schauen was dabei raus kommt....
    Kann man denn nicht etwas über die Sql_Close Funktion initiieren?
    Ich hatte damit mal probiert aber iwie klappte es nicht.
    In der Netlogic steht ja folgendes:


    #
    # Executed when the repeater is activated
    # reason - The reason why the repeater was activated
    # SQL_CLOSE - Open on squelch, close flank
    # SQL_OPEN - Open on squelch, open flank
    # CTCSS_CLOSE - Open on CTCSS, squelch close flank
    # CTCSS_OPEN - Open on CTCSS, squelch open flank
    # TONE - Open on tone burst (always on squelch close)
    # DTMF - Open on DTMF digit (always on squelch close)
    # MODULE - Open on module activation
    # AUDIO - Open on incoming audio (module or logic linking)
    # SQL_RPT_REOPEN - Reopen on squelch after repeater down



    AUDIO nutzen wir ja momentan dafür um den Ton zu generieren, es müsste doch möglich sein dann als zusätzliche Bedingung zB. SQL_Close anzugeben, so das es ist wie beim auftasten des Repeaters das dieser erst die Kennung sendet wenn der lokale Squelch wieder geschlossen ist.
    In der Logic.tcl steht auch folgendes:


    # Contains the ID of the last receiver that indicated squelch activity
    #
    variable sql_rx_id 0;


    Kann man den einzelnen Teilnehmern iwie eine ID verpassen und diese dann auswerten?!
    Wäre somit ja auch eine Möglichkeit dann lokal zu sagen ID 1 Ton 1 ID 2 Ton 2 etc..




    73 Sebastian

  • Hallo zusammen,



    ich habe jetzt mal ein wenig rumgespielt mit der Funktion repeater_down und als reason IDLE genommen.
    Dann hat man aber das Problem das die Kennung dann bei jeder Deaktivierung des Netlinks gesendet wird unabhängig von wem das Signal kam und dies endet in einer Endlosschleife.


    ###############################################################################
    #
    # NetLogic event handlers
    #
    ###############################################################################


    #
    # This is the namespace in which all functions below will exist. The name
    # must match the corresponding section "[RepeaterLogic]" in the configuration
    # file. The name may be changed but it must be changed in both places.
    #
    namespace eval NetLogic {
    global status_netlink;


    #
    #Sonareffekt via Netlink erzeugen
    #
    proc repeater_down {reason} {
    variable status_netlink;

    if { $reason == "IDLE" } {
    set iterations 1;
    set base 2;
    set max [expr {pow($base, $iterations)}];
    for {set i $iterations} {$i>0} {set i [expr $i - 1]} {
    #playTone 330 [expr {round(pow($base, $i) * 150 / $max)}] 100;
    #playTone 430 [expr {round(pow($base, $i) * 150 / $max)}] 100;
    CW::setPitch 600;
    CW::setAmplitude 500;
    CW::setCpm 90;
    CW::play "R"
    return;
    }
    }
    }



    # end of namespace
    }


    #
    # This file has not been truncated

  • ja, bei der Soundgenerierung muß man aufpassen, dass dieses Event nicht wieder zur Öffnung der Rauschsperre führt und es eine Endlosschleife wird.
    Ehrlich gesagt, ich habe momentan wenig Zeit mich damit zu beschäftigen, müßt Euch mal selbst durchbeißen.


    vy 73s de Adi / DL1HRC