INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Wert aus Array für Case Selection



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

03.05.2016, 13:47 (Dieser Beitrag wurde zuletzt bearbeitet: 03.05.2016 14:59 von LazyCompany.)
Beitrag #1

LazyCompany Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Apr 2016

2014
-
EN

70771
Deutschland
Wert aus Array für Case Selection
Hallo Zusammen!
Ich mal wieder, mit folgendem Problem:

Es liegen mir serielle Messages in ein 1D-Array Byteweise vor. Die Message hat den
Aufbau: Startkennung-Länge-Kanal-Daten-Endkennung.

Ich möchte aus dem seriellen Strom meine Daten herausfiltern. Kann ich eine Case Structure so programmieren das sie auf die Startkennung wartet und alles was dann bis zur Endkennung kommt in ein seperates Array speichert? Vorallem....WIE? Blink

Jede Idee ist willkommen Big Grin
Viele liebe Grüße, Lazy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.05.2016, 13:55
Beitrag #2

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Wert aus Array für Case Selection
So etwa?


Angehängte Datei(en) Thumbnail(s)
   

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.05.2016, 14:03 (Dieser Beitrag wurde zuletzt bearbeitet: 03.05.2016 14:11 von LazyCompany.)
Beitrag #3

LazyCompany Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Apr 2016

2014
-
EN

70771
Deutschland
RE: Wert aus Array für Case Selection
Ich habe zwar ein 1D Array of unsigned Int8 aber ich glaub das is auch kein Streß das einfach in String umzuwandeln. Ich probiers mal aus Smile
Danke für deinen Vorschlag Freddy aber das wird wohl so leider nicht funktionieren. Ich bekomme die Daten Byte für Byte als Queue Stream Just-in-Time und das soll dan so gehen:
"Wenn Startkennung kommt, schreibe alles danach in Array bis Endkennung kommt" - Auch hierzu einen Vorschlag? oO
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.05.2016, 14:31
Beitrag #4

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Wert aus Array für Case Selection
Kannst Du mal ein Beispiel des Seriellenstroms geben?
Es gibt bestimmt auch andere Möglichkeiten.

Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.05.2016, 14:59
Beitrag #5

LazyCompany Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Apr 2016

2014
-
EN

70771
Deutschland
RE: Wert aus Array für Case Selection
Start is 02 und Ende is 03
Hier werden zwei Kanäle nacheinander geschickt, das ganze bisher mit 3k Samples/second.

02 1C 01 2F 81 2D 81 03 02 1C 02 2A 81 21 81 03
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.05.2016, 15:12
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Wert aus Array für Case Selection
Schon mal schlecht, das das Anfangszeichen 0x02 auch Teil der Daten sein kann. Vermutlich wird das deshalb auch beim Endezeichen 0x03 so sein.
Gut ist, dass ein Datenblock offenbar immer dieselbe Länge von 8 Zeichen hat.

Ich würde deshalb so vorgehen:
- Im Datenstrom nach einer Abfolge 0x03 0x02 suchen.
- Wenn gefunden, dann testen, ob 8 Zeichen später wieder die Abfolge 0x03 0x02 vorkommt.
- Die Wahrscheinlichkeit, dass du jetzt korrekt auf den Datenstrom synchronisiert bist, ist recht hoch.
- Ab jetzt immer 8 Zeichen zusammenfassen und auswerten. Natürlich jeweils überprüfen, ob Anfang- und Endezeichen stimmen, falls nicht, wieder von vorne anfangen.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.05.2016, 15:17
Beitrag #7

LazyCompany Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Apr 2016

2014
-
EN

70771
Deutschland
RE: Wert aus Array für Case Selection
Hi Jens!
Schonmal danke für die Antwort.

Zitat:Schon mal schlecht, das das Anfangszeichen 0x02 auch Teil der Daten sein kann. Vermutlich wird das deshalb auch beim Endezeichen 0x03 so sein.

Deshalb gebe ich ja nach 0x02 die Länge der Daten an inkl. der Start- und Endkennung Wink

Danke für deinen Input, der ist wirklich gut, die Frage ist eben nur: Wie kann ich diese Überprüfung implementieren?

Gruß, Lazy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.05.2016, 15:25
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Wert aus Array für Case Selection
(03.05.2016 15:17 )LazyCompany schrieb:  Deshalb gebe ich ja nach 0x02 die Länge der Daten an inkl. der Start- und Endkennung Wink
Dann ist dein Bsp nicht "real", 0x1C = 28, nicht 8. Hmm

Wer hat sich dieses Binär-Protokoll einfallen lassen, bei der Start- und Endezeichen im Datenstream vorkommen können? Flop

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.05.2016, 15:28 (Dieser Beitrag wurde zuletzt bearbeitet: 03.05.2016 15:34 von Freddy.)
Beitrag #9

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
Thumbs Up RE: Wert aus Array für Case Selection

Akzeptierte Lösung

Hab da mal die Idee von Jens aufgegriffen.
Gruß
Freddy

Etwas schöner aufgebaut.


Angehängte Datei(en) Thumbnail(s)
   

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.05.2016, 16:17
Beitrag #10

LazyCompany Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Apr 2016

2014
-
EN

70771
Deutschland
RE: Wert aus Array für Case Selection
Ich werde das mal ausprobieren Smile sieht schonmal ganz gut aus Big Grin
Ich nehme mal an wenn ich jetzt die Längenangabe ausm Protokollm mit einbeziehen will brauch ich nochmal nen Case und muss die Position 0x02 +1 anschauen und mir daraus ein Array aufbauen mit Kontrolle ob am Ende 0x03? Angel_not
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Case-Struktur: Angegebener Case nicht vorhanden braendy 10 6.925 02.02.2021 15:05
Letzter Beitrag: Lucki
  CAN Nachrichten in Array verarbeiten und aus Case Struktur weiterverarbeiten Tomate27 4 4.608 17.07.2020 13:30
Letzter Beitrag: Tomate27
  Wert aus 1-D Array entfernen Stephan235 2 3.872 16.03.2018 15:53
Letzter Beitrag: Stephan235
  Event Case Ignoriert Tastendruck wenn in Gegenwart eines anderen "Leeren" Event Case Ksanto 8 8.321 23.10.2017 09:08
Letzter Beitrag: Ksanto
  Nur Werte in Array wenn Case True PreVIEW 10 10.684 10.02.2017 15:25
Letzter Beitrag: Dalle
  Wert an naheliegensten Wert aus Array anpassen TSC 17 11.630 26.07.2016 06:59
Letzter Beitrag: TSC

Gehe zu: