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 ();
}
}
}}