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 

2D Array zerlegen



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!

23.10.2013, 14:06
Beitrag #1

che-salih Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 55
Registriert seit: May 2013

2012
2013
DE



2D Array zerlegen
Hi Community,

folgendes habe ich bis jetzt gemacht.

Ich habe ein VI erstellt, womit ich aus einem Gerät (RFID Reader) folgende Information auslesen kann.
2D Array String (Hex) und 2D Array Integer (Ich habe den 2D String Array einfach in Zahl umgewandelt). Mein VI liefert mir verschiedene Informationen, wie z.B. Auslesezeit, ID-Nummer, Datum, Antennennummer, etc. Nur die erste Zeile ist für mich wichtig. Die gesammte Informationen liegt genau in der 1. Zeile. Dieses VI funktioniert aber nur mit 1 Transponder. Die 1.Zeile ist bei einem Transponder immer 45 Byte groß und ich kann auf bestimmte Elemente zugreifen und mir die Information ausgeben lassen.

Was ich jetzt machen möchte:

ich möchte dieses VI erweitern. D.h es soll auch mit n Transpondern arbeiten und mir alle wichtigen Informationen liefern, wie bei einem Transponder. Folgende Information habe ich:

Die 1. Zeile des 2D Arrays erweitert sich immer um 34 Byte mit steigender Transponderzahl, die ausgelesen wird.
Also: 1 Transponder ----> 45 Byte
2 Transponder ----> 79 Byte
3 Transponer -----> 113 Byte usw.

Die Data Länge ist immer 34 Byte und wird hinterneinander angehängt. Die letzten Bytes sind LSB CRC16 und MSB CRC16, was erstmal nicht so wichtig ist.

Also konkret:

Data Länge ist immer 9. Byte bis n-1 mit 34 Byte Schritten für neue Data Sets. Die ersten 8 Bytes representieren STX/MSB/LSB/COM Addr/Command/Status/TRData1/Data Set und es bleibt immer gleich.

Bevor es noch mehr wird!!!

Wie kann ich ein Regel aufstellen und sagen, ich möchte den Data Inhalt von 9. Byte bis n-1 Byte immer ausschneiden und in 34 Byte Frames aufteilen? Und das unabhängig vom Transponderzahl.

Naja es ist etwas kompliziert erklärt aber mal schauen, ob es jemand versteht Smile

MfG

Che
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.10.2013, 15:57 (Dieser Beitrag wurde zuletzt bearbeitet: 23.10.2013 16:03 von BsaiboT.)
Beitrag #2

BsaiboT Offline
LVF-Stammgast
***


Beiträge: 449
Registriert seit: Nov 2009

2010
2007
kA

22459
Deutschland
RE: 2D Array zerlegen
Schneide zuerst alles vor dem 9. Byte ab (beachte die Indizierung beginnend bei 0). Dadurch erhälst du ein neues Array, von dem du dir die Göße geben lässt. Die Arraygröße sollte dann nach deinen Angaben immer ein vielfaches von 34 Byte sein. Sprich du teilst die Arraygröße durch 34 und bekommst die Anzahl n der gelesenen Transponder. Alle Funktionen hierzu findest du in der Array-Palette.

Ich würde mir ein neues Array mit n x 34 Byte Daten daraus erstellen. Das ist dann für die weitere Bearbeitung relativ einfach zu addressieren und zu händeln.

Gruß,
//Tobias

Edit:
Wie kommst du eigentlich auf 45 Byte? 34 + 8 = 42; 45 - 8 = 37; 45 - 34 = 11 usw... Entweder du hast dich verrechnet oder 3 byte vergessen. Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.10.2013, 17:05
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 2D Array zerlegen
Hallo,

ergänzend zu Tobias' Anmerkungen:
Wenn du die Header-Bytes weggeschnitten hast, kannst du mittels ReshapeArray dein 1D-Array sehr bequem in ein 2D-Array mit 34 Byte pro Zeile umwandeln. Dann kannst du per Autoindexing auf die Daten jedes Transponders zugreifen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.10.2013, 14:59 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2013 15:00 von che-salih.)
Beitrag #4

che-salih Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 55
Registriert seit: May 2013

2012
2013
DE



RE: 2D Array zerlegen
Zitat:Wie kommst du eigentlich auf 45 Byte? 34 + 8 = 42; 45 - 8 = 37; 45 - 34 = 11 usw... Entweder du hast dich verrechnet oder 3 byte vergessen. Smile

1 Transponder:

8 Byte Header
34 Byte Data
2 Byte CRC16

macht 45 Byte angefangen bei 0.

ich habe das etwas schöner mit While Schleife und Schieberegister gelöst. Im Prinzip das gleiche was Ihr vorgeschlagen habt. Mein Data Block steht jetzt in 2D Array zuverfügung, unabhängig davon wieviele Transponder im Lesefeld sind. Jetzt probiere ich mal die Informationen im Data Block gezielt anzuzeigen oder umzuformen

