Udostępnij przez


Modele danych wyjściowych urządzeń (wersja POS dla zestawu SDK platformy .NET w wersji 1.14)

Model danych wyjściowych unified point of service (UnifiedPOS) składa się z dwóch typów danych wyjściowych; synchroniczne i asynchroniczne. Typ urządzenia poS może obsługiwać jeden lub oba typy lub żaden typ.

Synchroniczne dane wyjściowe

Gdy aplikacja używa metody synchronicznej specyficznej dla typu urządzenia do zapisywania danych wyjściowych, operacja zapisu odbywa się w tym samym wątku, który nazwał metodę . Obiekt usługi może nie zostać zwrócony, dopóki operacja zapisu nie zostanie ukończona lub nie powiodła się.

Użycie synchronicznych danych wyjściowych jest proste, ale może potencjalnie wpłynąć na wydajność aplikacji, jeśli nie można stosunkowo szybko ukończyć danych wyjściowych. Deweloperzy obiektów usługi powinni wziąć to pod uwagę.

Dane wyjściowe asynchroniczne

Niektóre typy urządzeń POS obsługują dane wyjściowe asynchroniczne. W modelu danych wyjściowych asynchronicznych aplikacja wywołuje obiekt usługi, aby zażądać danych wyjściowych tego urządzenia. W przeciwieństwie do modelu synchronicznego obiekt usługi nie może jednak czekać na ukończenie operacji zapisu; zamiast tego powinna ona jak najszybciej zwrócić kontrolę do aplikacji. Gdy obiekt usługi odbiera żądanie z aplikacji, powinien wykonać następujące czynności:

  • Jeśli urządzenie fizyczne nie może odbierać danych, obiekt usługi powinien buforować je w pamięci, dopóki urządzenie nie będzie gotowe.
  • Ustaw właściwość OutputId na identyfikator tego żądania, który ma być używany podczas przyszłych zdarzeń wysyłanych do aplikacji.
  • Wróć tak szybko, jak to możliwe.

Obiekt usługi musi następnie poczekać na ukończenie żądania przez urządzenie. Zazwyczaj odbywa się to przy użyciu oddzielnego wątku zarządzanego przez obiekt usługi, który monitoruje sprzęt. Po pomyślnym zakończeniu żądania zdarzenie OutputCompleteEvent z parametrem OutputEventArgs.OutputId ustawionym na wcześniej określony identyfikator jest w kolejce do dostarczenia do aplikacji.

Kolejka zarządzana obiektu usługi

Biblioteka klas platformy .NET dla platformy .NET oferuje obsługę danych wyjściowych asynchronicznych, co jest wystarczające dla niemal wszystkich scenariuszy obiektów usługi.

Istnieją jednak pewne scenariusze, w których deweloperzy obiektów usługi mogą wymagać zaimplementowania własnej asynchronicznej obsługi danych wyjściowych. Podstawowym scenariuszem jest obsługa urządzeń obsługujących kolejki wydruku oparte na sprzęcie. W tym przypadku obiekt usługi ustawia wartość True przy użyciu metody UseExternalPrintQueue, zastępuje metodę PreQueuePrintData i implementuje własny mechanizm kolejki.

Gdy parametr UseExternalPrintQueue ma wartość true, klasa Podstawowa nie dodaje już żądań drukowania do wewnętrznej kolejki asynchronicznej, dlatego deweloperzy obiektów usługi mogą kolejkować dane w dowolny sposób. Jest to często wykonywane przy użyciu funkcji kolejkowania wydruku urządzenia. Klasa Podstawowa nadal prewaliduje te same żądania drukowania, ale nie wykonuje żadnego dodatkowego przetwarzania.

W takich przypadkach obiekt usługi będzie odpowiedzialny za następujące kwestie:

  • Implementowanie własnej logiki kolejkowania.
  • Wysyłanie statusUpdateEvents dla pomyślnych operacji.
  • Wysyłanie elementu ErrorEvents dla operacji asynchronicznych nie powiodło się i obsługa ponawiania próby.
  • Aktualizowanie właściwości stanu.
  • Wszystkie inne operacje asynchroniczne zdefiniowane w specyfikacji UnifiedPOS.

Zobacz też

Zadania

Inne zasoby