Obsługa sprawdzarek

Z Pomoc Netis

Informacje ogólne daemona sprawdzarek

Sprawdzarkami w systemie HiperMarket zarządza daemon o nazwie priced, działa on w tle i jest uruchamiany automatycznie wraz ze startem systemu operacyjnego.

Opcje uruchomienia daemona

Domyślnie priced skonfigurowany jest do współpracy ze sprawdzarką Elzab po domyślnym porcie, aby zmienić działanie daemona potrzebne jest odpalenie go z innym typem sprawdzarek.

Możliwe typy to:

-tTYP  ,typ price checkera dostepne:

mk1000 , tkc501 (port 6500), ELZAB (port 1001), SCANTECH (9000), NCR7802(port 1283), NOVITUS_TCP (9101) NOVITUS_UDP (9000)

Istnieje także możliwość odpalenia daemona z innym portem niż domyślny, należy wtedy dodać kolejną opcję:

-pPORT ,PORT_DEFAULT 0


Konfiguracja

Konfiguracja sprawdzarki odbywa się z poziomu panelu webowego sprawdzarki lub skanując kody sterujące. Aby sprawdzarka poprawnie odczytywała towary z HiperMarketu, konieczne jest skonfigurowanie sprawdzarki, aby działała w tej samej sieci LAN co serwer. W tym celu logujemy się do panelu webowego sprawdzarki i przechodzimy do sekcji konfiguracji sieci na sprawdzarce.

  • wyłączamy DHCP
  • ustawiamy adres IP sprawdzarki
  • maskę
  • bramę
  • adres IP serwera sprawdzarek (adres ten ustawiamy taki sam jak adres serwera sklepowego)
  • Konfiguracja podsieci w pliku konfiguracji systemu HiperMarket.

Przechodzimy do katalogu głównego sklepu na serwerze i otwieramy plik pricechecker.dat, który znajduje się w folderze konfiguracja. Odszukujemy poniższy wpis i poprawiamy go na adres sieci, w której sprawdzarka została skonfigurowana.

adres_podsieci=192.168.1.0


Po zmodyfikowaniu pliku wymagany jest restart procesu sprawdzarki!

Uruchomienie daemona dla innej sprawdzarki niż Elzab

Dla nowych systemów z systemd wymagane jest zmodyfikowanie skryptu startującego:

/lib/systemd/system/priced.service


Modyfikujemy go edytorem tekstu zmieniając typ sprawdzarki w:

ExecStart

zmieniając

-tELZAB 
-tNOVITUS_TCP


Odświeżamy systemd informując go o zmianach oraz dokonujemy restartu daemona priced:

systemctl daemon-reload ; systemctl restart priced.service


Dla starszych systemów opcję uruchomienia zmieniamy w pliku /etc/rc.local.

Zarządzenie daemonem sprawdzarek

Nowe systemy (Ubuntu 16.04 w górę)

W nowych systemach operacyjnych gdzie zarządcą jest systemd zarządzamy daemonem w następujący sposób:

  • start
systemctl start priced.service
  • stop
systemctl stop priced.service
  • restart
systemctl restart priced.service
  • sprawdzenie statusu
systemctl status priced.service


  • Przykład poprawnie działającego daemona:
systemctl status priced.service
● priced.service - Priced daemon sprawdzarek
   Loaded: loaded (/lib/systemd/system/priced.service; enabled; vendor preset: enabled)
   Active: active (running) since pią 2019-08-16 10:14:20 CEST; 3h 8min ago
 Main PID: 1656 (priced)
   CGroup: /system.slice/priced.service
           ├─1656 /***/bin/priced -tELZAB
           └─1850 /***/bin/priced -odpalony -tELZAB

sie 16 10:14:20 sklep01 systemd[1]: Started Priced daemon sprawdzarek.


  • Przykład gdzie daemon nie działa, proces został zabity:
