Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. need help in MFC

need help in MFC

Scheduled Pinned Locked Moved C / C++ / MFC
helpc++comtutorial
18 Posts 6 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J jawadali477

    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);
    
    L Offline
    L Offline
    Lost User
    wrote on last edited by
    #2

    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

    J J A 3 Replies Last reply
    0
    • L Lost User

      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

      J Offline
      J Offline
      jawadali477
      wrote on last edited by
      #3

      can you please send me some reference example sites?

      L 1 Reply Last reply
      0
      • J jawadali477

        can you please send me some reference example sites?

        L Offline
        L Offline
        Lost User
        wrote on last edited by
        #4

        References for what? If you do not understand MFC then a search of The CodeProject Articles[^], MSDN[^] or even Google, will help. Alternatively there are many books on the market.

        Programming is work, it isn't finger painting. Luc Pattyn

        1 Reply Last reply
        0
        • J jawadali477

          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);
          
          CPalliniC Offline
          CPalliniC Offline
          CPallini
          wrote on last edited by
          #5

          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 of open_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 testa che avete, signor di Ceprano?

          J 1 Reply Last reply
          0
          • CPalliniC CPallini

            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 of open_host_port, that is as simple as (assuming a ANSI build):

            CString portname;
            myEditBox.GetWindowText(portname);
            COMstream = open_host_port(portname);

            Veni, vidi, vici.

            J Offline
            J Offline
            jawadali477
            wrote on last edited by
            #6

            but open_host_port () is defined as

            portstream_fd open_host_port(char *portname)

            CPalliniC 1 Reply Last reply
            0
            • J jawadali477

              but open_host_port () is defined as

              portstream_fd open_host_port(char *portname)

              CPalliniC Offline
              CPalliniC Offline
              CPallini
              wrote on last edited by
              #7

              Well, that is a open_host_port fault. Why - the fresh Hell - the function needs a not-const string? However

              COMstream = 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.

              In testa che avete, signor di Ceprano?

              J 1 Reply Last reply
              0
              • L Lost User

                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

                J Offline
                J Offline
                jeron1
                wrote on last edited by
                #8

                Compensated for the unwarranted univote.

                L 1 Reply Last reply
                0
                • L Lost User

                  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

                  A Offline
                  A Offline
                  Aescleal
                  wrote on last edited by
                  #9

                  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...

                  P L CPalliniC 3 Replies Last reply
                  0
                  • A Aescleal

                    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...

                    P Offline
                    P Offline
                    Pete OHanlon
                    wrote on last edited by
                    #10

                    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

                    1 Reply Last reply
                    0
                    • J jeron1

                      Compensated for the unwarranted univote.

                      L Offline
                      L Offline
                      Lost User
                      wrote on last edited by
                      #11

                      :thumbsup:

                      Programming is work, it isn't finger painting. Luc Pattyn

                      1 Reply Last reply
                      0
                      • A Aescleal

                        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...

                        L Offline
                        L Offline
                        Lost User
                        wrote on last edited by
                        #12

                        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

                        A 1 Reply Last reply
                        0
                        • L Lost User

                          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

                          A Offline
                          A Offline
                          Aescleal
                          wrote on last edited by
                          #13

                          I'm sure you are, still bloody irritating though...

                          P 1 Reply Last reply
                          0
                          • A Aescleal

                            I'm sure you are, still bloody irritating though...

                            P Offline
                            P Offline
                            Pete OHanlon
                            wrote on last edited by
                            #14

                            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

                            A 1 Reply Last reply
                            0
                            • CPalliniC CPallini

                              Well, that is a open_host_port fault. Why - the fresh Hell - the function needs a not-const string? However

                              COMstream = 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.

                              J Offline
                              J Offline
                              jawadali477
                              wrote on last edited by
                              #15

                              thank you CPallini. that was really helpful.

                              CPalliniC 1 Reply Last reply
                              0
                              • J jawadali477

                                thank you CPallini. that was really helpful.

                                CPalliniC Offline
                                CPalliniC Offline
                                CPallini
                                wrote on last edited by
                                #16

                                You are welcome.

                                Veni, vidi, vici.

                                In testa che avete, signor di Ceprano?

                                1 Reply Last reply
                                0
                                • A Aescleal

                                  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...

                                  CPalliniC Offline
                                  CPalliniC Offline
                                  CPallini
                                  wrote on last edited by
                                  #17

                                  Ok, take my 1. I can't tell you why I can't tell you why :-D

                                  Veni, vidi, vici.

                                  In testa che avete, signor di Ceprano?

                                  1 Reply Last reply
                                  0
                                  • P Pete OHanlon

                                    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

                                    A Offline
                                    A Offline
                                    Aescleal
                                    wrote on last edited by
                                    #18

                                    Yep, but don't tell him! :-)

                                    1 Reply Last reply
                                    0
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes


                                    • Login

                                    • Don't have an account? Register

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • World
                                    • Users
                                    • Groups