Obsługa kolejek rozkazów i wyników
[Obsługa synchroniczna kasy]


Funkcje

POSNET_API POSNET_HANDLE __stdcall POS_CancelExecuting (POSNET_HANDLE hLocalDevice)
 Anuluj rozkaz aktualnie wykonywany przez kasę.
POSNET_API POSNET_HANDLE __stdcall POS_GetNextResponse (POSNET_HANDLE hLocalDevice)
 Pobierz z kolejki odpowiedzi (rozkazów zakończonych) następny dostępny wynik.
POSNET_API unsigned long __stdcall POS_GetRequestCount (POSNET_HANDLE hLocalDevice, unsigned char globalnie=0)
 Pobierz ilość rozkazów oczekujących w kolejce rozkazów wysłanych przez bieżący kontekst urządzenia lub wszystkich rozkazów oczekujących w kolejce.
POSNET_API unsigned long __stdcall POS_GetResponseCount (POSNET_HANDLE hLocalDevice)
 Pobierz ilość wyników w kolejce wyników.
POSNET_API POSNET_STATUS __stdcall POS_RepeatRequest (POSNET_HANDLE hRequest)
 Wywołuje funkcję REPEAT dla utraconej odpowiedzi kasy.
POSNET_API POSNET_STATUS __stdcall POS_RequestQueueCancelAll (POSNET_HANDLE hLocalDevice, unsigned char globalnie=0)
 Wyczyść kolejkę rozkazów oczekujących na wysłanie.
POSNET_API POSNET_STATUS __stdcall POS_RequestQueueCancelPending (POSNET_HANDLE hLocalDevice, unsigned char globalnie=0)
 Wyczyść kolejkę rozkazów oczekujących na wysłanie.
POSNET_API POSNET_STATUS __stdcall POS_RequestQueueStats (POSNET_HANDLE hLocalDevice, unsigned long *sent, unsigned long *completed)
 Pobierz statystyki kolejek. Statystyki są zwracane w kontekście całego urządzenia.

Opis szczegółowy

Aplikacja może obsługiwać wysyłane rozkazy w dwóch trybach. W trybie "wyślij-zapomnij" aplikacja tworzy rozkaz, wypełnia parametrami a następnie umieszcza w kolejce rozkazów do wykonania. Jednocześnie nie przechowuje samodzielnie uchwytów wysłanych rozkazów. Wyniki rozkazów pobiera z kolejki wyników za pośrednictwem POS_GetNextResponse i obsługuje odpowiednio. W trybie "interaktywnym" aplikacja tworzy rozkaz, wypełnia parametrami i wstawia do kolejki rozkazów. Jednakże zapamiętuje uchwyt rozkazu i obserwując stan rozkazu za pośrednictwem POS_GetRequestState obsługuje go w momencie zakończenia.

Tryb "wyślij-zapomnij" jest bardziej odpowiedni dla operacji masowych (np. programowanie kasy) gdyż umożliwia efektywniejsze (szybsze) wykonywanie rozkazów, których wynik jest mniej istotny.

Tryb "interkatywny" wskazany jest dla rozkazów, których wynik jest w danej chwili niezbędny dla dalszej pracy aplikacji. W tym celu wprowadzony jest też rozkaz POS_WaitForRequestCompleted który umozliwia synchronizowane oczekiwanie na zakończenie wykonania rozkazu przez kasę.

Ostrzeżenie:
Nie ma możliwości przeglądania kolejki rozkazów oczekujących/wysłanych. Jest to spowo dowane ich asynchronicznym w stosunku do apliacki wykonywaniem i zawartość tej kolejki może się zmieniać w trakcie wykonywania zaputań przeglądających (rozkazy mogą znikać z kolejki mimo iż aplikacja pobrała je jeszcze z kolejki oczekujących).

Dokumentacja funkcji

POSNET_API POSNET_HANDLE __stdcall POS_CancelExecuting ( POSNET_HANDLE  hLocalDevice  ) 

Anuluj rozkaz aktualnie wykonywany przez kasę.

Funkcja jest przydatna w sytuacji, gry aplikacja chce anlulować wyłącznie wykonywany rozkaz bez czyszczenia kolejki oczekujących, a pracuje w trybie wyslij-zapomnij. Anulowanie następuje w kontekście globalnym urządzenia, jako że tylko jeden rozkaz może być w danej chwili wykonywany przez kasę.

Parametry:
hLocalDevice Uchwyt lokalny urządzenia
Zwraca:
Uchwyt anulowanego rozkazu lub NULL w przypadku braku rozkazu do anulowania

POSNET_API POSNET_HANDLE __stdcall POS_GetNextResponse ( POSNET_HANDLE  hLocalDevice  ) 

