Seite 21 von 25 ErsteErste ... 78910111213141516171819202122232425 LetzteLetzte
Ergebnis 301 bis 315 von 361

Thema: Monitor mit Datenbank-Unterstützung

  1. #301
    Registriert seit
    13.04.2004
    Beiträge
    47

    ja er lebt noch, er lebt, er lebt noch....

    So mädels...

    In der mon_mysql.c müsst ihr hinter der mon_mysql_store_dme funktion folgende einbauen(hab leider keine Zeilen zahlen, da ich zu viel schon in den Dateien rumgewurschtelt habe):

    int mon_mysql_update_dme(unsigned int ric, unsigned int subadresse, char * funktion, char* bezeichnung, char* text)
    {
    char sql_command[1000] ;
    char intbuffer[10] ;
    char escape_string[1000] ;
    char kurz[10];
    char short2[10];

    //Die ersten 3 zeichen des Textes zwischenspeichern
    unsigned int i = 0;
    for(i = 0; i < 3; i++)
    kurz[i] = text[i];

    memset(sql_command,0,1000) ;
    strcat(sql_command,"update ") ;
    strcat(sql_command,sql_poc_zvei_table) ;
    strcat(sql_command," SET text = ");


    // Text
    strcat(sql_command,"\"") ;
    mysql_real_escape_string(&mon_mysql, escape_string ,text,strlen(text)) ;
    strcat(sql_command,escape_string) ;
    strcat(sql_command,"\"") ;

    /* Suchen des alten Eintrags */
    strcat(sql_command," WHERE zeit BETWEEN (now()-interval 30 second) and now()");
    strcat(sql_command," AND adresse like \'\%");

    /* Adresse /RIC) */
    sprintf(intbuffer, "%d",ric) ;
    strcat(sql_command,intbuffer) ;

    strcat(sql_command,"\%\' AND text like \'\%");
    /*Textvergleich */
    sprintf(short2, "%s", kurz);
    strcat(sql_command,short2);
    strcat(sql_command,"\%\'");

    if (mysql_query(&mon_mysql, sql_command) != 0)
    {
    fprintf(stderr, "Failed to execute query: Error: %s\n",
    mysql_error(&mon_mysql));

    exit(0) ;
    return 0 ;
    }

    return 1 ;
    }

    Als nächstes müsst ihr in der pocsag.c im unteren Bereich der pocsag_printmassage funktion folgende fettgedruckte Zeile hinzufügen...

    if ((checklast = check_last())) {

    if (checklast == 2 && common.line != NULL) {
    /* reAusgabe: Suchen der zu ersetzenden Zeile */
    mon_mysql_update_dme((unsigned int) sql_ric, (unsigned int) sql_sub, sql_funktion, sql_bezeichnung, sql_text) ;

    mem = common.line;
    len = (MAXROW < len) ? MAXROW : len;

    if (mem->next == NULL) {
    /* sollte eigentlich nie vorkommen... */
    verbprintf(6, "Pocsag-Text nicht wiedergefunden: %s", out->string);
    return;
    }
    while (strncmp(out->string, mem->next->string, len) /* Text */
    || strstr(mem->string, alias) == NULL) { /* Header */
    mem = mem->next;
    if (mem->next == NULL) {
    /* sollte eigentlich nie vorkommen... */
    verbprintf(6, "Pocsag-Text nicht wiedergefunden: %s", out->string);
    return;
    }
    shift++;
    }
    while (sublines--) {
    Line *del;
    del = mem->next;
    mem->next = mem->next->next;
    len_list--;
    free(del);
    }
    update_file(outprint, LOG);
    }
    else {
    mon_mysql_store_dme((unsigned int) sql_ric, (unsigned int) sql_sub, sql_funktion, sql_bezeichnung, sql_text) ;
    /* 1: Text anders oder nach Timeout -> Ausgabe */
    if (txtmode == 1)
    strncat(outprint, out->string, MAXROW - strlen(outprint));

    if (!al->color && get_ric(s->l2.pocsag.color, set, rx->func, &ric) > 0){
    al->color = ric->val;
    };
    /* Header */
    update_view(outprint, al->color, FIRSTLINE, LOG);
    }


    Danach einfach neu kompilieren und gut... :-)

    Falls einer Denkfehler in meinen Funktionen findet einfach melden...
    Ich sage ja.. c basics :-) und einfach mal nebenbei mitten in der nacht gemacht

  2. #302
    Registriert seit
    12.05.2004
    Beiträge
    341
    Supi vielen Dank :)

    Ich habs grad eingebaut und lass es laufen, bin gespannt obs klappt.

    gruss Manu

  3. #303
    Registriert seit
    12.05.2004
    Beiträge
    341
    Hmm, das klappt leider nicht, hat Eintrag nicht aktualisiert.

    Was macht das
    strcat(sql_command," WHERE zeit BETWEEN (now()-interval 30 second) and now()");
    für eine Ausgabe, also wie schaut das Format aus ?
    Vielleicht hat es den gleichen Fehler wie mein Interface hatte bei der alten zu nueren mySql Version, also das das Datumsformat nicht übereinstimmt ?!

  4. #304
    Registriert seit
    12.05.2004
    Beiträge
    341
    Hmm, irgendwo ist da ein Hacken drin.

    Ich habe jetzt geprüft
    - ob es die Funktion überhaupt ausführt -> Tut es
    - ob die Abfrage zeit BETWEEN (now()-interval 30 second) and now() klappt -> Tut es

    Wo kann es nun noch Hacken ?

    Was tut es denn hierbei ? Was vergleicht es da genau ? Den Text aus der DB und den neuen oder nur Stücken davon ?
    /*Textvergleich */
    sprintf(short2, "%s", kurz);
    strcat(sql_command,short2);
    strcat(sql_command,"\%\'");

  5. #305
    Registriert seit
    13.04.2004
    Beiträge
    47
    Hallo Manu,

    hatte das Problem bei mir, dass er teilweise, wenn er Müll empfangen hat nur 2 oder 3 Zeichen in der DB eingetragen hat. Das SQL Statement geht hin und sucht sich die Eintraege zu dieser Ric der letzten 30 Sekunden und vergleicht nun die Ersten 3 Zeichen des Aktuell empfangenen Textes mit dem was in der Datenbank steht. Je nachdem lässt sich das ganze aber noch verfeinern. Ich habe jetzt mal ein wenig mit den Zahlen rumgespielt(also der String länge die verglichen wird), werde das mal bei mir durchtesten... Wie gesagt bei Phil und mir funzt das.. Ansonsten, falls du ICQ hasts schick mir ne PN dann bekommste meine ICQ nummer...

    Gruß Rhein-Erft

  6. #306
    Registriert seit
    12.05.2004
    Beiträge
    341
    Also bei mir läufts jetzt einwandfrei.
    Das Problem war bei mir, das unsere Lst die Meldungen anders Formatiert, dadurch klappte die suche nach dem Text beim Update nicht.

    Falls noch jemand das Problem hat, ich habe das folgendermaßen gemacht:

    /* Adresse /RIC) */
    sprintf(intbuffer, "%d",ric) ;
    strcat(sql_command,intbuffer) ;

    /*strcat(sql_command,"\%\' AND text like \'\%");*/
    /*Textvergleich */
    /*sprintf(short2, "%s", kurz);
    strcat(sql_command,short2);*/

    strcat(sql_command,"\%\'");

    Ich habe einfach die Fett markierten Zeilen ausgeklammert, dann klappt es.

  7. #307
    Registriert seit
    13.04.2004
    Beiträge
    47
    deswegen habe ich das beim programmieren ja so aufgeteilt, damit leicht teile des SQL Querys weglassen bzw auf eigene Bedürfnisse anpassen kann.. Freut mich das es funzt und ich hoffe es können noch mehrere gebrauchen..

  8. #308
    Registriert seit
    14.07.2002
    Beiträge
    188
    Kann das vielleicht jemand als Patch veröffentlichen? Könnte ihn dann auch in das Wiki packen :)

  9. #309
    Registriert seit
    13.04.2004
    Beiträge
    47
    Werde mal wieder meine orig Dateien nehmen, mir die richtigen Zeilen raussuchen und dann nen Patch machen.. Willst du nen Patch nur für diese Funktion oder was weiss ich den 8er Patch + die Funktion ??

  10. #310
    Registriert seit
    12.05.2004
    Beiträge
    341
    Ich würd ja sagen wenn gleich in den 8er Patch rein, sonst werden das immer mehr kleine datein :) Kannste ja als Patch 9 releasen, der alles enthält.

  11. #311
    Registriert seit
    13.04.2004
    Beiträge
    47
    Werd ich versuchen :-)

    Es gab ja schonmal nen 9er Patch, der aber meiner Meinung nach mehr defekt gemacht hat, als er korrigiert hat :-(

    Wir lassen uns überraschen... :-)

    Ich werde es auf jedenfall testen, ob der Patch auch so funktioniert...

  12. #312
    Registriert seit
    14.07.2002
    Beiträge
    188
    Wie siehts mit dem aktuellen Patch aus? :)

  13. #313
    DownAnUp Gast

    Das Genie überblickt das Chaos.. ich bin nur leieder keins

    Hallo zusammen,

    ich hätte an alle die hier mitwirken eine große Bitte: Könntet ihr BITTE für jede neu zur Verfügung gestellte Version einen neuen Thread eröffnen? Es ist fast unmöghlich sich durch dieses riesige Monster hier durchzuarbeiten ;) Ich habe monitor mittlerweile inklusive Datenbankanbindung am laufen, finde aber z.B. keine passende Version des PHP interfaces (im Quellcode des PHP Programmes werden ganz andere Tabellenfelder erwartet als in der Datenbank die ich jetzt habe). Dieser Wust hier trägt sicher nicht zum weiterkommen dieses an sich tollen Projektes bei.

    Wenn es ein komplettes Set an Programmen gibt die auch zusammen passen kann ich die installation dann auch gerne mal im Wiki dokumentieren und evtl auch ein wenig vereinfachen.

    Schönen Gruß
    Andreas

  14. #314
    Registriert seit
    27.06.2006
    Beiträge
    69
    Hallo,

    das hört sich ja alles sehr Interessant an, gibt es da zuzeit eine Zusammenstellung der aktuellen Version??

    Danke

    Mfg
    tseng

  15. #315
    Registriert seit
    30.08.2005
    Beiträge
    247
    Du benötigst Patch 9 für den monitor und die aktuelle php-Oberfläche stellt ManuelW gerade zusammen; da würd ich mich ein bisschen in Geduld üben. Ansonsten findet man alles in diesem Thread, wenn ich mich recht erinnere...

    jhr

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
  •