Mfg

Che.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.10.2013, 07:59
Beitrag #5

BsaiboT Offline
LVF-Stammgast
***


Beiträge: 449
Registriert seit: Nov 2009

2010
2007
kA

22459
Deutschland
RE: 2D Array zerlegen
(24.10.2013 14:59 )che-salih schrieb:  8 Byte Header
34 Byte Data
2 Byte CRC16

macht 45 Byte angefangen bei 0.

Entweder ich stehe völlig auf dem Schlauch oder ich weiss es nicht....
8 + 34 + 2 = 44

Byte 0 bis Byte 45 sind dennoch 46 Bytes total. Fehlen also immernoch 2 Bytes.... Naja, hauptsache Dein VI funktioniert jetzt. Du kannst mich ja bzgl. der Bytes noch einmal erleuchten, aber vielleicht sieht auch jmd anderes den Fehler. Ich bin ja schliesslich nicht lernresistent. Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.10.2013, 15:09
Beitrag #6

che-salih Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 55
Registriert seit: May 2013

2012
2013
DE



RE: 2D Array zerlegen
0. Element bis 8. Element = Header= 9 Bytes Blink
9. Element bis 42. Element= Data= 34 Bytes 2hands
43. Element und 44. Element= CRC16= 2 Bytes

Macht 45 Byte
-------------------------------------------------------------
Jetzt habe ich´s aber hinbekommen Box
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2013, 09:19
Beitrag #7

che-salih Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 55
Registriert seit: May 2013

2012
2013
DE



RE: 2D Array zerlegen
Guten Morgen,

ich brauche noch etwas Hilfe. Nach der Indexing habe ich wieder ein 2D Array (U8), was ich aber zeilenweise als Gesamtzahll anzeigen möchte.

Bsp.: 2D Array sieht so aus

30 00 30 08 33
30 00 30 08 33

Ich möchte das aber so haben:

3000300833
3000300833

nachdem möchte ich noch Arrays hinzufügen. Am Ende soll es etwa so aussehen:

3000300833 09:15:12.32 28.10.2013 1
3000300833 09:15:17.32 28.10.2013 2 usw.

ID | Zeit | Datum | Antennnummer

danke..

Che
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2013, 09:26
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 2D Array zerlegen
Hallo che,

hier mal die primitive Variante, dein 2D-Array in Strings umzuwandeln:
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2013, 09:32
Beitrag #9

BsaiboT Offline
LVF-Stammgast
***


Beiträge: 449
Registriert seit: Nov 2009

2010
2007
kA

22459
Deutschland
RE: 2D Array zerlegen
Moin Che.

Genau wie Gerd es zeigt.

Umwandeln deines Array in String und die Inhalte der Zeilen dabei verknüpfen.
Anschliessend kannst du das entstandene Array mit den Infos wie Datum, Zeit, Empfänger erweitern.
Wenn du einige Daten aber als Zahl behalten und andere als Zeitstempel und als String in einem Array, dann musst du dir ein Array of clusters erstellen.

Gruß,
//Tobias
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2013, 12:55 (Dieser Beitrag wurde zuletzt bearbeitet: 28.10.2013 12:56 von che-salih.)
Beitrag #10

che-salih Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 55
Registriert seit: May 2013

2012
2013
DE



RE: 2D Array zerlegen
Hi zusammen,

es funktioniert wunderbar. Ich habe jetzt alle Informationen in 1D Arrays umformatiert. Am Ende werde ich dann alle zusammenfügen. Array of Cluster hört sich sehr gut an. Denke ich werde es damit lösen. Bevor ich aber alle zusammenführen kann, muss ich noch ein Schritt erledigen.

Ich habe mir gedacht, die Zeitdarstellung genauso wie oben zu machen. Das heisst, ich verknüpfe die Zeitinformation und formatiere es über den Format-String. Die Formatvarianten habe ich mir unter Hilfe schon angeguckt. Das funktioniert aber nicht so wirklich.

Also was ich habe ist:

134520307
1345218212
134521932

es soll:

13:48:23,007
13:48:38,212
13.48:39,32

Geht das überhaupt über Format-String?

Che
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
  Variant in Grundtypen zerlegen LV-New 6 4.557 10.01.2022 10:55
Letzter Beitrag: LV-New
  String zerlegen --> in Array lambda89 5 10.413 02.07.2013 13:58
Letzter Beitrag: Lucki
  String (XML) zerlegen TSC 12 10.720 15.05.2013 07:28
Letzter Beitrag: TSC
  String Zerlegen indem man MSB in einem Byte erkennt labuser2010 11 11.155 01.07.2010 09:08
Letzter Beitrag: GerdW
  Zerlegen eines Strings in einzelne Character FuxDancer 29 24.994 03.01.2010 16:08
Letzter Beitrag: FuxDancer
  string zerlegen funk 22 22.417 28.08.2009 11:00
Letzter Beitrag: funk

Gehe zu: