private void SerialPortDataRecevied(object sender, SerialDataReceivedEventArgs e) { try { SerialPort port = (SerialPort)sender; if (port.IsOpen) { int bytes = port.BytesToRead; if (bytes >= 12) // штрих код больше 12 символов { // Прочитаем все из СОМ-порта в буфер byte[] byteAnswer = new byte[bytes]; try { port.Read(byteAnswer, 0, bytes); } catch { } //var str = System.Text.Encoding.Default.GetString(byteAnswer); //string result = Regex.Replace(str, "[^0-9]+", ""); //if(result.Length < 12) //{ // // не все цифры получили, если сканер не будет работать - нужно организовать прием нескольких частей //} using (var ticket = LockTicket.Create(Locker, LockTypeEnum.Write)) { InputStream.SetLength(0); // Наполняем поток полученными данными InputStream.Write(byteAnswer, 0, bytes); // Обрабатываем полученные данные MachineDrivers.ScanerEvent.Set(); } } } } catch { } }
private void SerialPortDataRecevied(object sender, SerialDataReceivedEventArgs e) { try { SerialPort port = (SerialPort)sender; if (port.IsOpen) { int bytes = port.BytesToRead; if (bytes >= 12) // штрих код больше 12 символов { // Прочитаем все из СОМ-порта в буфер byte[] byteAnswer = new byte[bytes]; try { port.Read(byteAnswer, 0, bytes); } catch { } using (var ticket = LockTicket.Create(Locker, LockTypeEnum.Write)) { InputStream.SetLength(0); // Наполняем поток полученными данными InputStream.Write(byteAnswer, 0, bytes); // Обрабатываем полученные данные MachineDrivers.ScanerEvent.Set(); } } } } catch { } }