# 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 HANDLE __stdcall | POS_GetEvent (POSNET_HANDLE hLocalDevice)
| Funkcja zwraca uchwyt do zdarzenia. Obiekt zdarzenia jest zarządzany przez bibliotekę. Zdarzenie pracuje w trybie Manual Reset patrz.
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.
POSNET_API POSNET_STATUS __stdcall | POS_SetMessageParams (POSNET_HANDLE hLocalDevice, UINT messageCode, HANDLE hWnd)
| Funkcja ustawia kod komunikatu i uchwyt okna do którego ma być on wysłany przy obsłudze zdarzeń asynchronicznych. Tylko dla Windows.

## 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 HANDLE __stdcall POS_GetEvent | ( | POSNET_HANDLE | hLocalDevice | ) |

Funkcja zwraca uchwyt do zdarzenia. Obiekt zdarzenia jest zarządzany przez bibliotekę. Zdarzenie pracuje w trybie Manual Reset patrz.

Zobacz również:
  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createevent.asp MSDN.

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 przypadku uchwyt zdarzenia (Event).

Tylko dla WIN32

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)

POSNET_API POSNET_STATUS __stdcall POS_SetMessageParams | ( | POSNET_HANDLE | hLocalDevice,
|  | UINT | messageCode,
|  | HANDLE | hWnd |
| ) |  |  |

Funkcja ustawia kod komunikatu i uchwyt okna do którego ma być on wysłany przy obsłudze zdarzeń asynchronicznych. Tylko dla Windows.

Parametry:

  | hLocalDevice | Uchwyt lokalny urządzenia. Funkcja pomimo pobierania uchwytu lokalnego ma zasięg globalny dla urządzenia.
  | messageCode | Kod komunikatu (WM_xxxx)
  | hWnd | Uchwyt okna

Tylko dla WIN32