Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6647827
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T00:35:01+00:00 2026-05-26T00:35:01+00:00

This code is supposed to send a command to COM3 send the response to

  • 0

This code is supposed to send a command to COM3 send the response to a file – then read a certain number of characters from COM5 and write that to a file. Weird values are printing.

I think I have been looking at the code too long. Any assistance would be awesome.

#include <Windows.h>
#include <iostream>
#include <string>
#include <fstream>

using namespace std;
int main()
{
    ofstream myfile;
    myfile.open ("example.txt", 'w');

    HANDLE hSerial = CreateFile("COM3",GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
    HANDLE hSerial2 = CreateFile("COM5",GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);

    if(hSerial==INVALID_HANDLE_VALUE)
        std::cout << "Insert error message";

    DCB dcbSerialParams = {0};
    dcbSerialParams.DCBlength=sizeof(dcbSerialParams);

    if (!GetCommState(hSerial, &dcbSerialParams)) 
        std::cout << "Insert error message";

    dcbSerialParams.BaudRate=CBR_9600;
    dcbSerialParams.ByteSize=8;
    dcbSerialParams.StopBits=ONESTOPBIT;
    dcbSerialParams.Parity=NOPARITY;

    if (!SetCommState(hSerial,&dcbSerialParams))
        std::cout << "Insert error message";


    COMMTIMEOUTS timeouts={0};
    timeouts.ReadIntervalTimeout=50;
    timeouts.ReadTotalTimeoutConstant=50;
    timeouts.ReadTotalTimeoutMultiplier=10;
    timeouts.WriteTotalTimeoutConstant=50;
    timeouts.WriteTotalTimeoutMultiplier=10;
    if(!SetCommTimeouts(hSerial, &timeouts))
        std::cout << "Insert error message";


int i = 0;
while(i < 10)
{
char szBuff[50+1] = {0};
char lzBuff[400] = {0};
char wzBuff[14] = {"AT+CSQ\r"};

DWORD dZBytesRead = 0;
DWORD dwBytesRead = 0;


if(!WriteFile(hSerial, wzBuff, 7, &dZBytesRead, NULL))
    std::cout << "Write error";

if(!ReadFile(hSerial, szBuff, 50, &dwBytesRead, NULL))
    std::cout << "Read Error";

if(!ReadFile(hSerial2, lzBuff, 400, &dZBytesRead, NULL))
    std::cout << "Read Error";


std::string test2 = std::string(lzBuff).substr(300,10);
//std:: cout << szBuff;
if(dwBytesRead > 9)
{
    std::string test = std::string(szBuff).substr(8,3);
    myfile << test <<endl << endl << endl;

std::cout << test << endl;
}

if(dZBytesRead > 200)
{
    std::string test2 = std::string(lzBuff).substr(1,10);
    myfile << test2 << '\n' << '\n';

}

Sleep(500);
i++;
}

myfile.close();
return 0;
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T00:35:01+00:00Added an answer on May 26, 2026 at 12:35 am

    When I’ve had COM ports spitting out weird characters, it’s usually because of a baud rate mismatch.

    You should call SetCommState on hSerial2 to ensure it has the same baud rate as hSerial.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

this is part of my code which reads an http response. It's supposed to
I have an ActionMailer controller that's supposed to send this file: /user_mailer/welcome_email.text.erb This is
This code is supposed to be able to sort the items in self.array based
This piece of code is supposed to go through a list and preform some
The program is supposed to accept telnet connections on port 8888 and then send
So I have the following code. It's supposed to send HTML emails that were
I have this piece of code that is supposed to work on Firefox 3.6
I am using network stream to send a file name (example :text.txt) and then
This code is suppose to add an onClick event to each of the a
How to get generic interface type for an instance ? Suppose this code: interface

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.