회원가입 ID/PW 찾기

펌웨어 & 코딩언어 HOTrs232 통신프로그램..

예딩2010.12.06 18:1412.06조회 수 2360댓글 0이 게시물을

AA

오픈소스가많다는데 소켓프로그래밍밖에안보여서요..ㅠㅠ

rs231을 통한 일대일 채팅프로그램을 구현해야되는데..제대로 안되네요

글을 쓰면 연속적으로 써지는게 아니라

워키토키 방식으로 한줄씩 돌아가면서 순차적으로 글을써야만해요ㅠㅠ..이거어떻게고치죠?

 

#include <iostream.h>
#include <windows.h>
#include <string.h>
// using namespace std;

HANDLE hComm;
DCB m_dcb;

int Open_Port(char* szPort)
{
 //The CreateFile function opens a munications port
 hComm = CreateFile( szPort,  //pointer to name of the file
  //If a port does not exist, an error will occur (ERROR_FILE_NOT_FOUND)
  GENERIC_READ | GENERIC_WRITE, // access (read-write) mode. 
  0, // exclusive access.  Communications ports cannot be shared in the same manner that files are shared
  0, // default security attributes
  OPEN_EXISTING, //Opens the file. The function fails if the file does not exist.
  0,//FILE_FLAG_OVERLAPPED,
  0);
//If the function succeeds, the return value is an open handle to the specified file. 
//If the file does not exist before the call, GetLastError returns zero.


 // check serial port
 if (hComm == INVALID_HANDLE_VALUE)
 {
  // Handle the error
  cout << "CreateFile failed with error" << endl <<endl;
  return 1;
 }
 else
 {
  cout << "CreatFile is Success" << endl<<endl;  
 }

 return 0;
 
}

int Init_serial()
{

 //get serial communications device
 //baud rate, stop bits, byte size, Parity check

//There are three ways to initialize a DCB structure.
//The first method is to use the function GetCommState.
//This function returns the current DCB in use for the communications port. 
 if(GetCommState(hComm,&m_dcb))  // handle to communications device
          // pointer to device-control block structure   
 {
  cout << "Check Serial Satus" << endl;
  cout << "baud rate : " << m_dcb.BaudRate << endl;
  cout << "stop bit : " << m_dcb.StopBits  << endl;
  cout << "data size : " << m_dcb.ByteSize << endl;
  cout << "Ready to Serial" << endl<< endl;
 }
 else
 {
  cout << "Fail to Set serial" <<endl<<endl;
 }
 

 /*
 typedef struct _DCB { // dcb
    DWORD BaudRate;            // current baud rate
    DWORD fParity: 1;          // enable parity checking
    BYTE ByteSize;             // number of bits/byte, 4-8
    BYTE Parity;               // 0-4=no,odd,even,mark,space
    BYTE StopBits;             // 0,1,2 = 1, 1.5, 2
 } DCB;
 */


 // set serial device
 m_dcb.BaudRate = 115200;
 m_dcb.ByteSize = 8;
 m_dcb.StopBits = ONESTOPBIT;
 m_dcb.Parity   = NOPARITY;

//The SetCommState function configures a communications device according to the specifications
//in a device-control block (a DCB structure).
//The function reinitializes all hardware and control settings,
//but it does not empty output or input queues
 if(SetCommState(hComm,&m_dcb))  // handle to communications device
          // pointer to device-control block structure
 {
  cout << "Serial device is set" << endl;
  cout << "baud rate : " << m_dcb.BaudRate << endl;
  cout << "stop bit  : " << (int)m_dcb.StopBits  << endl;
  cout << "Parity    : " << (int)m_dcb.Parity    << endl;
  cout << "data size : " << (int)m_dcb.ByteSize  << endl<<endl;
 }
 else
 {
  cout << "Fail to Serial set" << endl;
  cout << "=============================" << endl;
  return 1;
 }

 return 0;
}

int Comp_str(char *a)
{
 int pt=0;

 if(strcmp(a,"/quit"))
  pt= 1;

 // cout << "Result of Compare : " << pt << endl;


 return pt;
}

