vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Weiß Bitte jemand mehr? 
Autor: Noura
Datum: 13.12.01 11:57

Hallo Dieter!
Danke erstmal,das ist auch die einzig vernünftige Erklärung da sonst alles funktioniert.
Muß ich dann eine Delay Funktion mit einbauen? ich erkläre am besten die Situation.
Also ich in meinen Datenbank ein Formular erstellt mit einer Befehlsschaltfläche mit der Beschriftung "Auslesen " und dem Ereignis:
Private Sub Befehl0_Click()
Call RS232_read '
End Sub
Am Gerät ist ein Button mit der Beschtiftung EXPORT COM2 zum Senden an die serielle Schnittstelle,bis jetzt habe ich zum Testen immer zuerst die Befehlsschaltfläche "Auslesen" gedrückt und unmittelbar danach (10 ms) das "EXPORT COM2" Button am Gerät gedrückt ,das funktioniert bis auf diese zeitliche Überlappung.Natürlich wäre es komfortable wenn der Benutzer erstmal die Daten vom Gerät sendet dann einen Kaffee trinkt und danach erst das Button "Auslesen" drückt.
Hier ist ein Ausschnitt von der RS232_read Prozedur:
Sub RS232_read()
Dim end_state As Byte
Dim test As Integer
Dim count As Byte
Dim S As String
Dim COM_string As String
Dim F As Byte
Dim Destifile As String
end_state = 0
S = "!"
Destifile = "C: estdata1.txt"
OPENCOM ("COM1,19200,N,8,1")
TIMEOUT 100
Do
count = 0
Do
test = READBYTE ' Auf Zeichen warten
If test <> -1 Then S = Chr(test)
count = count + 1
Loop Until ((test <> -1) Or (count >= 100))
If S <> Chr(13) Then
COM_string = COM_string & S
Else
COM_string = COM_string & vbCr
End If
Select Case end_state ' warten auf DAS "ende".
Case 0 ' warten auf ".".
If S = "." Then end_state = 1 Else end_state = 0
Case 1 ' warten auf "e".
If S = "E" Then end_state = 2 Else end_state = 0
Case 2 ' warten auf "n".
If S = "N" Then end_state = 3 Else end_state = 0
Case 3 ' warten auf "d".
If S = "D" Then end_state = 4 Else end_state = 0
Case Else ' ERROR Andere Werte.
Debug.Print "Außerhalb von 0 bis 4"
End Select
Loop Until ((end_state >= 4) Or (count >= 100))
CLOSECOM
If count = 100 Then
Beep
End If
F = FreeFile()
Open Destifile For Output As #F
Print #F, COM_string
Close #F
Also wie man sieht sollte ich sowieso noch eine Verzögerung mit einbauen für das Kaffee Trinken wie würde das dann gehen und vielleicht wird dadurch auch das Probleme mit der zeitlichen Überlappung gelöst.
Für jede Hilfe bin ich sehr Dankbar.
MfG Noura
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Textdatei68Noura12.12.01 13:47
Re: Textdatei43Flak12.12.01 15:41
Re: Textdatei74Noura12.12.01 16:29
Re: Textdatei37Flak12.12.01 18:29
Weiß Bitte jemand mehr?44Noura13.12.01 10:40
Re: Weiß Bitte jemand mehr?250ModeratorDieter13.12.01 11:02
Re: Weiß Bitte jemand mehr?48Noura13.12.01 11:57
Bitte um Hilfe36Noura14.12.01 09:42

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel