Also die min und max Werte sind richtig (min = 0; max = 255).
hier mal die kompletten Eigenschaften der Scroll-Bar:
Wie stellst du dir das mit den Pausen vor? Das ganze FUnktioniert ja über das OnComm-Event, oder geht das auch anders? Naja lassen wird das, es gibt schon wieder neue Probleme:Code:Name = HScroll1
CausesValidation = True
DragIcon = none
DragMode = 1
Enable = True
Height = 255
HelpContextID = 0
Index = [leer]
LargeChange = 1
Left = 120
Max = 255
Min = 0
MouseIcon = none
RightToLeft = False
SmallChange = 1
TabIndex = 5
TabStop = True
Tag = [leer]
Top = 960
Value = 0
Visible = True
WhatsThisHelpID = 0
Width = 4575
hier der kompette code:
Das Prozessor sendet sowas wie "Servo1:232". Die Funktion HandleInput soll unterscheiden zwischen Daten, die den Servo oder den Schrittmotor betreffen. Das Problem liegt aber mal wieder beim empfangen:Code:Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.RTSEnable = True
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.InputLen = 0
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub
Private Sub MSComm1_OnComm()
Dim InBuff As String
Select Case MSComm1.CommEvent
' Errors
Case comEventBreak ' A Break was received.
Case comEventCDTO ' CD (RLSD) Timeout.
Case comEventCTSTO ' CTS Timeout.
Case comEventDSRTO ' DSR Timeout.
Case comEventFrame ' Framing Error.
Case comEventOverrun ' Data Lost.
Case comEventRxOver ' Receive buffer overflow.
Case comEventRxParity ' Parity Error.
Case comEventTxFull ' Transmit buffer full.
Case comEventDCB ' Unexpected error retrieving DCB]
' Events
Case comEvCD ' Change in the CD line.
Case comEvCTS ' Change in the CTS line.
Case comEvDSR ' Change in the DSR line.
Case comEvRing ' Change in the Ring Indicator.
Case comEvReceive ' Received RThreshold # of chars.
InBuff = MSComm1.Input
Call HandleInput(InBuff)
Case comEvSend ' There are SThreshold number of
' characters in the transmit buffer.
Case comEvEOF ' An EOF character was found in the
' input stream.
End Select
End Sub
Sub HandleInput(InBuff As String)
Dim Eingang_STR As String
Dim Pos_Doppelpunkt As Integer
Dim Data_identification_str As String
Eingang_STR = Trim(Replace(InBuff, vbCrLf, ""))
Pos_Doppelpunkt = InStr(Eingang_STR, ":")
Data_identification_str = Left(Eingang_STR, Pos_Doppelpunkt)
List1.AddItem Eingang_STR
End Sub
Den interessiert es garnet, wann meine Daten (die gesendet werden) ankommen. Wenn ich im falschen Moment das Programm starte hab ich z.B. "vo1:232". Und dann hängt er ab und zu mal einfach was vom nächsten Paket dran: "vo1:232S". Es sind aber immer genau 8 Zeichen. Die hängt er einfach aneinander, auch wenn im richtigen Moment einschalte. Man des Zeug stresst mich.