kernelv_ch_get_decoder_positions()
Prototyp
KERNELV_RETURN | kernelv_ch_get_decoder_positions (unsigned long int chanIndex, |
Beschreibung
Mit dieser Funktion können vom Decoder die gerade aktiven Achspositionen im Maschinenkoordinaten sowie in Programmierkoordinaten angefordert werden.
Die von der Funktion zurückgelieferten Werte werden dabei in den Speicherbereich, der auf den buffer zeigt, geschrieben. In der Variablen buffer_size ist dabei die Größe dieses Speicherbereiches anzugeben. In ret_length wird die tatsächliche Größe der zurückgelieferten Daten zurückgegeben. Wenn die zurückzuliefernden Daten nicht in den bereitgestellten Speicherbereich passen, wird der Fehlerkode ERR_CNC_RET_MEMORY zurückgegeben. In diesem Fall beinhaltet ret_length die zur Rückgabe benötigte Speichergröße.
Die zurückgelieferten Daten haben die folgende Struktur, die einzelnen Datenelemente der Strukturen liegen dabei gepackt im Speicher:
Byte-Index | Typ | Bedeutung |
0 | KERNELV_DECODER_POSITION_HEADER | Allgemeine Daten über die gelieferten Decoderpositionen, siehe 2.2.24. Im Element axis_count ist die Anzahl der folgenden Strukturen des Typs KERNELV_DECODER_POSITION_DATA eingetragen. |
11 | KERNELV_DECODER_POSITION_DATA | Achspositionen und Achsnummer der 1. Achse. Strukturdefinition siehe 2.2.25 |
25 | KERNELV_DECODER_POSITION_DATA | Achspositionen und Achsnummer der 2. Achse. Strukturdefinition siehe 2.2.25 |
39 | … | ... |
Da aktuell die maximal mögliche Anzahl von Achsen im Kanal auf 32 begrenzt ist, beträgt die maximale Größe des Rückgabewertes 459 Bytes.
Parameter
Name | Typ | Bedeutung |
chanIndex | unsigned long | Index des Kanals |
ret_buffer | void* | Zeiger auf den Speicherbereich, in den die Rückgabedaten geschrieben werden sollen. |
buffer_size | unsigned long | Größe des bereitgestellten Speicherbereiches in Byte. |
ret_Length | unsigned long* | Zeiger auf den Speicherbereich, in den die Anzahl der tatsächlich zurückgelieferten Bytes geschrieben werden soll. |
Rückgabewerte
Symbol | Wert | Bedeutung |
RET_FINISHED | 0 | Die Funktion wurde fehlerfrei durchgeführt. |
ERR_CNC_NOT_INIT | -3 | Der Simulations-CNC-Kern ist noch nicht initialisiert. |
ERR_INVALID_CHAN | -1 | Der übergebene Kanalindex ist größer als die Anzahl der konfigurierten Kanäle - 1 |
ERR_CNC_RET_MEMORY | -4 | Der oder die Rückgabewerte passen nicht in den bereitgestellten Speicher. |