회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
456 Analog & Mixed-Signal 설계 HOT수정발진기에 대해서 개념좀 잡아주세요..;;워낙 초보라서..1 행복한인생 1351 2010.12.28
455 드론/로봇/라인트레이서 HOT라이트레이서 모터부 회로도 에서 질문점 드릴게요..!3 라인걸어서 2327 2010.12.27
454 Analog & Mixed-Signal 설계 HOT전자 입문생...3 Elec_han 1022 2010.12.24
453 전기전자 아무거나 HOTvhdl 도 언어인가요?8 연재 2297 2010.12.23
452 Analog & Mixed-Signal 설계 HOT32진 비동기 카운터 fnd 표시 방법1 왕초보땜쟁이 1639 2010.12.21
451 Analog & Mixed-Signal 설계 HOT온도센서를 사용하여 회로를 만들려고 하는데 궁금한게 생겼습니다2 내가공주님 1512 2010.12.21
450 Analog & Mixed-Signal 설계 HOT달링턴페어에 대해 질문이요1 따지긴 2262 2010.12.20
449 Analog & Mixed-Signal 설계 HOT센서등관련 초보자 질문입니다4 별헤는 밤 6567 2010.12.20
448 Sensor 설계 HOT다이오드 질문드립니다.. 정말 초보적인 문제인대요..^^;;4 얀이 1532 2010.12.17
447 Analog & Mixed-Signal 설계 HOT풀업 풀다운 저항이 이해가 안되서요..2 npysjoo 2170 2010.12.13
446 드론/로봇/라인트레이서 HOT라인트레이서를 준비중입니다 .2 차차창 1211 2010.12.11
445 Analog & Mixed-Signal 설계 HOTSMPS 설계를 준비합니다.. 리아군 972 2010.12.07
444 Sensor 설계 HOT전류측정회로가 궁금합니다.1 고니77 2344 2010.12.04
443 Analog & Mixed-Signal 설계 HOTPSpice와 같이 전기 회로시뮬레이션 하는프로그램이 머머있나요?2 행복찾기 2907 2010.12.02
442 Analog & Mixed-Signal 설계 HOT4석 라디오 조립 회로에 관해서 질문 있습니다..1 미네르바 3121 2010.11.29
441 Analog & Mixed-Signal 설계 HOT디지털도어 회로인데 봐주세요 ㅠㅠ5 행복한이 1762 2010.11.29
440 Analog & Mixed-Signal 설계 HOT타이머를 이용한 LED구동회로 질문입니다.1 SOUL 1389 2010.11.25
439 전기전자 아무거나 HOT수정진동자 동작이 궁금해서요,,3 진공 2960 2010.11.22
438 Sensor 설계 HOT사진에 있는 tr 제품명이 먼지 알고 싶습니다 ㅡㅜ5 텐지무용 1160 2010.11.22
437 Analog & Mixed-Signal 설계 HOTpscad의 태양광발전 설계에 대한 질문 꿈돌이^^* 1445 2010.11.18
Prev 1 ... 12 13 14 15 16 17 18 19 20 21 ... 39 Next
  • 상대를 공경하고 남에게 양보하는 정신을 백성에게 기르게 하면 서로 다투는 것은 없어지게 되고 세상은 저절로 다스려지게 된다.
    - 근사록
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.