У меня здесь есть BarcodeScanner, который говорит, что мне нужно сделать фотографию. Я посылаю команду в виде байта на сканер, жду ответа, а затем пытаюсь его прочитать.
Если я просто использую последовательный монитор и вручную отправляю байты, все работает нормально, я получаю весь jpeg и я счастлив.
если я попробую это в C#, я попытаюсь прочитать байты простым методом (это был метод хлеба с маслом, который я нашел в Google. Normal, который я использовал (serialport.ReadExisting () который вылетает так же).
вот целое событие:
public void serial_datareceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
usescanner = (SerialPort)sender;
if (sender is SerialPort)
{
string port = ((SerialPort)sender).PortName;
int count = ((SerialPort)sender).BytesToRead;
int returnAscii = 0;
string message = "";
while (count > 0)
{
returnAscii = ((SerialPort)sender).ReadByte();
message = message + Convert.ToChar(returnAscii);
count--;
}
ScanPort sport = new ScanPort(port, true);
scanner.ScannerPort = sport;
}
((SerialPort)sender).Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
i Всегда получите 4096 байт для чтения назад, и затем я могу прочитать до примерно 70-90 байт, так что да, моя строка сообщений такая длинная, так что она работает! Просто в середине происходит сбой.
Сканер не является проблемой, так как я работаю со сканером в течение длительного времени. я могу отправлять данные туда и обратно. Также я проверил их на демопрограмме, которую производитель вручил мне, чтобы она работала.
есть идеи? Может быть, я просто не знаю, как читать байты.
спасибо за помощь