Сканер штрихкодов¶
Управление сканером штрихкодов осуществляется посредством 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>