need help in MFC
-
hi, i have developed console program in C language running fine. the program is used to communicate to a motor through serial port. now i wanted to build GUI in MFC vs2008 (some of which i have completed). i'm facing problem in opening serial port as i have done in console program. can any one tell how to implement console program for opening serial port. code below shows how i open serial port in console program.
int COMportNum, BaudRate;
char COMportName[256], tmpChar;
portstream_fd COMstream;
char COMportPrefix[10] = "COM";COMportName[0] = ' ';
while (COMportName[0] == ' ') {
printf("\nEnter the %s port number the motor is attached to: ", COMportPrefix);
scanf("%d", &COMportNum);
printf("You selected %s%d. Is this OK? (enter 'y' or 'n'): ", COMportPrefix, COMportNum);
tmpChar = 'f';
while ( (tmpChar != 'y') && (tmpChar != 'n') )
tmpChar = ((char) tolower(getchar()));
if ( tmpChar == 'y' )
sprintf(COMportName, "%s%d", COMportPrefix, COMportNum);
}
tmpChar = 'f';
while (tmpChar != 'y') {
printf("\nEnter the baud rate the motor communicate at (default: 9600): ");
scanf("%d", &BaudRate);
printf("You selected %d. Is this OK? (enter 'y' or 'n'): ", BaudRate);
tmpChar = 'f';
while ( (tmpChar != 'y') && (tmpChar != 'n') )
tmpChar = ((char) tolower(getchar()));
}/\* initialize the serial port \*/ set\_baud\_rate(BaudRate); COMstream = open\_host\_port(COMportName); if ( COMstream == PORT\_NOT\_OPENED ) { printf("\\nSerial Port setup error.\\n"); goto abnormal\_exit; } printf("\\nSerial port %s initialized\\n", COMportName);
In a rather rough approach you may let the user write the full name of the serial port into an edit box (say
myEditBox
) and use that string as argument ofopen_host_port
, that is as simple as (assuming a ANSI build):CString portname;
myEditBox.GetWindowText(portname);
COMstream = open_host_port(portname);Veni, vidi, vici.
-
In a rather rough approach you may let the user write the full name of the serial port into an edit box (say
myEditBox
) and use that string as argument ofopen_host_port
, that is as simple as (assuming a ANSI build):CString portname;
myEditBox.GetWindowText(portname);
COMstream = open_host_port(portname);Veni, vidi, vici.
but open_host_port () is defined as
portstream_fd open_host_port(char *portname)
-
but open_host_port () is defined as
portstream_fd open_host_port(char *portname)
Well, that is a
open_host_port
fault. Why - the fresh Hell - the function needs a not-const string? HoweverCOMstream = open_host_port((LPSTR)(LPCSTR) testCStr);
should do the trick. BTW I ask you once again (I'm curious): what library are you using?
Veni, vidi, vici.
-
You would do exactly the same in the MFC program. You could make your comport handler into a class or add it to one of the existing classes. You then activate it by a menu selector or toolbar button.
Programming is work, it isn't finger painting. Luc Pattyn
-
You would do exactly the same in the MFC program. You could make your comport handler into a class or add it to one of the existing classes. You then activate it by a menu selector or toolbar button.
Programming is work, it isn't finger painting. Luc Pattyn
-
I wish bleedin' univoters would tell people WHY they do it. Mucking Fuppets. How the hell are we supposed to learn if they won't tell us what we're doing wrong...
Univoters normally include the OP when someone doesn't actually write all their code for them. For some reason, CP forums seem to be seen as the source of free software where you post up a vague problem and miraculously someone will write all your code for you. For free.
*pre-emptive celebratory nipple tassle jiggle* - Sean Ewington
"Mind bleach! Send me mind bleach!" - Nagy Vilmos
CodeStash - Online Snippet Management | My blog | MoXAML PowerToys | Mole 2010 - debugging made easier
-
:thumbsup:
Programming is work, it isn't finger painting. Luc Pattyn
-
I wish bleedin' univoters would tell people WHY they do it. Mucking Fuppets. How the hell are we supposed to learn if they won't tell us what we're doing wrong...
Yes, but then they wouldn't be univoters. Quite frankly, I think I'm big enough and ugly enough to take it on the chin. :(( :(( :((
Programming is work, it isn't finger painting. Luc Pattyn
-
Yes, but then they wouldn't be univoters. Quite frankly, I think I'm big enough and ugly enough to take it on the chin. :(( :(( :((
Programming is work, it isn't finger painting. Luc Pattyn
-
You think Richard is irritating? ;P
*pre-emptive celebratory nipple tassle jiggle* - Sean Ewington
"Mind bleach! Send me mind bleach!" - Nagy Vilmos
CodeStash - Online Snippet Management | My blog | MoXAML PowerToys | Mole 2010 - debugging made easier
-
Well, that is a
open_host_port
fault. Why - the fresh Hell - the function needs a not-const string? HoweverCOMstream = open_host_port((LPSTR)(LPCSTR) testCStr);
should do the trick. BTW I ask you once again (I'm curious): what library are you using?
Veni, vidi, vici.
thank you CPallini. that was really helpful.
-
thank you CPallini. that was really helpful.
-
I wish bleedin' univoters would tell people WHY they do it. Mucking Fuppets. How the hell are we supposed to learn if they won't tell us what we're doing wrong...
-
You think Richard is irritating? ;P
*pre-emptive celebratory nipple tassle jiggle* - Sean Ewington
"Mind bleach! Send me mind bleach!" - Nagy Vilmos
CodeStash - Online Snippet Management | My blog | MoXAML PowerToys | Mole 2010 - debugging made easier