Och menno, bleibt wohl doch nur ein Versprechen :/
Och menno, bleibt wohl doch nur ein Versprechen :/
Nein bleibt es nicht.. bin eben aus nem 24 std dienst gekommen... werde gleich wenn ich wieder zu hause bin (bin gerade im büro...) endlich mal was vom Code posten. ist eh nur ne kleinigkeit.. abe rich arbeite dran ;-)
Greets from the rhein... und der erft...
Nun sind wieder 24h ins Land gegangen...
Ob ihm wohl auf dem Heimweg etwas zugestoßen ist? Vielleicht sollten wir mal der grün-weißen Fraktion in seinem Kreis Kenntnis geben.
;-))
LG und ein frohes neues Jahr noch einmal,
Funkwart
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
Supi vielen Dank :)
Ich habs grad eingebaut und lass es laufen, bin gespannt obs klappt.
gruss Manu
Hmm, das klappt leider nicht, hat Eintrag nicht aktualisiert.
Was macht das
für eine Ausgabe, also wie schaut das Format aus ?strcat(sql_command," WHERE zeit BETWEEN (now()-interval 30 second) and now()");
Vielleicht hat es den gleichen Fehler wie mein Interface hatte bei der alten zu nueren mySql Version, also das das Datumsformat nicht übereinstimmt ?!
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)