Skip to content

[WS] Реалізація протоколу сканування #2

Description

@5HT

Для захоплення зображень від сканера пропонується 3-арний CSV протокол з наступним заголовком:

Функція-запит,TWAIN Пристрій,Ім'я профілю,Виклики функцій перед скануванням

Четверте поле Виклики функцій перед скануванням містить виклики розділені +, а самі виклики складаються з імені та (опціонально) параметрів, перед кожним з яких стоїть -. Наприклад:

SCAN,DS-530,maxim,AUTOSCAN+AUTOFEED
SCAN,DS-530,"",AUTOSCAN-1+COLOR-BW+DPI-300+PAGES-20

У випадку коли третє поле Ім'я профілю пусте, тоді просто цей профіль в агенті не застосовується перед скануванням.
Коли четверте поле пусте, тоді додаткові налаштування поверх профілю не застосовуються. Коли і третє і четверте поля пусті, це означає що ніякі налаштування CAPABILITIES не будуть застосовуватися перед скануванням:

SCAN,DS-530,,

Перелік доступних сканерів

LIST,,,

Виклики функцій перед скануванням в сутності — це формат профілю сканування. Його теж можна передавати по мережі за допомогою протоколу CAP з наступним заголовком:

Приклади:

SET,DS-530,maxim,AUTOSCAN-1+COLOR-BW+DPI-300+PAGES-20
GET,DS-530,maxim,""

При виклику функції GET приходить повідомлення PROFILE:

PROFILE,DS-530,maxim,AUTOSCAN-1+COLOR-BW+DPI-300+PAGES-20

Транспорт

У якості транспорту використовується протокол WebSocket, веб-сервер який його реалізує знаходиться у модулі ws.exe.

> ws = new WebSocket("ws://127.0.0.1:50220")
> ws.onmessage = function (evt) { 
    // сюди приходить відсканований файл
    console.log(evt.data);
  }
> ws.send('SCAN,DS-530,,AUTOSCAN+AUTOFEED')

Metadata

Metadata

Assignees

Labels

ВиробництвоСтадія виробництва: реалізація зауваження або функціональності та виправлення помилкиФункціональністьРадуватиме користувача, бажано реалізувати

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions