Zum Inhalt springen

mirmi

Mitglieder
  • Gesamte Inhalte

    4
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von mirmi

  1. Hi nochmal Danke für die Antwort. Leider kann ich Deinen Tip aus mangelndem VB KnowHow nicht ordentlich umsetzen. Ich habs jetzt mal so versucht: zuerst hab ich diese Prozedur erstellt: Sub subBlinkTxtProd() Try Dim intCtr As Integer For intCtr = 0 To 10 threadBlink.Sleep(500) If txtProdWhite.Visible = True Then txtProdWhite.Visible = False txtProdGreen.Visible = True Else txtProdWhite.Visible = True txtProdGreen.Visible = False End If Application.DoEvents() Next intCtr txtProdWhite.Visible = False txtProdGreen.Visible = False Catch ex As ThreadAbortException txtProdWhite.Visible = False txtProdGreen.Visible = False Return End Try End Sub Diese wird in meiner "langen" Prozedur aufgerufen und auch wieder gestoppt: Private Sub cmdPortOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPortOpen.Click threadBlink.Start() 'Hier steht der ganze Code fürs abschicken der ComPort Befehle. Hier sind auch die Thread.Sleep() eingebaut. threadBlink.Abort() End Sub Leider wird die Blink Prozedur irgendwie nicht richtig abgearbeitet bzw. gestartet. Was mach ich denn hier falsch? Ich hab schon rausgefunden, dass der Thread mit threadBlink.Abort() nicht gestoppt wird. Denn beim nächsten Versuch heißt es, "Thread noch nicht angehalten", oder so ähnlich. Danke vorab für die Tips... mirmi
  2. Danke Manfred, für Deine Antwort Habs ein bischen umständlicher, mit 3 Prozeduren gelöst .... Beim empfangen wird der Output Buffer an eine Prozdur übergeben: strOutput = strOutput & comcom.Input IncomeData(strOutput) Die Prozedur stellt die Position des ersten ControlChars.Cr fest und gibt die Zeichen bis zum ersten ControlChars.Cr an die Prozedur weiter, die dann die Antworten für das Prog verabeitet (zB. belegen von Variablen) Sieht so aus: Private Sub IncomeData(ByVal data As String) 'Buffer füllen IncomeBuffer &= data 'Sehen ob Buffer voll genug ist. If IncomeBuffer.IndexOf(ControlChars.Cr) > -1 Then Do Dim IncomePos As Integer = IncomeBuffer.IndexOf(ControlChars.Cr) 'Gibte es kompletten Token? If IncomePos > -1 Then EvalData(IncomeBuffer.Substring(0, IncomePos)) IncomeBuffer = IncomeBuffer.Substring(IncomePos + 1) Else 'alle Tokens abgearbeitet. Exit Do End If Loop End If End Sub Das passiert solange, bis der Buffer abgeabeitet ist. Grüße mirmi
  3. Hallo Habe in meinem Prog eine Prozedur, die aufgrund einiger eingebauter Thread.Sleep() länger zum abarbeiten braucht. Nun hab ich mir überlegt, dass ich dem Usr die Wartezeit mit einem Textfeld, das die Farbe ändert verschönere. Die Prozedur für die Blinkanimation hab ich schon geschrieben. Sie ist aber auch Timerbasierend. Ich möchte gerne die Blinkprozedur starten, wenn die lange Prozdur startet und sobald sie abgearbeitet ist, auch die BlinkAnimation stoppen. Hat dazu jemand einen Vorschlag? Danke vorab mirmi
  4. Hallo Bin heute zufällig bei der verzweifelten Suche nach Hilfe auf Euer Forum gestossen ... Habe ein Gerät an einem Com Port hängen. In meinem Prog hab ich ein Frame mit Einigen Buttons und einer TextBox um den Port zu testen und abzufragen. Mit einfachen Befehlen (2 Zeichen) erreiche ich die Ausgabe von bestimmten Werten, die dann im Prog weiterverabeitet werden müssen. Getrennt werden die Zeichenpackete durch ControlChars.CrLf. Leider kommen die Daten (im Vergleich zum Hyperterinal - da funzts) "abgeschnitten" an. Ich versuchs zu Beschreiben: Das trennen der Daten nach funktioniert schon. Und meistens (leider nicht immer) bekomm ich auch die richtige Antwort. Bei der Antwort wird nie mehr der Anfang der Ausgabe abgeschnipselt, sondern am Ende fehlen ein paar Zeichen... Manchmal muss ich öfter klicken um überhaupt Antwort zu erhalten. Die Anzahl der fehlenden Zeichen variiert und bei weiteren Klicks (also Befehl senden) kommt dann wieder das richtige raus. Das sieht so aus: Vollständige Ausgabe (Beispiel): ID 21845 BR 85 AN 85 PE 85 Unvollständige Ausgabe (Beispiel): ID 21845 BR 85 AN 85 P Antworten mit 2 Zeichen stellen weiterhin kein Problem dar, und werden sofort nach dem Senden des Befehls angezeigt (z.B. OK). Ein weiteres Problem stellt eine bestimmte Ausgabe dar. Sie sieht so aus (aus dem Hyperterminal kopiert): B1 744 B2 819 B3 1023 B4 630 B5 682 B6 1170 LX 9550 TR 600 Diese Ausgabe kann mein Prog überhaupt nicht darstellen. Mir kommt irgendwie vor, das es entweder Befehle nicht abschickt, oder irgendwelche Timeouts beim Empfanden voreingestellt sind. Das Gerät schickt die Antworten sicher gleich weg. Wo gehen die denn verloren?!? Irgendwie reagiert mein Prog nicht so schnell wie zB das Hyperterminal. Da muss ich nie einen Befehl 2x oder öfter schicken damit er gehört wird... Die InBufferSize-Eigenschaft des ComControl ist auf 1024 eingestellt. Das sollte wohl reichen... Gibt es Timouts, die das ComControl voreingestellt hat? Unten hab ich noch den Code der der OnComm Prozedur angehängt. Ich hoffe jemand von Euch kann mir hier weiterhelfen... Danke schonmal vorab mirmi Anbei noch der Code: Select Case comcom.CommEvent Case 1006 MsgBox("Datenverlust!") Case 1008 MsgBox("Datenverlust!") Case 2 Dim strTexttest As String strTexttest = strTexttest & comcom.Input Dim arrText() As String = strTexttest.Split(ControlChars.Cr) Select Case Microsoft.VisualBasic.Left(arrText(0), 2) Case "MM" txtOutput.Text = arrText(0) & ControlChars.CrLf & arrText(1) Case "ID" txtOutput.Text = arrText(0) & ControlChars.CrLf & arrText(1) & ControlChars.CrLf & arrText(2) & ControlChars.CrLf & arrText(3) Case "OK" txtOutput.Text = arrText(0) Case "B1" txtOutput.Text = arrText(0) & ControlChars.CrLf & arrText(1) & ControlChars.CrLf & arrText(2) & ControlChars.CrLf & arrText(3) & _ ControlChars.CrLf & arrText(4) & ControlChars.CrLf & arrText(5) & ControlChars.CrLf & arrText(6) & ControlChars.CrLf & arrText(7) Case "NM" txtOutput.Text = arrText(0) Case "BY" txtOutput.Text = arrText(0) End Select End Select

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...