Модель сканера: Datalogic PM9500DK ОС: Linux
Когда я устанавливаю свой сканер в режим USB-COM-STD, создается файл /dev/serial/by-id/usb-Datalogic_ADC__Inc._Handheld_Barcode_Scanner_S_N_E18C59366-if00. С помощью следующей C ++ - программы, которую я читаю из этого файла:
#include <iostream> // cout
#include <fstream> // ifstream
#include <string>
using namespace std;
int main () {
while (1) {
ifstream bufferLink("/dev/serial/by-id/usb-Datalogic_ADC__Inc._Handheld_Barcode_Scanner_S_N_E18C59366-if00");
string line;
while (!bufferLink.eof()) {
cout << "Waiting for input" << endl;
getline(bufferLink, line);
cout << "+++++++++ Line: " << line << endl;
}
cout << "bufferLink.eof(): " << bufferLink.eof() << endl;
cout << "Lost the connection, reconnecting is neccessary" << endl;
}
return 0;
}
Затем я сканирую QR-код, содержащий строку: Andre Mantei ist der Beste. Выходные данные выглядят так (иногда):
Waiting for input
+++++++++ Line: Andre Mantei ist der Beste.
Waiting for input
+++++++++ Line:
Waiting for input
+++++++++ Line:
Waiting for input
+++++++++ Line: !"#$%&'()*+,-./0123456789:;<=>?@
Waiting for input
+++++++++ Line:
Waiting for input
+++++++++ Line: ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
Waiting for input
+++++++++ Line:
Waiting for input
+++++++++ Line: abcdefghijklmnopqrstuvwxyz{|}
Waiting for input
+++++++++ Line:
Waiting for input
+++++++++ Line:
bufferLink.eof(): 1
Lost the connection, reconnecting is neccessary
Waiting for input
+++++++++ Line:
bufferLink.eof(): 1
Lost the connection, reconnecting is neccessary
Waiting for input
+++++++++ Line:
bufferLink.eof(): 1
Lost the connection, reconnecting is neccessary
Waiting for input
+++++++++ Line:
Waiting for input
+++++++++ Line:
Waiting for input
+++++++++ Line: !"#$%&'()*+,-./0123456789:;<=>?@
Waiting for input
+++++++++ Line:
Waiting for input
+++++++++ Line: ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
Waiting for input
+++++++++ Line:
Waiting for input
+++++++++ Line: abcdefghijklmnopqrstuvwxyz{|}
Waiting for input
+++++++++ Line:
Waiting for input
Как вы можете видеть, существует много переподключений. Кроме того, есть такие выходные данные, как! "# $% & '() * +, -. / 0123456789:; <=>? @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [] ^ _` abcdefghijklmnopqrstuvwxyz {|}
Есть у кого идея, почемуэто так? И что более важно, как решить эту проблему.