Daten von V.24 auslesen?!



  • hi zusammen,

    kann mir vielleicht jemand von euch sagen, wie ich es schaffe, daten aus der v.24-schnittstelle auszulesen und die ausgelesenen daten dann als text-file abspeichern kann?

    muss sowas nämlich programmieren, aber finde nicht wirklich einen ansatz! wäre euch für eure hilfe sehr dankbar!

    michimen200 😕



  • Hallo,
    welches BS, welchen Compiler, welche Klassenbibliothek (optional) verwendest du?



  • ich verwende hier (bzw. muss verwenden) visual c++ 6.0 unter win nt 4...

    habe jetzt schon mehrere ansätze selbst versucht, aber es geht nicht so wie es soll (bis jetzt gar nicht 😞



  • Thread verschoben ins WinApi Forum. WinAPI



  • HANDLE OpenComm(char* Port)
    { // Öffnet den Port und gibt sein Handle zurück
    HANDLE hCom = CreateFile(Port, // z.B. "COM1",
    GENERIC_READ | GENERIC_WRITE, // Zum Senden und Empfangen
    0, // Für comm devices exclusive-access notwendig
    0, // Keine security attributes
    OPEN_EXISTING, // Für comm devices OPEN_EXISTING notwendig
    0, // kein overlapped I/O
    0); // Für comm devices muss hTemplate NULL sein
    if (hCom == INVALID_HANDLE_VALUE)
    ShowLastError("CreateFile: "+AnsiString(Port));
    return hCom;
    }

    //------------------------------------------------------------------------------
    void SetDCB(HANDLE hCom)
    {
    DCB dcb; // Device Control Block
    bool fSuccess = GetCommState(hCom, &dcb); // DCB lesen
    if (!fSuccess) ShowLastError("GetCommState");

    dcb.BaudRate = 115200; // Baudrate=115200
    dcb.ByteSize = 8; // 8 Datenbits
    dcb.Parity = NOPARITY; // keine Parity
    dcb.StopBits = ONESTOPBIT; // 1 Stopbit

    bool NoFlowControl=false,
    HardwareFlowControl=true,
    SoftwareFlowControl=false;

    if (NoFlowControl)
    {
    // kein Hardware Flowcontrol:
    dcb.fOutxCtsFlow=false;
    dcb.fOutxDsrFlow=false;
    // kein Software Flowcontrol:
    dcb.fInX=false; // für Empfänger
    dcb.fOutX=false; // für Sender

    dcb.fDsrSensitivity=false;
    }
    else
    {
    if (HardwareFlowControl)
    {
    dcb.fOutxCtsFlow=true;
    dcb.fOutxDsrFlow=true;
    }
    // Hier kein else: Software- und HardwareFlowControl sind
    // gleichzeitig möglich, auch wenn das nicht üblich ist
    if (SoftwareFlowControl)
    {
    dcb.fInX=true; // für Empfänger
    dcb.fOutX=true; // für Sender
    }
    }

    // SetCommState konfiguriert die serielle Schnittstelle
    fSuccess = SetCommState(hCom, &dcb);
    if (!fSuccess) ShowLastError("SetCommState");
    showDCB(hCom);
    }

    //------------------------------------------------------------------------------
    void SetReadTimeouts(HANDLE hCom)
    {
    COMMTIMEOUTS t;
    // Alle Wert in Millisekunden
    t.ReadIntervalTimeout=100; // Timeout zwischen zwei Bytes
    t.ReadTotalTimeoutMultiplier=10; // pro Byte
    t.ReadTotalTimeoutConstant=1;
    t.WriteTotalTimeoutMultiplier=0;
    t.WriteTotalTimeoutConstant=0;
    if (!SetCommTimeouts(hCom,&t))
    ShowLastError("SetCommTimeouts");
    }


Anmelden zum Antworten