[De-Nut-Discussion] Geschwindigkeits problem?

de-nut-discussion-admin at egnite.de de-nut-discussion-admin at egnite.de
Tue Sep 23 00:24:37 CEST 2003


Hi,

Ich habe ein Problem. Und zwar geht es darum das ich der embedded Webserver
als Gateway eingesetzt wird zwischen TCP/IP und RS485 Bus-System.
Dabei sende ich dem Webserver ein gewisses zeichen, er versendet es und
sollte eine Antwort bekommen.

Das Versenden funktioniert einigermaßen. Manchmal schickt er Bytes beim
anstecken, aber das ist vom Protokoll her egal. Den Pegelwandler von RS232
auf RS485 habe ich ganz einfach an der UART1 angeschlossen.

Die ganze CGI-Funktion sieht nun so aus:

static int nLQuery(FILE *stream, REQUEST *req)
{
    struct NetLinkStream thisStream;
    int buf;
    char *inbuf;

    thisStream.Address=1;
    thisStream.ByteCount=2;
    thisStream.Data[0] = *(req->req_query);
    thisStream.Data[1] = 1+0x30;

    EncodeStream(&thisStream);

    Rs485enableTx();
    _write(_fileno(uart2), thisStream.Stream, thisStream.ByteCount+8);
    Rs485enableRx();

    buf = _read(_fileno(uart2), inbuf, 1);

    NutHttpSendHeaderTop(stream, req, 200, "Ok");
    NutHttpSendHeaderBot(stream, "text/html", -1);

    if(req->req_query)
        fputs(inbuf, stream);
    else
        fputs("None", stream);
    fflush(stream);

    return 0;
}

Rs485enableTx() und Rs485enableRx(), setzen/löschen lediglich das
Recieve-Bit des Pegelwandlers. EncodeStream() ... generiert den zu sendenden
String.

Mein Problem ist nun, wie schon erwähnt, das das Senden funktioniert, jedoch
Empfangen tut er absolut nichts. Manchmal bekomme ich 0 zurück, manchmal
bleibt er beim _read() hängen und ich bekomme auch kein http-reply.
Der RS458-Bus hat 38400Hz. Ein gesamter String besteht aus mindestens 9
Byte.
Als Ur-Programm habe ich das Beispiel-Program "httpd" genommen, da es für
meine Zwecke ausreicht und mir Arbeit erspart.

Meine Frage wäre nun, ob der Webserver einfach zu langsam ist oder ich
irgendwas falsch mache? - Und wenn ja, wie kann ich das hinbekommen/den
webserver schneller machen?

Danke im Vorraus,
Manuel Mausz




More information about the De-Nut-Discussion mailing list