Hello, I have a question. I am making a very general application wherein I need to receive data from a hardware device serially. The device is made by me using very basic AT89C51. I am designing the software in C#. What I want is that whenever I send data to my PC through serial port, it is displayed directly on the screen. My strategy up till now is to use Application.Idle event. I have made something like this.
private void btnStart_Click(object sender, EventArgs e)
{
int Number;
bool isValid;
isValid = Int32.TryParse(txtBaudRate.Text, out Number);
if(!isValid)
{
MessageBox.Show("Use only Integer for Baud Rate", "Error", MessageBoxButtons.Ok, MessageBoxIcon.Error);
}
else
{
try
{
sp = new SerialPort(txtPort.Text,Number);
sp.Open();
buffer_write = new byte[1];
buffer_read = new byte[1];
Application.Idle += Application_Idle;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.Ok, MessageBoxIcon.Error);
}
}
}
Now I am unable to figure out how to write the Application_Idle method, so that When I hit a key on keyboard while in application, That keypress character is sent serially to port and whenever I send some data serially through my device, it gets echoed on the screen on a label.
Please Help me regarding this.