Ergebnis 1 bis 7 von 7

Thema: monitor-1.8.1 Aufzeichnung über FMS-Status starten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Keen Gast
    Stimmt, die Quelle ist mit Monitor besetzt. Ich hab mir den Quellcode mal durchgesehen. Aber ich bin ehrlich: Dafür reicht es leider nicht. Ich meine die ganze Record-Geschichte hängt stark mit ZVEI zusammen, man könnte höchstens ACTFMS nutzen um @rec zu starten und ihm ZVEI "vorgaukeln".

    C++ ist bei mir Jahre her ....

  2. #2
    Registriert seit
    21.08.2005
    Beiträge
    251
    Zitat Zitat von Keen Beitrag anzeigen
    Ich hab mir den Quellcode mal durchgesehen.
    Ich glaube, dass ist die wesentliche Stelle (demod_zvei.c)
    Code:
    	void zvei_action(void) {
    	/*	Aktion für ZVEI 
    	 *	system ruft die auszufuehrende
    	 *	Datei mit Pfad auf	*/
    ...
    
    
    			while (1) {
    			  if(strcmp(act->string, "(@rec)&")) {
    					time(&tp);
    
    					/*	falls nicht bereits innerhalb der letzten 30 Sec.	*/
    					if (tp - act->value > 1) {//30
    						act->value = tp;
    						system(act->string);
    					}
    	  		}
    				else
    					record_start(al->code.zvei);
    ....
    Die Funktion "record_start" findet sich in der unixinout.c.

    In der demod_fms.c gibt es folgenden Abschitt:
    Code:
    case 2:	/*	ACTFMS */
    			if (*ss == '[') ss++;
    			actact = (*form)->action;
    			if (actact == NULL) {
    				actact = (Line *) malloc (sizeof(Line));
    			}
    			else {
    				actroot = actact;
    				while (actact->next != NULL) actact->next = actact->next->next;
    				actact->next = (Line *) malloc (sizeof(Line));
    				actact = actact->next;
    			}
    			memset(actact, 0, sizeof(Line));
    			strncat(actact->string, &c[2], 1);
    			while (*ss && *ss != ']') {
    				strncat(actact->string, ss, 1);
    				ss++;
    			}
    			if (strlen(actact->string) == 1) {
    				char	zero[] = "ls > /dev/null";
    				strcat(actact->string, zero);
    			}
    			strncat(actact->string, c, 2);
    			if (actroot == NULL) (*form)->action = actact;
    			else 
    			break;
    und da müßte irgendwo eine Abfrage rein, ob das Schlüsselwort "@rec" in der Parameterzeile von ACTFMS steht, gefolgt vom Aufruf der Funktion "record_start".

    Soweit die Theorie.
    Aber wie gesagt: Meine C-Kentnisse reichen nicht aus, um die erforderlichen Änderungen sauber in die fms.c reinzuprogrammieren.

    Welcher gewiefte C-Guru in diesem Forum kann helfen?

    viele Grüße,
    Andreas

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
  •