Drukarka fiskalna – dll czy ocx?

0

Cześć,

mam pytanie do Was. Przyszło mi zmierzyć się z obsługą drukarki fiskalnej w moim programie.
Przyznam że już to robiłem ładnych kilka lat temu ale użyłem wtedy kontrolki ActiveX firmy Novitus. Fakt że wtedy pisany program obsługuje drukarki Posnet (do dzisiaj) nie był problemem bo kilka lat temu protokół Thermal był standardem w Polsce i każdy szanujący się producent oprogramowania i sprzętu implementował ten protokół. Inny powód to dokumentacja Novitus-a - była dla języka Delphi. Normalnie bajka.

Jednak świat poszedł trochę do przodu, producenci drukarek poza starym protokołem Thermal dołączają swój autorski o dużo większych możliwościach. No i pomyślałem że chętnie użyłbym tego nowego protokołu. Jako ze myślę o urządzeniach firmy Posnet to chciałbym obsłużyć komunikację właśnie tym protokołem.

No i teraz pytanie: poprzez dll czy może kontrolkę ActiveX - plusy i minusy?
Na początek moje:

  • ostatnia biblioteka jest z 30 marca 2016, ostatnia kontrolka z 4 września 2013. W tym zestawieniu wygrywa dll-ka. Ale czy na pewno?

A Wasze zdanie?

1

Jeśli nie masz konkretnych powodów, żeby brać OCX to bym raczej brał wersję DLL.

1

A w czym to będziesz używał — w jakim języku i środowisku? Jak kojarzę to ocx były właśnie pod środowisko typ delphi i borland C++. Ja bym brał DLLa i raczej nie szedł bym w autorski protokół dostawcy, jak jest możliwość zaimplementowania ogólnie dostępnego standardu.

0

@cerrato: żadnych konkretnych powodów nie mam.
@Tomek Pycia: jak otagowałem - Delphi, a konkretnie 10.3.

Dlaczego myślałem o ocx, to przez kontrolkę Novitusa, jak to już napisałem. Miała zaimplementowane większość procedur i funkcji i obsługa była wręcz bajeczna. Dla przykładu:

  • anulowanie paragonu: Kontrolka.AbortReceipt;
  • otwarcie szuflady: Kontrolka.OpenDrawer(0);

i tak dalej. Bajka po prostu. W przypadku Posneta widzę że dll-ka czy też ocx jest raczej zbudowany do komunikacji a ramki w zasadzie tworzy się z ręki chyba że jeszcze czegoś nie wiem. I fajnie bo wdrożenie nowych funkcji to zmiana ramki a nie wersji biblioteki i nie fajnie bo wydaje mi się że jednak dużo więcej pracy będzie mnie to kosztować a spieszy mi się strasznie.

0

Jak ci się spieszy, to wybierz to rozwiązanie, które będzie najprostsze i najszybsze. Jak nie robiłeś tego na DLLu, to nie ma sensu ryzykować. Może się okazać, że nic ci to nie da, a ryzyko jest spore.

0

nie chciałem używać kontrolki novitusa bo potrzebuję superformatki. Okazało się jednak że takie coś jest w tej kontrolce tylko inaczej się nazywa. Tak więc sprawę uważam za rozwiązaną. Dzięki za dyskusje.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.