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 Stopbitbool 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 Senderdcb.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");
}