# Инструкция по подготовке к работе сканеров разных производителей

## Содержание

1. [Общее](#общее)
2. [Linux](#linux)
    - [Futronic](#futronic)
    - [ZKTeco](#zkteco)
    - [Papilon](#papilon)
    - [Anviz](#anviz)
3. [Windows](#windows)
    - [Futronic](#futronic-win)
    - [ZKTeco](#zkteco-win)
    - [Papilon](#papilon-win)
    - [Anviz](#anviz-win)

## Общее

Все упомянутые ниже установочные пакеты и инсталляторы можно найти в архиве - [тут](https://owncloud.aktiv-company.ru/owncloud/s/I7XJAOI2uBt17y1).

Критерием корректной установки адаптера является его отображение в списке загруженных адаптеров (`fssm-demo` -> 7: Get loaded adapter list).

## Linux

### Futronic

Рядом с `libfssm.so` должна находится папка `adapters` в которой должен лежать адаптер `libfutronic.so`. Интерфейсная библиотека сканеров Futronic `libScanAPI.so` должна находиться во вложенной папке 'adapters/drivers/futronic'. Все входит в комплект поставки.

```text
├───libfssm.so
└───adapters
    ├───libfutronic.so
    └───drivers
        └───futronic
            └───libScanAPI.so
```

В системе должна быть установлена библиотека `libusb-compat`. В зависимости от вашей системы, пакет для установки может называться по-разному (libusb-0.1-4 на Ubuntu, Astra; libusb-compat на Arch Linux, CentOS; libusb-compat-0.1 на Fedora)

Для работы сканеров Futronic запускать FSSM необходимо от **sudo**.

Чтобы избавиться от этой необходимости надо:

1. Создать файл правил доступа к устройствам
`sudo nano /etc/udev/rules.d/99-futronic.rules`
2. Дать полные права(r/w) всем пользователям на устройства Futronic (id 1491)
`SUBSYSTEM=="usb", ATTRS{idVendor}=="1491", MODE="0666"`
3. Обновить правила: перезапуск, переподключение устройства, или выполнить команду
`sudo udevadm control --reload-rules`

### ZKTeco

Рядом с `libfssm.so` должна находится папка `adapters` в которой должен лежать адаптер `libzkteco.so`.

```text
├───libfssm.so
└───adapters
    └───libzkteco.so
```

Интерфейсную библиотеку сканеров ZKTeco `libzkfp.so` и вспомогательные библиотеки необходимо положить в папку `usr/local/lib`.

Для x86:

```text
└───usr
    └───local
        └───lib
            ├───libzkfp.so
            ├───libcrypto.so.0.9.8
            ├───libidkit.so.3
            ├───libiomp5.so
            ├───libnuma.so.1
            ├───libsilkidcap.so
            ├───libsqlite3.so
            ├───libusb-0.1.so.4
            ├───libusb-1.0.so.0
            └───libzkfinger10.so
```

Для x86_64:

```text
└───usr
    └───local
        └───lib
            ├───libzkfp.so
            ├───libcrypto.so.0.9.8
            ├───libidkit.so.2
            ├───libiomp5.so
            ├───libsilkidcap.so
            ├───libsqlite3.so.0
            ├───libusb-0.1.so.4
            └───libzkfinger10.so
```

Всё вышеперечисленное входит в комплект поставки.

Для работы сканеров ZKTeco запускать FSSM необходимо от **sudo**.

Чтобы избавиться от этой необходимости надо:

1. Создать файл правил доступа к устройствам
`sudo nano /etc/udev/rules.d/99-zkteco.rules`
2. Дать полные права(r/w) всем пользователям на устройства ZKteco (id 1b55)
`SUBSYSTEM=="usb", ATTRS{idVendor}=="1b55", MODE="0666"`
3. Обновить правила: перезапуск компьютера, переподключение устройства, или выполнить команду
`sudo udevadm control --reload-rules`

Примечания:

- На Linux поддерживаются только сканеры модели SLK20R, работа сканера ZK9500 под Linux не поддерживается производителем.

### Papilon

Рядом с `libfssm.so` должна находится папка `adapters` в которой должен лежать адаптер `libpapilon.so`. Интерфейсная библиотека сканеров Papilon `liblsclient.so.8.0.6-01`, вспомогательная библиотека `libplcd.so.8.0.6-01` и их симлинки должны находиться во вложенной папке 'adapters/drivers/papilon'. Все входит в комплект поставки.

```text
├───libfssm.so
└───adapters
    ├───libpapilon.so
    └───drivers
        └───papilon
            ├───liblsclient.so.8.0.6-01
            └───libplcd.so.8.0.6-01
```

Для работы сканеров Papilon также необходимо (пример для deb-системы):

1. Установить пакет `dkms_2.3-3_all.deb`
2. Установить пакет `ds21n-usb-dkms_8.0.4.3_all.deb`
3. Сделать симлинк
`sudo ln -sf /usr/lib/x86_64-linux-gnu/libpng16.so.16 /usr/lib/x86_64-linux-gnu/libpng15.so.15`
4. Перезапустить компьютер

Дальнейшая работа со сканерами возможно только если запускать FSSM от **sudo**.

Чтобы избавиться от этой необходимости надо:

1. Создать файл правил доступа к устройствам
`sudo nano /etc/udev/rules.d/99-papilon.rules`
2. Дать полные права(r/w) всем пользователям на устройства Papilon (id 23de)
`SUBSYSTEM=="usb", ATTRS{idVendor}=="23de", MODE="0666"`
3. Обновить правила: перезапуск компьютера, переподключение устройства, или выполнить команду
`sudo udevadm control --reload-rules`

### Anviz

Сканеры Anviz не поддерживаются на Linux.

## Windows

### Futronic (win)

Рядом с `fssm.dll` должна находится папка `adapters` в которой должен лежать адаптер `futronic.dll`. Интерфейсная библиотека сканеров Futronic `ftrScanAPI.dll` должна находиться во вложенной папке 'adapters/drivers/futronic'. Все входит в комплект поставки.

```text
├───fssm.dll
└───adapters
    ├───futronic.dll
    └───drivers
        └───futronic
            └───ftrScanAPI.dll
```

Также необходимо установить драйвер сканеров Futronic - `ftrDriverSetup_win8_whql_3471.exe` (из скачанного архива).

Примечания:

- Модель FS26 совместима только с 32-битными приложениями.

### ZKTeco (win)

Рядом с `fssm.dll` должна находится папка `adapters` в которой должен лежать адаптер `zkteco.dll`. Все входит в комплект поставки.

```text
├───fssm.dll
└───adapters
    └───zkteco.dll
```

Также необходимо установить драйвер сканеров ZKTeco - `setup.exe` (из скачанного архива).  

### Papilon (win)

Рядом с `fssm.dll` должна находится папка `adapters` в которой должен лежать адаптер `papilon.dll`. Интерфейсная библиотека сканеров Papilon `lsclient.dll` и вспомогательные библиотеки должны находиться во вложенной папке 'adapters/drivers/papilon'. Все входит в комплект поставки.

Для x86:

```text
├───fssm.dll
└───adapters
    ├───papilon.dll
    └───drivers
        └───papilon
            ├───lsclient.dll
            ├───1394API.dll
            ├───ds14.dll
            ├───ds16.dll
            ├───ds21n.dll
            ├───ds22.dll
            ├───ds22n.dll
            ├───ds24.dll
            ├───ds30.dll
            ├───ds30n.dll
            ├───ds30ni.dll
            ├───ds30nm.dll
            ├───ds40.dll
            ├───ds45.dll
            ├───fx3.dll
            ├───fx3scan.dll
            ├───libiconv2.dll
            ├───libintl3.dll
            └───plcd.dll
```

Для x86_64:

```text
├───fssm.dll
└───adapters
    ├───papilon.dll
    └───drivers
        └───papilon
            ├───lsclient.dll
            ├───ds14.dll
            ├───ds16.dll
            ├───ds21n.dll
            ├───ds22.dll
            ├───ds22n.dll
            ├───ds30.dll
            ├───ds30n.dll
            ├───ds30ni.dll
            ├───ds30nm.dll
            ├───ds40.dll
            ├───ds45.dll
            ├───lcd.dll
            ├───libiconv-2.dll
            ├───libintl.dll
            └───plcd.dll
```

Также для работы сканеров Papilon нужно открыть **Диспетчер устройств**, найти свое устройство в **Устройства USB** и обновить драйвер, выбрав **Найти драйверы на этом компьютере** и указать путь до директории `/papilon/win/Vista_x64/` (из скачанного архива).

### Anviz (win)

Рядом с `fssm.dll` должна находится папка `adapters` в которой должен лежать адаптер `anviz.dll`. Интерфейсная библиотека сканеров Anviz `AvzScanner.dll` должна находиться во вложенной папке 'adapters/drivers/anviz'. Все входит в комплект поставки.

```text
├───fssm.dll
└───adapters
    ├───anviz.dll
    └───drivers
        └───anviz
            └───AvzScanner.dll
```

Примечания:

- Сканеры Anviz совместимы только с 32-битными приложениями.
