Hallo,
ich benutzte eine Schnittstelle, um Daten zu empfangen. Die Daten kommen unregelmäßig, d.h. ich brauche eine Funktion, die beim Eingang der Daten ausgelöst wird (Daten auswerten). Für das Ganze gibt es einen Beispielcode in C:
FT_HANDLE ftHandle; // handle of an open device
FT_STATUS ftStatus;
HANDLE hEvent;
DWORD EventMask;
hEvent = CreateEvent(NULL,false, // auto-reset event false, // non-signalled state"");
EventMask = FT_EVENT_RXCHAR | FT_EVENT_MODEM_STATUS;
ftStatus = FT_SetEventNotification(ftHandle,EventMask,hEvent);
WaitForSingleObject(hEvent,INFINITE);
DWORD EventDWord;
DWORD RxBytes;
DWORD TxBytes;
FT_GetStatus(ftHandle,&RxBytes,&TxBytes,&EventDWord);
if (EventDWord & FT_EVENT_MODEM_STATUS) {
// modem status event detected, so get current modem status
FT_GetModemStatus(ftHandle,&Status);
if (Status & 0x00000010) {
// CTS is high
}
else {
// CTS is low
}
if (Status & 0x00000020) {
// DSR is high
}
else {
// DSR is low
}
}
if (RxBytes > 0) {
// call FT_Read() to get received data from device
Hab Probleme das Ganze in VB zu übersetzen. Wie kann ich in VB eine Funktion auslösen, wenn das Event (hevent) auftritt. Das Programm soll normal laufen, d.h. auch andere Aufgaben abarbeiten, wenn jedoch von der Schnittstelle das Event ausgelöst wird, mit der Auswertung der Daten beginnen/den normalen Programmablauf unterbrechen. Ggf. gibt es in VB eine Funktion ähnlich WaitforSingleObject, die im Hintergrund überprüft, ob das Event stattfindet?
Kann mir jemand helfen?
mfg Exel
ich benutzte eine Schnittstelle, um Daten zu empfangen. Die Daten kommen unregelmäßig, d.h. ich brauche eine Funktion, die beim Eingang der Daten ausgelöst wird (Daten auswerten). Für das Ganze gibt es einen Beispielcode in C:
FT_HANDLE ftHandle; // handle of an open device
FT_STATUS ftStatus;
HANDLE hEvent;
DWORD EventMask;
hEvent = CreateEvent(NULL,false, // auto-reset event false, // non-signalled state"");
EventMask = FT_EVENT_RXCHAR | FT_EVENT_MODEM_STATUS;
ftStatus = FT_SetEventNotification(ftHandle,EventMask,hEvent);
WaitForSingleObject(hEvent,INFINITE);
DWORD EventDWord;
DWORD RxBytes;
DWORD TxBytes;
FT_GetStatus(ftHandle,&RxBytes,&TxBytes,&EventDWord);
if (EventDWord & FT_EVENT_MODEM_STATUS) {
// modem status event detected, so get current modem status
FT_GetModemStatus(ftHandle,&Status);
if (Status & 0x00000010) {
// CTS is high
}
else {
// CTS is low
}
if (Status & 0x00000020) {
// DSR is high
}
else {
// DSR is low
}
}
if (RxBytes > 0) {
// call FT_Read() to get received data from device
Hab Probleme das Ganze in VB zu übersetzen. Wie kann ich in VB eine Funktion auslösen, wenn das Event (hevent) auftritt. Das Programm soll normal laufen, d.h. auch andere Aufgaben abarbeiten, wenn jedoch von der Schnittstelle das Event ausgelöst wird, mit der Auswertung der Daten beginnen/den normalen Programmablauf unterbrechen. Ggf. gibt es in VB eine Funktion ähnlich WaitforSingleObject, die im Hintergrund überprüft, ob das Event stattfindet?
Kann mir jemand helfen?
mfg Exel