Witam.
Mam taki problem.
Wykonuję w aplikacji Wpf wydruk na drukarce fiskalnej poprzez połączenie TCP. Pierwsze połączenie rozpoczyna wydruk. W tym samym czasie do drukarki podłącza się drugie połączenie. Efekt jest taki, że drugie połączenie rozłącza to pierwsze.
Korzystam z klienta TCP z którego wysyłam dane metodą Write a odczytuję z dane metodą ReadByte.
Moje pytanie brzmi:
Czy można jakoś ustawić klienta Tcp aby nie nawiązał połączenia z drukarką, jeżeli jest ona zajęta innym połączeniem (jakiś poziom izolacji czy coś takiego)?
Czy jest to problem wyłącznie drukarki, która nie obsługuje jednoczesnych połączeń?
to jest problem wyłącznie drukarki, która nie obsługuje wielu połączeń (być może można ustawić na drukarce aby po prostu odrzucała kolejne połączenia jeśli jest teraz w trakcie pracy - trzeba poczytać instrukcję).
Rozwiązaniem może być (w sumie najprostszym, najszybszym i chyba najlepszym) będzie napisanie własnego proxy między apką a drukarką, przez które przechodziły by wszystkie zlecenia wydruku i które by je kolejkowało.
abrakadaber napisał(a):
to jest problem wyłącznie drukarki, która nie obsługuje wielu połączeń (być może można ustawić na drukarce aby po prostu odrzucała kolejne połączenia jeśli jest teraz w trakcie pracy - trzeba poczytać instrukcję).
Rozwiązaniem może być (w sumie najprostszym, najszybszym i chyba najlepszym) będzie napisanie własnego proxy między apką a drukarką, przez które przechodziły by wszystkie zlecenia wydruku i które by je kolejkowało.
Dzięki.
Tak też powiedział mi producent drukarki. Trzeba samemu zadbać o kolejkowanie.
Ja bym szukał coś w rodzaju ReadState()
w instrukcji do drukarki.
Generalnie jest tak że: jedna kasa <=> jedna drukarka.
Więc jeżeli masz inaczej to przynajmniej zaznaczaj w aplikacji że ze stanowiska A poszedł druk, po zakończeniu druku ustawiasz że jest wolna.
Warto też dodać czas przewidywalnego zakończenia druku, aby po jego przekroczeniu jednak można było coś puscić.