Serielles Lesen und Schreiben in C #

Problembeschreibung: Die serielle Schnittstelle wird beim Ausführen des Projekts zum Lesen und Schreiben verwendet, und die Daten des Codescanners werden auf der Schnittstelle angezeigt. Obwohl es sehr einfach ist, nehme ich es für mich, der Gupi programmiert, auf, um das zukünftige Lernen zu erleichtern. . .

Öffentliche Klasse 

{

     public static SerialPort serialPort = null;

öffentlicher Delegat void showScanerTrayNumEventHandler ();
 öffentliches statisches Ereignis 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; // 单位 毫秒

            // Setze den Wert für den Empfangspuffer des Bytes für die serielle Schnittstelle, normalerweise 1
            // Nach dem Empfang die Ereignisverarbeitung auslösen
            serialPort.ReceivedBytesThreshold = 1;
            serialPort.DataReceived + = new SerialDataReceivedEventHandler (ShowScanerResult);

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

            }
            catch (Exception ex)
            {                 MessageBox.Show ("Fehler beim Öffnen der seriellen Schnittstelle" + ex.ToString ());                 System.Environment.Exit (0); // Beenden der Anwendung             }


        }}

 

 public void ShowScanerResult (Objektabsender, SerialDataReceivedEventArgs e)
        {             Thread.Sleep (50);             int len ​​= serialPort.BytesToRead;             Byte [] readBuffer = neues Byte [len];             serialPort.Read (readBuffer, 0, len); / / werden Daten in den Cache             eingelesen //Thread.Sleep(1000);             // Verarbeiten             Sie die Daten in readBuffer, passen Sie den Prozess globModelData.trayNum = System.Text.Encoding.Default.GetString (readBuffer);             Console.WriteLine (globModelData) an. trayNum);             if (showScanerTrayNum! = null)             {



           




           

           

// Ereignis
                auslösen showScanerTrayNum ();
            }
        }

 

 

}}

Ich denke du magst

Origin blog.csdn.net/wyyy2088511/article/details/108572369
Empfohlen
Rangfolge