Ho il seguente codice che richiede che i dati vengano letti dalla porta e quindi visualizzati in una casella di testo. Sto usando il gestore di eventi DataReceived per questo scopo ma non so come visualizzare questi dati nella casella di testo. Da varie fonti ho imparato che il metodo Invoke dovrebbe essere usato per questo, ma non so come usarlo. Suggerimenti per Favore ...Come visualizzare i dati letti nel gestore di eventi DataReceived di serialport
private void Form1_Load(object sender, EventArgs e)
{
//SerialPort mySerialPort = new SerialPort("COM3");
mySerialPort.PortName = "COM3";
mySerialPort.BaudRate = 9600;
mySerialPort.Parity = Parity.None;
mySerialPort.StopBits = StopBits.One;
mySerialPort.DataBits = 8;
mySerialPort.Handshake = Handshake.None;
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(mySerialPort_DataReceived);
mySerialPort.Open();
}
private void mySerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string s= sp.ReadExisting();
// next i want to display the data in s in a textbox. textbox1.text=s gives a cross thread exception
}
private void button1_Click(object sender, EventArgs e)
{
mySerialPort.WriteLine("AT+CMGL=\"ALL\"");
}
Ho provato il codice di esempio e ho creato una semplice soluzione C# basata su questo thread. non riuscivo a leggere 'DataReceived' nel mio modem. Sto usando il modem wavecom per controllare il saldo. Aiutami per favore per risolvere il problema? – aminvincent