int main()
{
 char *szPort;
 const int buff_size=2048;
 char buf[buff_size]="";
 char sbuf[buff_size]="";
 unsigned long byte_read=0;
 unsigned long byte_written=0;

 int protocol =0;
 int val;
 szPort="COM2";
  
 // Create File for Com Port
 if(Open_Port(szPort))
 {
  cout << " Fail to Create File for ComPort" << endl;
  return 1;
 }

 // Initialize Serial Port
 if(Init_serial())
 {
  cout << " Fail to Initialize Serial Port" << endl;
  return 1;
 }

 while(1)
   {

    cin.getline(buf, 20);
 
 

 val=WriteFile(hComm,  // handle to file to write to
    buf,    // pointer to data to write to file
    strlen(buf),  // number of bytes to write
    &byte_written,  // pointer to number of bytes written
    NULL); // pointer to structure for overlapped I/O
    if(val==0);
    
    cout << "send data : " <<buf << endl;
    
 

 val=ReadFile(hComm,  // handle of file to read
    sbuf,    // pointer to buffer that receives data
    sizeof(sbuf),  // number of bytes to read 
    &byte_read,   // pointer to number of bytes read
    NULL);    // pointer to structure for data

    if(val==0);
    {
     cout <<" recv_data : "<<sbuf << endl;
     memset(sbuf, 0, buff_size);
    }    
    
    
 }
     
 

 cout <<"End of Chatting" << endl;
 

 //The ReadFile function reads data from a file, starting at the position indicated by the file pointer.

 // device close
 CloseHandle(hComm);   // handle to object to close

 return 0;
}

댓글 0

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
29 Analog & Mixed-Signal 설계 HOT7805를 이용한 정전압회로에서요..5 v천아v 2187 2011.01.06
28 Analog & Mixed-Signal 설계 HOT플라이백 컨버터 기반 LED 조명을 설계 해볼려고 합니다. 고수님들 조언이 필요합니다 엘이디 1883 2011.01.03
27 Analog & Mixed-Signal 설계 HOTorcad 파일 오픈이안되요 에러나요3 전자지존되고싶어요 1313 2010.12.30
26 Analog & Mixed-Signal 설계 HOT플라이백 컨버터 설계 질문입니다. comment 부탁 드립니다.2 엘이디 1926 2010.12.28
25 Analog & Mixed-Signal 설계 HOTLNA 설계 놀부 1926 2010.12.28
24 Analog & Mixed-Signal 설계 HOT라인트레이서 회로도 입니다.3 Gentlewolf 4285 2010.12.28
23 Analog & Mixed-Signal 설계 HOT수정발진기에 대해서 개념좀 잡아주세요..;;워낙 초보라서..1 행복한인생 1351 2010.12.28
22 Analog & Mixed-Signal 설계 HOT전자 입문생...3 Elec_han 1022 2010.12.24
21 Analog & Mixed-Signal 설계 HOT32진 비동기 카운터 fnd 표시 방법1 왕초보땜쟁이 1639 2010.12.21
20 Analog & Mixed-Signal 설계 HOT온도센서를 사용하여 회로를 만들려고 하는데 궁금한게 생겼습니다2 내가공주님 1512 2010.12.21
19 Analog & Mixed-Signal 설계 HOT달링턴페어에 대해 질문이요1 따지긴 2262 2010.12.20
18 Analog & Mixed-Signal 설계 HOT센서등관련 초보자 질문입니다4 별헤는 밤 6567 2010.12.20
17 Analog & Mixed-Signal 설계 HOT풀업 풀다운 저항이 이해가 안되서요..2 npysjoo 2170 2010.12.13
16 Analog & Mixed-Signal 설계 HOTSMPS 설계를 준비합니다.. 리아군 972 2010.12.07
15 Analog & Mixed-Signal 설계 HOTPSpice와 같이 전기 회로시뮬레이션 하는프로그램이 머머있나요?2 행복찾기 2907 2010.12.02
14 Analog & Mixed-Signal 설계 HOT4석 라디오 조립 회로에 관해서 질문 있습니다..1 미네르바 3121 2010.11.29
13 Analog & Mixed-Signal 설계 HOT디지털도어 회로인데 봐주세요 ㅠㅠ5 행복한이 1762 2010.11.29
12 Analog & Mixed-Signal 설계 HOT타이머를 이용한 LED구동회로 질문입니다.1 SOUL 1389 2010.11.25
11 Analog & Mixed-Signal 설계 HOTpscad의 태양광발전 설계에 대한 질문 꿈돌이^^* 1445 2010.11.18
10 Analog & Mixed-Signal 설계 HOTFET 기초이론인데 이해가 안가는 부분이 잇어서 종이악마 975 2010.11.16
  • 위대한 사람은 모두가 겸손하다.
    - 레싱
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.