Hallo,
ich habe jetzt nochmal ein bischen umgebaut, ich hoffe jetzt wirds klarer. Die Sachen, die ich gelöscht habe, sollten sowas wie alternative Wege darstellen, aber ich glaube das war einfach nur Blödsinn.
Der Übersichtlichkeit halber habe ich hier nur einen Teil des ganzen VIs (also auch der Schleife) und auch nur 3 Cases dargestellt, insgesamt sind es aber 8, dazu gleich mehr. Die Arrays die am Ende erstellt werden (eines davon fällt noch weg) werden im gleichen Schleifendurchlauf noch verarbeitet.
Die Schleife soll, wenn ein Case aktiviert ist, aus dem Cluster die jeweiligen Werte holen, und im SubVI (EPDC_S3C_Command) ein Array daraus erstellen, das dann ein Format hat, das ich direkt auf den CAN schreiben kann. Ein Case steht also immer für ein Gerät am CAN.
Ich kann maximal 8 Geräte anschließen, deswegen soll das fertige 2D-Array 8 Zeilen haben. Die 9 Spalten sind meine 8 Byte CAN Daten und ein Element das später im Programm wieder gelöscht wird (das ist sowas in der Art, wie Falk gesagt hat), aber dazwischen drin noch gebraucht wird.
Die FOR-Schleife habe ich drin um aus dem auf 8x9 Elemente initialisierte Array die leeren Zeilen wieder zu löschen. Array oder Array2 ist dann das Ding, dass ich auf den CAN geben will. Wobei ich noch schauen will (interessehalber), ob ich einen Unterschied bei der Geschwindigkeit merke, wenn ich nach einem Element "0" suche und dann schaue, ob das an 0ter Stelle steht (oberer Case in der FOR-Schleife), oder wenn ich ihm sage schau dir das 0te Element an, ob das 0 ist.
Soviel zum Hintergrund.
Da ich damit rechne, dass mit den VIs Dauerlauftests gemacht werden sollen, möchte ich jetzt gerne sicherstellen, dass das Array speichermäßig immer das gleiche ist, also dass ich nicht durch irgendwelche Programmierfehler oder Unachtsamkeiten meinen Speicher voll mülle.
Ist das jetzt so sichergestellt, oder wo muss ich da noch was ändern, dass das passt?
{EDIT:
Und ich sehe gerade, dass ich in der FOR-Schleife auch mit Replace arbeiten muss, oder? Dann einfach den Iterator an "Index(row)" vom Replace anschließen und es müsste klappen denke ich mal, oder?
OK, das geht nicht. Replace geht ja nur mit einem Initialisierten Array}
Ich hoffe Ihr versteht jetzt halbwegs was ich will/brauche.
Danke und Gruß
Dommas