Skirpt für Sequenzabfolge an SerialPort

  • VB.NET
  • .NET 5–6

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Joshi.

    Skirpt für Sequenzabfolge an SerialPort

    Moin zusammen, ich bin neu hier und hätte direkt ein Anliegen.

    Ich habe eine Liste mit 120 Zahlen (80,83,84...) keine logische Abfolge.
    Wir nennen sie mal "x"

    Dazu habe ich eine weitere Liste mit 30 Kombinationen, diese allerdings
    logisch (01,02,03...) diese nennen wir "y"

    und zu guter Letzt noch eine dritte Liste - diese ist, wie die erste,
    keine logische Abfolge (AA,AC,AD,AF...), diese nennen wir "z"

    was ich umsetzen möchte:

    Alle Zahlen aus der ersten Liste (x) soll zusammen mit jeder Zahl aus
    der zweiten Liste (y) zusammen mit jeder Zahl aus der dritten Liste (z)
    an einen RS232 Port gesendet werden.

    Also: 80(x) mit jeder Zahl von Liste y z.B. 01 mit jeder Zahl von der
    dritten Liste (z)

    z.B. 80(x) 01(y) AA(z) dann
    80(x) 02(y) AA(z) -
    wenn die 80 dann einmal alle Zahlen aus der zweiten Liste (y) mit dem AA von (z) durch hat, wird 80
    nochmal mit allen (y)-Zahlen, aber der nächsten (z)-Ziffer gesendet,
    also dann
    80(x) 01(y) AC(z)
    80(x) 02(y) AC(Z)

    und so weiter... die Ergebnisse, die das andere Ende des RS232 Ports
    zurück gibt, wird in eine Textdatei gespeichert, das ist auch
    unproblematisch.

    Zum Start Variablen deklarieren und "+1" geht nicht, weil keine logische
    Abfolge und z.B. aus der 80-Reihe nur 80,83,84,87...

    Das ganze in eine (Rich)texbtbox einlesen? Codetechnisch weiß ich nicht, wie ich dann 3 Loops miteinander verbinde die auf den Inhalt der Richtextboxen bezogen sind.

    Ich will das zumindest halbwegs automatisiert machen, weil da natürliche
    eine Menge zusammenkommt, und alles andere ein hoher Aufwand wäre.

    Mein Ziel ist eine kleine Desktopanwendung bei der ich quasi nur auf "Start" klicke, und dann werden die 120 zahlen (x) mal alle 30 Kombination (y) mal alle Werte aus der dritten Liste (z) an den RS232 Port gesendet, und die Antwort gespeichert.



    Ich hoffe, ihr könnt mir so halbwegs folgen. Alles andere (Port konfiguieren, Antworten in .txt abspeichern) bekomme ich alleine hin.

    Hat jemand einen Vorschlag? Natürlich gerne auch mit einem groben Codebeispiel, aber ich freue mich über jede Hilfe.

    Vielen Dank
    Hi. @quintus

    Die Generierung (Kombination) von Listen ist mit der Kontrollstruktur "Schleife" zu lösen.

    Insbesondere die Zusammensetzung (von Teilbefehlen) mittels verschachtelter Schleifen.

    Alle Listen in einer Sequenz einlesen und in einer Auflistung ablegen.
    (Reihenfolge, da keine "keine logische Abfolge" ist bei allen egal, solange sie in der gewünschten Reihenfolge eingelesen wurden.)

    Dann die "ForEach" oder die "For-Schleife".


    HalteVariable ist leer
    Schleife-X
    hinzufügen zu HalteVariable was in aktuellem Element der Liste(x) steht
    Schleife-Y
    hinzufügen zu HalteVariable was in aktuellem Element der Liste(y) steht
    Schleife-Z
    hinzufügen zu HalteVariable was in aktuellem Element der Liste(z) steht
    AmSeriellenPort absenden der HalteVariable, und leeren der HalteVariable bei Erfolg und in LogDatei ablegen.
    NächsterZ
    Nächster-Y
    Nächster-X

    VB.NET-Quellcode

    1. Dim ListeX as New List(Of String)
    2. ListeX.Add("80")
    3. ListeX.Add("81") 'usw...
    4. Dim ListeY as New List(Of String)
    5. Dim ListeZ as New List(Of String)
    6. ForEach itemX in ListeX
    7. 'Mach was mit dem aktuellem Element der ListeX
    8. ForEach itemY in ListeY
    9. 'Mach was mit dem aktuellem Element der ListeY
    10. ForEach itemZ in ListZ
    11. 'Mach was mit dem aktuellem Element der ListeX und ListeY und ListZ
    12. SendeAnSerialPort(itemX & itemY & itemZ) 'SendeAnSerialPort ist eine Subroutine in Wolkenkukucksheim :)
    13. Next
    14. Next
    15. Next


    Hoffe das hilft etwas...

    Frage: Ist das MIDI?

    c.u Joshi aus der Nachtschicht.