TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Paul Johnson
NA
1
2.9k
Convert C++ to C# for comport.
May 4 2012 9:58 AM
Hi
I'm having problems trying to convert C++ code to C#. I need to send and recieve data through a comport here's the C++ code:
Any help i'm desperate.
unsigned char CCOMport::ConnectCOMport(void)
{
unsigned char data[64], attempts = 0;
DWORD bytes = 0;
DCB portDCB;
COMMTIMEOUTS comTimeOut;
char str[8];
while (attempts < 15) // search through available COM ports until the PAPR unit is found
{
sprintf(str, "COM%d", COMport);
hPort = CreateFile(str, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if (hPort != INVALID_HANDLE_VALUE)
{
if (GetCommState(hPort,&portDCB) != 0) // com port has opened
{
//portDCB.BaudRate = 115200;
portDCB.BaudRate = 230400;
portDCB.ByteSize = 8;
portDCB.StopBits = ONESTOPBIT;
portDCB.Parity = NOPARITY;
if (SetCommState(hPort,&portDCB) != 0) // set up baud rate etc for COM port
{
comTimeOut.ReadIntervalTimeout = 3;
comTimeOut.ReadTotalTimeoutMultiplier = 3;
comTimeOut.ReadTotalTimeoutConstant = 100; // 1000
comTimeOut.WriteTotalTimeoutMultiplier = 3;
comTimeOut.WriteTotalTimeoutConstant = 10;
SetCommTimeouts(hPort,&comTimeOut); // set timeout for COM port
data[0] = '#'; // check the PAPR is connect by sending a
data[1] = COM_NO_OPERATION; // command and checking for the correct response
data[2] = 3;
WriteFile(hPort, data, data[2], &bytes, NULL);
ReadFile(hPort, data, 32, &bytes, NULL);
if (bytes == 2)
{
if ((data[0] == COM_NO_OPERATION) && (data[1] == '#')) // correct response receive so PAPR unit has been found
{
commStatus |= COMM_CONNECTED | COMM_LAST_CONNECT_SUCCESSFULL;
return TRUE;
}
}
}
}
CloseHandle(hPort);
}
++COMport; // step through COM ports 1-15
if (COMport >= 16)
COMport = 1;
++attempts;
}
commStatus &= ~(COMM_CONNECTED | COMM_LAST_CONNECT_SUCCESSFULL);
return FALSE;
}
Reply
Answers (
1
)
Speeding up data withdrawal
Can I submit my content to other website