Я использовал библиотеку сканера штрих-кода здесь с успехом для считывания штрих-кода. Однако я пытаюсь включить сканирование RFID-меток в свое веб-приложение, и у меня возникли проблемы с настройкой кода для правильной работы - я думаю, что мне не хватает чего-то простого.
Как правило, при сканировании меток RFID сканер быстро передает много меток, каждая из которых заканчивается символом 13 (возврат). Если я просто сканирую одну метку RFID, она ведет себя, как и ожидалось, - но если я держу сканер RFID над партией меток, она очень быстро читает каждую и передает данные с возвращаемым символом (13) между каждой меткой.
Я пытаюсь выяснить, как собрать все это, прежде чем передавать массив этих тегов на сервер для обработки. Я создал новый массив и поместил команду .push () для каждого тега, и он правильно строит массив, когда помещается в onComplete (протестировано с журналом оповещений / консоли). Проблема в том, что он оповещает / регистрирует каждый раз, когда сканирование достигает возврата, поэтому, если имеется 10 RFID-меток, он предупреждает 10 раз.
Я пытаюсь заставить его сделать один вызов на сервер после того, как он обнаружит, что все теги были прочитаны. Я попытался удалить и поработать с настройками endChar, но безуспешно, и мне не удалось найти способ заставить его собрать несколько результатов в пакете, прежде чем действовать на них (отправляя их все на сервер сразу).
Кто-нибудь знает, как мне этого добиться? Буду вечно благодарен. Пример кода ниже, но он довольно шаблонный с добавлением текущего push-кода ScanBarcodes.
var currentScanBarcodes = new Array();
$(document).scannerDetection({
timeBeforeScanTest: 200, // wait for the next character for upto 200ms
startChar: [120], // Prefix character for the cabled scanner (OPL6845R)
//endChar: [13], // be sure the scan is complete if key 13 (enter) is detected
avgTimeByChar: 40, // it's not a barcode if a character takes longer than 40ms
onKeyDetect: function (event) { console.log(event.which); return false; },
onComplete: function (barcode, qty) {
currentScanBarcodes.push(barcode);
$.ajax({
url: '/URLtoProcessResults?code=' + barcode
})
.done(function (data) {
alert(currentScanBarcodes);
});
});
});