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.







Zitieren

Lesezeichen