Guten Tag zusammen, ich bin neu hier und hab ein ziemliches Problem.
Ich muss beliebe Strukturen (es ist also nie bekannt was jetzt übergeben wird) an eine Testumgebung weitergeben. Dabei soll es egal sein ob da einfach eine Bool ankommt oder ein Struct mit verschiedenen Elementen. Ich muss dabei den Zugriff auf die Einzelelemente haben um nachher mit Sollwerten vergleichen zu können.
Es soll wohl irgentwie mit Pointern gehn aber wie? Das Programm muss ja die Grössen der ankommenden Strukturen oder Variablen errechnen um den nächsten Pointer auch an die richtige Stelle zu setzen. Kann mir da jemand helfen? Gibts sowas wie nen Anypointer, der gekoppelt mit der Sizeof ne Möglichkeit schafft?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
In Codesys gibt es meines Wissens keinen Anypointer. Wohl ist es möglich eine Art Type Cast zu machen indem man z.B. einen Pointer auf Byte innerhalb einer Funktion einem Pointer auf String zuweist.
Dazu muss der Datentyp aber bekannt sein und eine Sizeof kann nur
bei vorher deklarierten Variablen bestimmt werden.
Wir arbeiten in solchen Fällen immer mit Array OF Byte. Und setzen
dann Member für Member in den Zieltyp um.
Es ist in CoDesys 2.3 leider nicht möglich Funktionen mit "VOID" Pointern
zu verwenden wie in der Sprache C.
Was ist das für eine "Testumgebung" ? Wie wird weitergegeben ?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Guten Tag zusammen, ich bin neu hier und hab ein ziemliches Problem.
Ich muss beliebe Strukturen (es ist also nie bekannt was jetzt übergeben wird) an eine Testumgebung weitergeben. Dabei soll es egal sein ob da einfach eine Bool ankommt oder ein Struct mit verschiedenen Elementen. Ich muss dabei den Zugriff auf die Einzelelemente haben um nachher mit Sollwerten vergleichen zu können.
Es soll wohl irgentwie mit Pointern gehn aber wie? Das Programm muss ja die Grössen der ankommenden Strukturen oder Variablen errechnen um den nächsten Pointer auch an die richtige Stelle zu setzen. Kann mir da jemand helfen? Gibts sowas wie nen Anypointer, der gekoppelt mit der Sizeof ne Möglichkeit schafft?
In Codesys gibt es meines Wissens keinen Anypointer. Wohl ist es möglich eine Art Type Cast zu machen indem man z.B. einen Pointer auf Byte innerhalb einer Funktion einem Pointer auf String zuweist.
Dazu muss der Datentyp aber bekannt sein und eine Sizeof kann nur
bei vorher deklarierten Variablen bestimmt werden.
Wir arbeiten in solchen Fällen immer mit Array OF Byte. Und setzen
dann Member für Member in den Zieltyp um.
Es ist in CoDesys 2.3 leider nicht möglich Funktionen mit "VOID" Pointern
zu verwenden wie in der Sprache C.
Was ist das für eine "Testumgebung" ? Wie wird weitergegeben ?