I want to convert my console application to windows form application.in console form the data is continously coming now i want to display that console output to my richboxtext present in windows form application.assume there is a button,richboxtext in my windows form.please use threads and please look my code below.
using System;
using canlibCLSNET;
namespace CanData02
{
public class Program
{
static void Main(string[] args)
{
int handle;
Canlib.canStatus status;
int channelNumber = 0;
Canlib.canInitializeLibrary();
handle = Canlib.canOpenChannel(channelNumber, Canlib.canOPEN_ACCEPT_VIRTUAL);
CheckStatus((Canlib.canStatus)handle, "canOpenChannel");
status = Canlib.canSetBusParams(handle, Canlib.canBITRATE_250K, 0, 0, 0, 0, 0);
CheckStatus(status, "canSetBusParams");
status = Canlib.canBusOn(handle);
CheckStatus(status, "canBusOn");
DumpMessageLoop(handle);
}
private static void DumpMessageLoop(int handle)
{
Canlib.canStatus status;
bool finished = false;
byte[] data = new byte[8];
int id;
int dlc;
int flags;
long timestamp;
Console.WriteLine("Channel opened. Press Escape to close. ");
Console.WriteLine("ID DLC DATA Timestamp");
while (!finished)
{
status = Canlib.canReadWait(handle, out id, data, out dlc, out flags, out timestamp, 100);
if (status == Canlib.canStatus.canOK)
{
DumpMessage(id, data, dlc, flags, timestamp);
}
else if (status != Canlib.canStatus.canERR_NOMSG)
{
CheckStatus(status, "canReadWait");
finished = true;
}
}
}
private static void DumpMessage(int id, byte[] data, int dlc, int flags, long timestamp)
{
if ((flags & Canlib.canMSG_ERROR_FRAME) != 0)
{
Console.WriteLine("Error Frame received ****");
}
else
{
Console.WriteLine($"{id} {dlc} {data[0]:x2} {data[1]:x2} {data[2]:x2} {data[3]:x2} {data[4]:x2} {data[5]:x2} {data[6]:x2} {data[7]:x2} {timestamp}");
}
}
private static void CheckStatus(Canlib.canStatus status, string method)
{
if (status < 0)
{
Console.WriteLine($"{method} failed: {status.ToString()}");
}
}
}
}