kernelv_ch_get_decoder_positions()

Prototyp

KERNELV_RETURN

kernelv_ch_get_decoder_positions (unsigned long int chanIndex,
                                                          void* ret_buffer,
                                                          unsigned long int  buffer_size,
                                                          unsigned long int *ret_length));

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.