Lectura y escritura en serie en C #

Descripción del problema: El puerto serie se usa para leer y escribir cuando se realiza el proyecto, y los datos del escáner de código se muestran en la interfaz. Aunque es muy simple, para mí que estoy programando Gupi, todavía lo grabo para facilitar el aprendizaje futuro. . .

clase pública 

{

     SerialPort estático público serialPort = null;

delegado público void showScanerTrayNumEventHandler ();
 evento estático público showScanerTrayNumEventHandler showScanerTrayNum;

     

 public void StartScanerWork ()
        {             serialPort = new SerialPort ();

            serialPort.PortName = globModelData.configmodelData.ScanerPortParam.PortName;
            serialPort.BaudRate = Convert.ToInt32 (globModelData.configmodelData.ScanerPortParam.BaudRate);
            serialPort.Parity = Parity.None;
            serialPort.DataBits = Convert.ToInt32 (globModelData.configmodelData.ScanerPortParam.DataBits);
            serialPort.StopBits = StopBits.One;
            serialPort.ReadTimeout = 3000; // 单位 毫秒
            serialPort.WriteTimeout = 3000; // 单位 毫秒

            // Establecer el valor del búfer de recepción del byte del puerto serie, generalmente 1
            // Después de recibir, desencadenar el procesamiento de eventos
            serialPort.ReceivedBytesThreshold = 1;
            serialPort.DataReceived + = new SerialDataReceivedEventHandler (ShowScanerResult);

            intente
            {                 serialPort.Open ();                 //Console.WriteLine (serialPort.IsOpen.ToString ());

            }
            catch (Exception ex)
            {                 MessageBox.Show ("No se pudo abrir el puerto serie" + ex.ToString ());                 System.Environment.Salir (0); // Salir de la aplicación             }


        }

 

 public void ShowScanerResult (Object sender, SerialDataReceivedEventArgs e)
        {             Thread.Sleep (50);             int len ​​= serialPort.BytesToRead;             Byte [] readBuffer = new Byte [len];             serialPort.Read (readBuffer, 0, len); / / will Data leer en la caché             //Thread.Sleep(1000);             // Procesar los datos en readBuffer, personalizar el proceso             globModelData.trayNum = System.Text.Encoding.Default.GetString (readBuffer);             Console.WriteLine (globModelData. trayNum);             if (showScanerTrayNum! = null)             {



           




           

           

// Activar evento
                showScanerTrayNum ();
            }
        }

 

 

}

Supongo que te gusta

Origin blog.csdn.net/wyyy2088511/article/details/108572369
Recomendado
Clasificación