POSNET COMBO LIBRARY: Obsługa zdarzeń asynchronicznych

# Obsługa zdarzeń asynchronicznych

## ModuĹ‚y
| Typy zdarzeń
## Definicje typĂłw
typedef void( | POSNET_CALLBACK_T )(POSNET_HANDLE handle)
| Typ definiujący funkcję callback dla zdarzeń asynchronicznych. Przyjmuje jeden parametr uchwyt do odebranych danych (hRequest). Funkcja MUSI usunąć orzymany obiekt wyniku.
## Funkcje
POSNET_API POSNET_STATUS __stdcall | POS_AsyncDataWaiting (POSNET_HANDLE hLocalDevice)
| Sprawdzenie czy w kolejce zdarzeń asynchronicznych znajdują się obiekty.
POSNET_API unsigned long __stdcall | POS_AsyncQueueLength (POSNET_HANDLE hLocalDevice)
| Ilość elementów w kolejce zdarzeń asynchronicznych.
POSNET_API POSNET_STATUS __stdcall | POS_AsyncQueuePurge (POSNET_HANDLE hLocalDevice)
| Wyczyść kolejkę zdarzeń asynchronicznych.
POSNET_API void *__stdcall | POS_GetSemaphore (POSNET_HANDLE hLocalDevice)
| Pobranie semafora synchronizującego wątki pthread (typ sem_t).
POSNET_API POSNET_HANDLE __stdcall | POS_PopAsyncData (POSNET_HANDLE hLocalDevice, unsigned long timeout)
| Pobierz z kolejki asynchronicznej następny obiekt.
POSNET_API POSNET_STATUS __stdcall | POS_SetCallback (POSNET_HANDLE hLocalDevice, POSNET_CALLBACK_T *callback)
| Funkcja ustawia w bibliotece funkcję callback, która będzie wywoływana po otrzymaniu zdarzenia asynchronicznego.
POSNET_API POSNET_STATUS __stdcall | POS_SetEventHandlingMode (POSNET_HANDLE hLocalDevice, unsigned long eventMode)
| Ustaw metodę obsługi zdarzeń asynchronicznych.

## Dokumentacja definicji typĂłw

typedef void( POSNET_CALLBACK_T)(POSNET_HANDLE handle)

Typ definiujący funkcję callback dla zdarzeń asynchronicznych. Przyjmuje jeden parametr

- uchwyt do odebranych danych (hRequest). Funkcja MUSI usunąć orzymany obiekt wyniku.

Definicja w linii 1059 pliku posnet.h.

## Dokumentacja funkcji

POSNET_API POSNET_STATUS __stdcall POS_AsyncDataWaiting | ( | POSNET_HANDLE | hLocalDevice | ) |

Sprawdzenie czy w kolejce zdarzeń asynchronicznych znajdują się obiekty.

Sprawdza czy w kolejce zdarzeń asynchronicznych znajdują się jakiekolwiek obiekty. Wśród tych obiektów może być obiekt karty rabatowej. Obiekty asynchroniczne nie posiadają kontekstu urządzenia.

Parametry:

  | hLocalDevice | Uchwyt lokalny urządzenia

Zwraca:
  POSNET_STATUS_OK jeśli są elementy lub POSNET_STATUS_EMPTY jeśli ich nie ma

POSNET_API unsigned long __stdcall POS_AsyncQueueLength | ( | POSNET_HANDLE | hLocalDevice | ) |

Ilość elementów w kolejce zdarzeń asynchronicznych.

Parametry:

  | hLocalDevice | Uchwyt lokalny urządzenia

Zwraca:
  Ilość elementów w kolejce lub -1 w przypadku błędu

POSNET_API POSNET_STATUS __stdcall POS_AsyncQueuePurge | ( | POSNET_HANDLE | hLocalDevice | ) |

Wyczyść kolejkę zdarzeń asynchronicznych.

Czyści kolejkę zdarzeń asynchronicznych bez ich obsługi.

Parametry:

  | hLocalDevice | Uchwyt urządzenia

POSNET_API void* __stdcall POS_GetSemaphore | ( | POSNET_HANDLE | hLocalDevice | ) |

Pobranie semafora synchronizującego wątki pthread (typ sem_t).

Parametry:

  | hLocalDevice | Uchwyt lokalny urządzenia. Funkcja pomimo pobierania uchwytu lokalnego ma zasięg globalny dla urządzenia.

Zwraca:
  NULL w przypadku błędu, w przeciwnym wypadku wskaźnik na semafor.

Tylko dla Linux

POSNET_API POSNET_HANDLE __stdcall POS_PopAsyncData | ( | POSNET_HANDLE | hLocalDevice,
|  | unsigned long | timeout |
| ) |  |  |

Pobierz z kolejki asynchronicznej następny obiekt.

Pobrany obiekt należy następnie skasować za pomocą funkcji POS_DestroyRequest .

Parametry:

  | hLocalDevice | Uchwyt lokalny urządzenia
  | timeout | Parametr określający czas oczekiwania na nową wartość w kolejce asynchronicznej. Jeśli ma wartość INFINITE funkcja czeka w nieskończoność, 0 - wraca natychmiast w przeciwnym wypadku oczekuje odpowiednią ilość milisekund na otrzymanie danych.

Zwraca:
  NULL jeśli nie ma (lub oczekiwanie zakończyło się timeoutem), uchwyt obiektu w przeciwnym razie.

POSNET_API POSNET_STATUS __stdcall POS_SetCallback | ( | POSNET_HANDLE | hLocalDevice,
|  | POSNET_CALLBACK_T * | callback |
| ) |  |  |

Funkcja ustawia w bibliotece funkcję callback, która będzie wywoływana po otrzymaniu zdarzenia asynchronicznego.

Parametry:

  | hLocalDevice | Uchwyt lokalny urządzenia. Funkcja pomimo pobierania uchwytu lokalnego ma zasięg globalny dla urządzenia.
  | callback | wskaźnik na funkcję typu callback.

POSNET_API POSNET_STATUS __stdcall POS_SetEventHandlingMode | ( | POSNET_HANDLE | hLocalDevice,
|  | unsigned long | eventMode |
| ) |  |  |

Ustaw metodę obsługi zdarzeń asynchronicznych.

Kasa ma możliwość generacji zdarzeń asynchronicznych, które muszą być przesłane do aplikacji. Przykładowym zdarzeniem jest obsługa karty rabatowej w trakcie sprzedaży. Tego typu zdarzenia można przesłać do aplikacji w następujący sposób:

- za pomocą IPC typu "Event"
- za pomocą komunikatów systemu Windows (Windows Messages)
- za pomocą systemu pollingu, gdzie aplikacja odpytuje bufor zdarzeń asynchronicznych

Funkcja służy to ustawienia trybu sygnalizacji zdarzeń.

Parametry:

  | hLocalDevice | Uchwyt lokalny urządzenia. Funkcja pomimo pobierania uchwytu lokalnego ma zasięg globalny dla urządzenia.
  | eventMode | Typ sygnalizacji zdarzeń definiowany przez Typy zdarzeń

Zwraca:
  Status wykonania funkcji (POSNET_STATUS_OK w przypadku sukcesu)