Udostępnij przez


Implementacja CashDrawer (POS dla zestawu SDK platformy .NET w wersji 1.14)

Większość aplikacji do punktów sprzedaży będzie używać szuflady gotówki do transakcji finansowych. Deweloperzy obiektów usług mogą używać klasy CashDrawerBasePunkt usługi Microsoft Point of Service dla platformy .NET (POS for .NET), w celu łatwego zaimplementowania zgodnego obiektu usługi CashDrawer z ujednoliconym punktem usługi (UnifiedPOS).

Możliwości

Wszystkie obiekty usługi CashDrawer muszą obsługiwać co najmniej możliwość otwierania szuflady. Jest to realizowane przez zaimplementowanie metody abstrakcyjnej CashDrawerBase.OpenDrawerImpl w klasie Service Object.

Obiekt usługi może być również w stanie określić, czy szuflada gotówkowa jest otwarta, czy nie. Jeśli obiekt usługi ma tę możliwość, powinien ustawić właściwość CapStatus na true. Jeśli wartość CapStatus ma wartość true, aplikacje mogą sprawdzać stan urządzenia przy użyciu właściwości DrawerOpened . Jeśli wartość CapStatus nie jest ustawiona, opcja DrawerOpened będzie zawsze ustawiona na wartość false , a każda próba ustawienia wartości true spowoduje wygenerowanie wyjątku.

Jeśli właściwość CapStatus została ustawiona na true, obiekt usługi musi zaktualizować właściwość DrawerOpened . Należy to zrobić w implementacji obiektu usługi metody OpenDrawerImpl . Wątek w tle monitorujący stan urządzenia może również ustawić właściwość DrawerOpened .

CashDrawer Events

Jeśli obiekt usługi ustawił właściwość CapStatus na true, CashDrawerBasic.DrawerOpened wysyła stanUpdateEvent do aplikacji.

W zależności od urządzenia szuflady gotówkowej i implementacji obiektu usługi obiekt usługi może potrzebować oddzielnego wątku do monitorowania stanu sprzętu i zgłaszania wszelkich zmian asynchronicznie. Byłoby to konieczne, na przykład jeśli szuflada gotówkowa może zostać otwarta ręcznie przez operatora, a aplikacja musi zostać powiadomiona.

Obiekt usługi CashDrawer może również wysłać do aplikacji element DirectIOEvent. Funkcja DirectIOEvent służy do wysyłania danych do aplikacji specyficznej dla implementacji obiektu usługi i dlatego może być niezgodna z niektórymi aplikacjami. Aby uzyskać więcej informacji, zobacz Dane wejściowe i zdarzenia urządzenia.

Udostępnianie urządzenia

Szuflada gotówkowa jest urządzeniem do udostępniania. Wiele aplikacji będzie mogło otwierać, włączać i uzyskiwać dostęp do wszystkich jej właściwości i metod. Jednak gdy aplikacja zażądała urządzenia, tylko ta aplikacja może wywołać CashDrawerBase.OpenDrawer lub CashDrawerBase.WaitForDrawerClose. Wyjątek PosException z błędem ErrorCode.Claimed zostanie zgłoszony, jeśli inne aplikacje spróbują wywołać te metody.

Jeśli co najmniej jedna aplikacja została otwarta i włączona na urządzeniu, każda aplikacja otrzyma wszystkie zdarzenia wysyłane przez obiekt usługi.

Kod niezbędny do obsługi tej funkcji jest implementowany w poS dla klasy .NET CashDrawerBase .

Wiele szuflad gotówkowych

Można mieć więcej niż jedną szufladę gotówki podłączoną do komputera i używając tego samego portu sprzętowego. W takich sytuacjach obiekt usługi CashDrawer może wiedzieć, do której szuflady gotówki nie jest specjalnie podłączony. Jeśli obiekt usługi może odróżnić urządzenie szuflady gotówkowej, które jest podłączone, powinien ustawić właściwość CapStatusMultiDrawerDetect na true. Wartość tej właściwości będzie mieć wpływ na zachowanie właściwości DrawerOpened i metody WaitForDrawerClose .

Jeśli wartość CapStatusMultiDrawerDetect jest ustawiona na fałsz, oznacza to, że co najmniej jedna szuflada jest otwarta. Aplikacja nie może określić, czy w szczególności jest otwarta szuflada.

Jeśli właściwość CapStatusMultiDrawerDetect ma wartość false, metoda WaitForDrawerClose czeka na zamknięcie wszystkich otwartych szuflad gotówkowych przed powrotem do aplikacji.

Zobacz też