Ergebnis 1 bis 7 von 7

Thema: [Pocsag] Express Alamierung

  1. #1
    MeisterBrand Gast

    [gelöst] [Pocsag] Express Alamierung

    Heyho,

    ich muss leider feststellen, dass monitor die Express-Alamierung nicht beherrscht!
    Und zwar wird dabei ja vor dem eigentlichen Telegramm mit dem Alamierungstext ein leeres Telegramm gesendet, für jeden Empfänger einzeln. Sind alle Empfänger durch ein leeres Telegramm und entsprechende RIC alamiert, kommt über eine konstante RIC die Alamierung. Problem dabei: monitor zeigt diese leeren Pocsag-Telegramme oder Nachrichten nicht an und ich kriege nicht heraus, was ich im Quelltext ändern müsste, damit das funktioniert.

    Hat einer eine Idee oder gar eine monitor-Version mit funktionierender Express-Alamierung?

    Viele Grüße
    Geändert von MeisterBrand (13.11.2006 um 11:26 Uhr)

  2. #2
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    Idee ohne bisherige Lösung:

    pocsag.c ab Zeile 1334:

    Hier wird das bisher empfangene Adresswort verworfen, wenn kein gültiges Datenwort folgt. Bei Nur-Ton Rufen ist das ja gerade so.

    Könnte auch noch ab Zeile 423 pocsag_printmessage sein. Ggf. mal ein paar printf's einbauen.

  3. #3
    MeisterBrand Gast
    Folgendes Resultat:

    Habe in pogsac.c:1334 die If-Klausel "(rxword >= 16)" herauskommentiert, dabei zeigt sich folgendes:
    Die leeren Pogsac-Meldungen kommen nicht an, aber die, die ankommen, werden nicht mehr korrekt ausgewertet.
    Z.B. ist ein eine Meldung dann so (Auszug): !P"'P"ws29Pf4:z2g792t73

    Also das hat nix gebracht.

    Lebt M. Grohmann eigentlich noch? Bei ICQ ist er ja nie online, darum habe ich ihm mal eine E-Mail geschickt. Mal abwarten, wenn nicht hier noch gute Ideen kommen.

    Übrigens:
    Ich habe auch probiert, die Funktion text_accept() in pocsag_printmessage zu umgehen mit einem return 1; , aber auch das hilft nicht.

  4. #4
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    Versuch mal ca. Zeile 672 (hinter check_last() )

    die if Abfage würde bei Null Daten (numnibbles=0) zurückspringen.

    Code:
           if (!rx->numnibbles) return; 
    
            clean_temp(&s->l2.pocsag.temp);
    
            for (i = 0; i < 7; i++) {
                    j = (rx->adr / pow(10,i));
                    set[6 - i] = j - (j / 10) * 10;
            }
    
            memset(message,  0, sizeof(message));
            memset(func,     0, sizeof(func));
            memset(outprint, 0, sizeof(outprint));
            memset(alias,    0, sizeof(alias));
    
            /*      Datenzeile      */
            if (rx->func == 3 && rx->adr >= 4000 && rx->adr <= 5000)
                    print_msg_skyper(rx, message, ctrl);
            else print_msg_alpha(rx, message, ctrl);

  5. #5
    MeisterBrand Gast
    Perfekt!

    Einfach folgende Zeile in der pocsag.c auskommentieren und es geht!

    Code:
    if (!rx->numnibbles) return;
    ->
    Code:
    // if (!rx->numnibbles) return;
    Wunderbar! Besten Dank!

  6. #6
    Registriert seit
    07.09.2003
    Beiträge
    694
    Dann tut uns und Euch den Gefallen und schickt diese Änderung auch noch einmal an M. Grohmann. Der kann das dann offiziell in den Code aufnehmen, damit nicht jeder für sich daran "herumdoktert".

    Gruß,
    Funkwart

  7. #7
    MeisterBrand Gast
    Zitat Zitat von funkwart
    Dann tut uns und Euch den Gefallen und schickt diese Änderung auch noch einmal an M. Grohmann. Der kann das dann offiziell in den Code aufnehmen, damit nicht jeder für sich daran "herumdoktert".

    Gruß,
    Funkwart
    Sollte er mir überhaupt noch antworten, werde ich das selbstverfreilich tun. Ansonsten gehe ich davon aus, dass er seine E-Mails nicht mehr liest.

    Grüße

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •