Сканер штрихкодов

Управление сканером штрихкодов осуществляется посредством ActiveX-компонента BarcodeReader. ActiveX имеет возможность организовывать чтение нескольких штрихкодов в одном цикле.

Идентификаторы подключения

  • ProgID: shqBarcoder.AxShqBarcoderManager;

  • CLSID: 27813B23-D05A-4AD0-BCB1-F9C0101D1243.

Методы

GetStatus()

Метод возвращает состояние устройства.

Возможные состояния:

  • «0» – сканер работает штатно;

  • «1» – сканер выполняет операцию считывания штрихкода;

  • «2» – ошибка сканера штрихкодов.

Причины ошибки в работе сканера штрихкодов:

  • сканер отсутствует, не подключен или неправильно сконфигурирован;

  • не доступен XFS-драйвер сканера;

  • аппаратной ошибка сканера.

Примечание

Если используется сканер штрихкодов Zebex A50M, то вызов Connect будет завершен успешно в случае ошибочного COM-порта. Это связано с особенностями конкретной модели устройства.

StartScan(ULONG ulTimeout, ULONG ulExpectedCount)

Метод запускает процесс чтения штрихкодов.

Параметры:

  • ULONG ulTimeout – максимальное время ожидания;

  • ULONG ulExpectedCount – размер пачки штрихкодов (максимальное количество считываемых кодов).

StopScan()

Метод останавливает ранее запущенный процесс считывания штрихкодов.

GetBarcodesCount()

Количество штрихкодов. Метод возвращает общее количество считанных штрихкодов в текущей сессии.

GetBarcode(ULONG ulNum)

Возвращает считанный штрихкод по его номеру.

GetBarcodeAsciiHex(ULONG ulNum)

Возвращает штрихкод. Формат представления – ASCII HEX. Метод возвращает штрихкод под номером ulNum, полученный в рамках последней успешно завершенной операции StartScan.

GetBarcodeSymbology(ULONG ulNum)

Идентификатор формата штрихкода. Метод возвращает идентификатор формата штрихкода под номером ulNum, полученного в рамках последней успешно завершенной операции StartScan.

Уведомления

ElseOneRecognized(ULONG ulCntRemains, BSTR strBarCode)

Уведомление о считывании еще одного штрихкода из пачки.

Параметры:

  • ULONG ulCntRemains – количество ожидаемых документов содержащих штрихкод;

  • BSTR strBarCode – значение считанного штрихкода.

ReadOperationComplete(long hResult)

Завершение процесса считывания пачки штрихкодов. Возвращаемое значение равно нулю, если в процессе считывания не возникло никаких ошибок. В остальных случаях значения ошибок соответствуют кодам ошибок, принятых в CEN/XFS.

Часто встречающиеся коды ошибок:

  • «0» – успешное прочтение;

  • «4» – считывание остановлено (по команде StopScan() или при уничтожении объекта);

  • «48» – истек таймаут на считывание штрихкодов;

  • «14» – возникла аппаратная ошибка устройства;

  • «13» – устройство не готово к работе.

Пример кода

<OBJECT ID="Barcode" CLASSID="CLSID:27813B23-D05A-4AD0-BCB1-F9C0101D1243" height="0" width="0">
</OBJECT>

<script language='javascript' for='window' event='OnLoad()'>
                Barcode.StartScan( 90000, 2);
</script>
<script language='javascript' for='Barcode' event='ReadOperationComplete(hResult)'>
        If(0 != hResult) {
                        // TODO: отработать ошибку прочтения
} else {
                var ulCount = Barcode.GetBarcodesCount();
                for(var i = 0; i < ulCount; i++) {
                               alert(Barcode.GetBarcode(i));
                }
}
</script>