Q: how to get the date from the port / buffer or enter data from the connected device. And make sure you have all the data.
A: .net, , . , . ! .
using System.Port.IO;
using System.Port;
private class mywindowsForm: Form
{
StringBuilder sbReceived = new StringBuilder();
string Received = string.Empty;
int byteCOUNT = 0;
System.Windows.Timers.Timer serialTimer;
myWindowsForm()
{
serialPort1 = new SerialPort();
serialPort1.Baud = 9600;
serialPort1.DataReceived+=<Tab><Enter>
serialTimer = new System.Windows.Timers.Timer(500);
serialTimer.Elapsed+=<TAB><ENTER>
}
void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
if(e.EventType !=SerialData.Chars) return;
this.BeginInvoke(new eventhandler(AddReceive));
}
private void AddReceive(object s, EventArg e)
{
byteCOUNT=serialPort1.BytesToRead;
if(byteCOUNT > 0)
{
string ST = serialPort1.ReadTo("\n");
sbReceived.Append(ST);
serialPort1.Interval =100;
serialPort1.Start();
}
}
void serialTimer(object Sender, TimerElapsedEventArgs e)
{
serialTimer.Stop();
this.BeginInvoke(new EventHandler(ReadData));
}
void ReadData(object Sender, EventArgs e)
{
Received = sbReceived.ToString();
if(Received.Length > 0)
{
}
}
}
, . #. , , /, . , . , , - , , / .