DELIB API Referenz > Software FIFO verwalten > DapiReadFifo

Navigation:

 

DELIB API Referenz > Software FIFO verwalten >



DapiReadFifo

Previous pageReturn to chapter overviewNext page

Beschreibung

Dieser Befehl liest den Software-FIFO aus.

Definition

ULONG DapiReadFifo(ULONG handle, ULONG fifo_instance, ULONG type, UCHAR * buffer, ULONG buffer_length);

Parameter

handle=Dies ist das Handle eines geöffneten Moduls

fifo_instance=Gibt die Instanz des Software FIFO an

type=Gibt den FIFO-Typ an

buffer=Buffer für den zu empfangenden Datensatz

buffer_length=Länge des Buffers

Return-Wert

Länge der ausgelesenen FIFO-Datenstätze

 

Aufbau eines FIFO-Datensatz (Beispiel mit 2 aktiven A/D-Kanälen, A/D 0 und A/D 4)

Byte

Bedeutung

Wert [hex]

0

RO_FIFO_ID_START

0xf0

1

FIFO-Typ

 

2

Zeitstempel (Bit0..Bit7)

 

3

Zeitstempel (Bit8..Bit15)

 

4

Aktive A/D-Kanäle (Bit0..Bit7)

0x11

5

Aktive A/D-Kanäle (Bit8..Bit15)

0x00

6

A/D-Wert Kanal 0 (Bit0..Bit7)

 

7

A/D-Wert Kanal 0 (Bit8..Bit15)

 

8

A/D-Wert Kanal 4 (Bit0..Bit7)

 

9

A/D-Wert Kanal 4 (Bit8..Bit15)

 

10

RO_FIFO_ID_END

0xf1

FIFO-Datenstatz = 7 Bytes ID + (2 x Anzahl aktiver A/D-Kanäle) Bytes Daten

RO_FIFO_ID_START

Signalisiert den Anfang eines neuen FIFO-Datensatzes. Die RO_FIFO_ID_START hat immer den Wert 0xf0 [hex]

FIFO Typ

Gibt den FIFO Typ an (z.B. RO_FIFO_ID_TYPE_AD16M0 für A/D-FIFO)

Zeitstempel

Gibt den 16-Bit Zeitstempel des aktuellen Datensatzes an. Zeit-Referenz ist hierbei der Zeitpunkt der Aktivierung des FIFO.

Beim Überlauf des Zeitstempels, wird dieser auf 0 zurückgesetzt.

Aktive A/D-Kanäle

Gibt einen 16 Bit Wert für die aktuell aktiven A/D-Kanäle an. Jedes Bit steht für einen Kanal (Bit0 -> A/D0, Bit1 -> A/D1, .. Bit15 -> A/D15).

Ist das Bit gesetzt, ist der entsprechende A/D-Kanal aktiv

RO_FIFO_ID_END

Signalisiert das Ende eines FIFO-Datensatzes. Die RO_FIFO_ID_END hat immer den Wert 0xf1 [hex]

Bemerkung

Beachten Sie, dass der Software FIFO zuvor mit dem Befehl "DapiSpecialCMDAD" aktiviert, bzw. initialisiert werden muss.

Programmierbeispiel

bytes_received = DapiReadFifo(handle, fifo_instance, DAPI_FIFO_TYPE_READ_AD_FIFO, buffer, sizeof(buffer));

//Liest den Software FIFO aus