# Obsługa błędów

## Moduły
| Kody błędów biblioteki

| Kody błędów biblioteki. Biblioteka może zwracać kody błędów zarówno własne jak i kody bezpośrednio uzyskane z drukarki.
## Funkcje
POSNET_API POSNET_STATUS __stdcall | POS_GetError (POSNET_HANDLE hLocalDevice)
| Podaj kod statusu związany z uchwytem urządzenia.
POSNET_API const char *__stdcall | POS_GetErrorString (POSNET_STATUS code, char *lang)
| Zwróć tekstowy opis błędu.
POSNET_API POSNET_STATUS __stdcall | POS_GetPrnDeviceStatus (POSNET_HANDLE hLocalDevice, const char statusMode, long *globalStatus, long *printerStatus)
| Pobranie statusu drukarki. Drukarka jest periodycznie odpytywana o status i rezultat tej operacji jest przechowywany. Funkcja jest blokująca jeśli wykonywane jest odpytywanie.
POSNET_API POSNET_STATUS __stdcall | POS_GetRequestStatus (POSNET_HANDLE hRequest)
| Zwróć status rozkazu.

## Dokumentacja funkcji

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

Podaj kod statusu związany z uchwytem urządzenia.

Zwraca ostatnio ustawiony kod statusu związany z uchwytem urządzenia. Każda wywoływana funkcja oprócz zwrócenia tej wartości jako wyniku działania (o ile nie zwraca innego rodzaju rezultatu) ustawia wewnętrzny znacznik błędu.

Parametry:

  | hLocalDevice | Uchwyt lokalny urządzenia lub uchwyt globalny urządzenia.

Zwraca:
  Kod statusu patrz Kody błędów biblioteki Kody błędów.

POSNET_API const char* __stdcall POS_GetErrorString | ( | POSNET_STATUS | code,
|  | char * | lang |
| ) |  |  |

Zwróć tekstowy opis błędu.

Funkcja zwraca tekstowy opis błędu zrozumiały dla użytkownika / programisty. Komunikat może być zwrócony we wskazanym języku (o ile przygotowano niezbędny plik językowy). W przeciwnym wypadku komunikat zwracany jest w domyślnym języku biblioteki.

UWAGA: W systemie Linux pliki z tekstowymi opisami kodów błędów (pliki językowe o nazwach w postaci posnet_xx.lng mogą być umieszczone w katalogu, z którego uruchomiono program (nie zalecane) lub w miejscu wskazywanym przez zmienną środowiskową POSNET_LIB_SHARE_DIR (zalecane). W systemie WINDOWS katalog wskazany w POSNET_LIB_SHARE_DIR musi być zakończony znakiem „\” rozdzielającym katalogi np. POSNET_LIB_SHARE_DIR=c:\

Parametry:

  | code | Kod błędu do wyjaśnienia
  | lang | 2 znakowy kod języka wg ISO-3166

Zwraca:
  Ciąg znaków opisujących zdarzenia (C-string) zakoczńony znakiem 0. Ciąg ten zwracany jest z wewnętrznego bufora. Nie wolno go zwalniać funkcjami allokacji pamięci.

POSNET_API POSNET_STATUS __stdcall POS_GetPrnDeviceStatus | ( | POSNET_HANDLE | hLocalDevice,
|  | const char | statusMode,
|  | long * | globalStatus,
|  | long * | printerStatus |
| ) |  |  |

Pobranie statusu drukarki. Drukarka jest periodycznie odpytywana o status i rezultat tej operacji jest przechowywany. Funkcja jest blokująca jeśli wykonywane jest odpytywanie.

Parametry:

  | hLocalDevice | Lokalny uchwyt urządzenia
  | statusMode | Sposób uzyskania statusu - 0 - zwróć ostatni status automatyczny , 1 - odpytaj urządzenie jeśli brak statusu - blokujące!
  | globalStatus | Status urządzenia zwracany przez rozkaz sdev (-1 jeśli nie odpytano)
  | printerStatus | Status mechanizmu drukującego (nieistotny jeśli sdev=-1)

Zwraca:
  Funkcja zwraca status wykonania rozkazu, oraz wypełnia pola parametrów globalStatus i printerStatus

POSNET_API POSNET_STATUS __stdcall POS_GetRequestStatus | ( | POSNET_HANDLE | hRequest | ) |

Zwróć status rozkazu.

UWAGA: W celu efektywnego zarządzania błędami (w sytuacji, gdy drukarka zwraca błędy w róznych postaciach) zarządzanie błędami zostało zunifikowane - nazwa rozkazu zostaje umieszczona w polu "cm" odpowiedzi, kod błędu natomiast umieszczany jest także w polu o nazwie "!error" odpowiedzi. Dzięki temu postać odpowiedzi jest identyczna w przypadku błędów ramki i błędów.

Parametry:

  | hRequest | Uchwyt rozkazu (żądania wychodzącego lub odpowiedzi z drukarki)

Zwraca:
  Funkcja zwraca kod błędu związany z rozkazem. W przypadku odebrania odpowiedzi o błędzie wykonania rozkazu zwracane są kody odebrane od drukarki, są one także dostępne w polach rezultatu komendy w postaci zgodnej z Instrukcją Programisty. Kody o wartościach 0x00000000-0x0042FFFF służą do przekazywania stanu rozkazu w ramach biblioteki. Kody o wartościach 0x00430000-0x0043FFFF wykorzystywane są w przypadku negatywnej odpowiedzi drukarki na rozkaz, po jego zakończeniu w wyniku błędu drukarki – kod błędu drukarki zwiększony jest o wartość 0x00430000. Kody o wartościach 0x00440000-0x0044FFFF wykorzystywane są w przypadku negatywnej odpowiedzi drukarki na rozkaz, po jego zakończeniu w wyniku błędu transmisji – kod błędu transmisji zwiększony jest o wartość 0x00440000.

Zobacz również:
  Obsługa synchroniczna drukarki "Obsługa synchroniczna drukarki"