예제 #1
0
파일: Zebex.cs 프로젝트: dimoniche/Service
        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
            {
            }
        }
예제 #2
0
        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
            {
            }
        }