Pobierz z kolejki odpowiedzi (rozkazów zakończonych) następny dostępny wynik.

Z kolejki odpowiedzi zostaje pobrany (i usunięty) następny wynik. Pobrany wynik należy zniszczyć za pomocą POS_DestroyRequest. Pobierane są wyłącznie wyniki otrzymane na rozkazy wysłane za pośrednictwem bieżącego kontekstu urządzenia (hLocalDevice). Rozkazy wysłane za pomocą innych kontekstów tego samego urządzenia są pomijane.

Funkcja jest nieblokująca.

Parametry:
hLocalDevice Uchwyt lokalny urządzenia
Zwraca:
Uchwyt do odpowiedzi lub NULL w przypadku błędu lub braku następnej odpowiedzi

POSNET_API unsigned long __stdcall POS_GetRequestCount ( POSNET_HANDLE  hLocalDevice,
unsigned char  globalnie = 0 
)

Pobierz ilość rozkazów oczekujących w kolejce rozkazów wysłanych przez bieżący kontekst urządzenia lub wszystkich rozkazów oczekujących w kolejce.

Parametry:
hLocalDevice Uchwyt lokalny urządzenia
globalnie Jeśli parametr ten jest różny od 0 zwracana wartość podaje ilość wszystkich rozkazów oczekujących w kolejce.

POSNET_API unsigned long __stdcall POS_GetResponseCount ( POSNET_HANDLE  hLocalDevice  ) 

Pobierz ilość wyników w kolejce wyników.

Parametry:
hLocalDevice Uchwyt lokalny urządzenia
Zwraca:
Ilość wyników dla bieżącego kontekstu urządzenia.

POSNET_API POSNET_STATUS __stdcall POS_RepeatRequest ( POSNET_HANDLE  hRequest  ) 

Wywołuje funkcję REPEAT dla utraconej odpowiedzi kasy.

Funkcja jest przydatna w sytuacji, gdy odpowiedź kasy na wysłaną ramkę została utracona w wyniku błędu transmisji z kasy do komputera. Jej użycie powoduje ponowne wysłanie ramki z ustawionym bitem REPEAT. Użycie możliwe jest jeśli rozkaz znajduje się w stanie POSNET_RSTATE_SENT lub POSNET_RSTATE_ACK (por. POS_GetRequestState)

Parametry:
hRequest Uchwyt rozkazu, który ma być ponowiony
Zwraca:
Status wykonania

POSNET_API POSNET_STATUS __stdcall POS_RequestQueueCancelAll ( POSNET_HANDLE  hLocalDevice,
unsigned char  globalnie = 0 
)

Wyczyść kolejkę rozkazów oczekujących na wysłanie.

Czyści kolejkę rozkazów oczekujących. Funkcja powinna być wykorzystywana wyłącznie w sytuacji, gdy nastąpił krytyczny błąd urządzenia. Wszystkie otrzymane później wyniki dla rozkazów, które były w trakcie wykonywania zostaną odrzucone. Domyślnie rozkazy czyszczone są wyłącznie dla bieżącego kontekstu urządzenia.

Parametry:
hLocalDevice Uchwyt lokalny urządzenia
globalnie Jeśli parametr ten jest różny od 0 ignorowany jest kontekst urządzenia.

POSNET_API POSNET_STATUS __stdcall POS_RequestQueueCancelPending ( POSNET_HANDLE  hLocalDevice,
unsigned char  globalnie = 0 
)

Wyczyść kolejkę rozkazów oczekujących na wysłanie.

Czyści kolejkę rozkazów oczekujących na wysłanie. Funkcja powinna być wykorzystywana wyłącznie w sytuacji, gdy nastąpił krytyczny błąd urządzenia. Rozkazy już wysłane zostaną obsłużone, jeśli w dalszej perspektywie pojawi się na nie odpowiedź. Domyślnie rozkazy czyszczone są wyłącznie dla bieżącego kontekstu urządzenia.

Parametry:
hLocalDevice Uchwyt lokalny urządzenia
globalnie Jeśli parametr ten jest różny od 0 ignorowany jest kontekst urządzenia.

POSNET_API POSNET_STATUS __stdcall POS_RequestQueueStats ( POSNET_HANDLE  hLocalDevice,
unsigned long *  sent,
unsigned long *  completed 
)

Pobierz statystyki kolejek. Statystyki są zwracane w kontekście całego urządzenia.

Parametry:
hLocalDevice Uchwyt lokalny urządzenia
sent Do tej zmiennej wpisywana jest ilość wszystkich wysłanych do kasy rozkazów
completed Do tej zmiennej wpisywana jest ilość wszystkich ukończonych rozkazów


Wygenerowano Fri Apr 10 19:50:11 2009 dla POSNET COMBO LIBRARY programem  doxygen 1.5.8