Solved

Serial Port Communication

Posted on 2002-05-22
8
1,055 Views
Last Modified: 2013-11-20
Hello,

Project: Create a dialog app to receive serial port input from a microcontroller and display in your GUI.

The Dialog app is created and ready for incorporation of  communication methods.

So,
What is the easiest way to communicate over the serial port using MFC? I have found various classes online and am aware that ActiveX may be a solution but I dont know which to go for / what the benefits of each are.

One ability I will need is to ignore a significant portion of the incoming messages. They will be in the form of several text numbers which I will process, but I only need them at set intervals of a 1/2 second or so.

I'll need guidance in the form of online documentation or code presented here also.

Thanks to everyone.
0
Comment
Question by:jkelly061597
  • 2
  • 2
  • 2
  • +2
8 Comments
 
LVL 86

Expert Comment

by:jkr
ID: 7028084
See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwbgen/html/msdn_serial.asp ("Serial Communications in Win32") - this is the IMHO most comprehensive article on this issue, and it comes with sample code.
0
 
LVL 86

Expert Comment

by:jkr
ID: 7028089
BTW - you might want to check these out, also:

http://www.codeguru.com/network/serial.shtml ("CSerial - A C++ Class for Serial Communications")

http://www.codeguru.com/network/serialport.shtml ("A communication class for serial port")
0
 
LVL 3

Expert Comment

by:Crius
ID: 7028122
Reusing the VCTERM code from the MSDN library would be one of the easiest ways of using MFC to handle comport communications.

The code to either use or ignore incoming strings/values is up to your own switch statements or code, and not actually part of the MFC code/ActiveX/COM control.

Most of the classes in the sample program you won't actually need, but you will need to look at the CMainFrame for samples of how to use the CommCtrl, and you will need to add in the CCommCtrl COM object.
0
 
LVL 1

Accepted Solution

by:
Mazen earned 200 total points
ID: 7030014
Hi,
 I found the ActiveX "Microsoft Communcations Control" very useful . So i suggest that you use it.
Here is the code for it:
When you first add the ActiveX for your application, first add a variable to it and let be of type control.

Then double click on the icon that shows on your dialog, this will ask you to add a function. Select ok for this function. This function will be called whenever  a character is found at the serial port.
In initdailog put the following code:
{
m_Comm.SetCommPort(1); // or any other port
m_Comm.SetSettings("4800,n,8,1"); // you can change the baud rate
m_Comm.SetPortOpen(TRUE);
}
And in the Fuction created add this:
{
COleVariant myVar;
myVar = m_Comm.GetInput();
CString Inputdata( myVar.bstrVal );
mystring+= Inputdata; // this string has the input data, you can manipulate it

}


to add the activex for your application click on :
project -> Add to Project -> Components and Controls
Choose "Registered ActiveX Controls"


As Crius has mentioned before , you have to add the code for ignoring some data.

Regards

Mazen
0
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 

Author Comment

by:jkelly061597
ID: 7065948
Thanks all, I ended up using straight active x as my solution
0
 

Expert Comment

by:gaohuanzx
ID: 7873776
Can u give me a specific answer, where to add the activex. do u mean build a new project and then add the project to my own application?
0
 

Expert Comment

by:gaohuanzx
ID: 7873854
Can u give me a specific answer, where to add the activex. do u mean build a new project and then add the project to my own application?
0
 
LVL 1

Expert Comment

by:Mazen
ID: 7875859
Hi gaohuanzx,
  If you look at the menu of VC++ program, you will see the word  "project".(you know, next to :file - edit ...)
Click on it and then click "Add to Project -> Components and Controls".
Your application has to be dialog based inorder to be able to add this activex.
If you need any more help, just ask.
Best Regards,
  Mazen
0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

Introduction: Displaying information on the statusbar.   Continuing from the third article about sudoku.   Open the project in visual studio. Status bar – let’s display the timestamp there.  We need to get the timestamp from the document s…
If you use Adobe Reader X it is possible you can't open OLE PDF documents in the standard. The reason is the 'save box mode' in adobe reader X. Many people think the protected Mode of adobe reader x is only to stop the write access. But this fe…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now