systemctl status priced.service
● priced.service - Priced daemon sprawdzarek
   Loaded: loaded (/lib/systemd/system/priced.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since pią 2019-08-16 13:31:29 CEST; 26s ago
  Process: 25353 ExecStop=/usr/bin/killall -9 priced (code=exited, status=1/FAILURE)
 Main PID: 1656 (code=killed, signal=KILL)

sie 16 10:14:20 sklep01 systemd[1]: Started Priced daemon sprawdzarek.
sie 16 13:31:29 sklep01 systemd[1]: priced.service: Main process exited, code=killed, status=9/KILL
sie 16 13:31:29 sklep01 killall[25353]: priced: nie znaleziono żadnego procesu
sie 16 13:31:29 sklep01 systemd[1]: priced.service: Control process exited, code=exited status=1
sie 16 13:31:29 sklep01 systemd[1]: priced.service: Unit entered failed state.
sie 16 13:31:29 sklep01 systemd[1]: priced.service: Failed with result 'exit-code'.


Stare systemy (Ubuntu 14.04 w dół, Debian, Slackware)

W starszych systemach daemon sprawdzarek jest odpalany przez skrypt startowy /etc/rc.local

#sprawdzarka cen Elzab
cd /***/sklep/
./bin/odpalaj './bin/priced -tELZAB' 1>/dev/null 2>/dev/null &


  • sprawdzenie czy proces działa
ps -ef | grep priced
root      3414     1  0 Jul26 ?        00:00:00 ./bin/odpalaj ./bin/priced -tELZAB
root      3426  3414  0 Jul26 ?        00:00:00 ./bin/priced -tELZAB
root      3557  3426  0 Jul26 ?        00:00:01 ./bin/priced -odpalony -tELZAB


  • zabicie daemona jeżeli nie odpowiada na restarty
killall -9 priced


Następnie sprawdzamy czy proces wystartował automatycznie, jeżeli nie to startujemy daemona poprzez systemctl lub ręcznie uruchamiając polecenie z pliku rc.local (tylko starsze systemy).

Logi

Logi znajdują się w głównym katalogu sklepu na serwerze w folderze logi:

tail -f logi/price.log2019_08 
Thu Aug 29 13:21:05 2019 conn_deamon_loop_udp, "Startuję na porcie 1001"
Thu Aug 29 13:21:09 2019 PCSH_Elzab, "Szukam kodu 6950513260139, ip 192.168.1.111"
Thu Aug 29 13:21:09 2019 PCSH_Elzab, "Towar 'NOTES SAMOPRZYLEPNY NO-0139', cena=4.99"
Thu Aug 29 13:21:14 2019 PCSH_Elzab, "Szukam kodu 6924561103021, ip 192.168.1.111"
Thu Aug 29 13:21:14 2019 PCSH_Elzab, "Towar 'NOTES SAMOPRZYLEPNY FLUO NO-3021', cena=4.99"
Thu Aug 29 13:26:16 2019 PCSH_Elzab, "Szukam kodu 5900877000248, ip 192.168.1.111"
Thu Aug 29 13:26:16 2019 PCSH_Elzab, "Towar 'PIWO ŻUBR 0,5L BUT', cena=1.88"
Thu Aug 29 13:37:36 2019 PCSH_Elzab, "Szukam kodu 5900834000052, ip 192.168.1.111"
Thu Aug 29 13:37:36 2019 PCSH_Elzab, "Towar 'LODY GULLIVER CLASSIC 120 ML', cena=3.99"
Thu Aug 29 13:38:12 2019 PCSH_Elzab, "Szukam kodu 5907377110736, ip 192.168.1.111"
Thu Aug 29 13:38:12 2019 PCSH_Elzab, "Towar 'LODY GULLIVER MINT 120ML', cena=3.99"


Jak widzimy wyżej sprawdzarka o adresie 192.168.1.111 działa oraz czyta towary.