시리얼 프로그램

시리얼이 한바이트씩 입력 받을 때마다, 고넘을 일정한 버퍼에 복사하고,
특정한 조건이 되면, 저장했던 데이터를 화면에 char형태로 찍어주는 프로그램이다.

=======================================================================================

volatile int STOP=FALSE;

main()
{
    int fd,c, res,i, rlen, slen;
    struct termios oldtio,newtio;
    char buf[255];
    char sendbuf[2048];
    char recvbuf[2048];
    char printbuf[2048];
    int STEP=0;
    short crcnt,ackcnt,dlecnt;

    crcnt = ackcnt = dlecnt = rlen = slen = 0;

    fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY );
    if (fd <0)
    {
        perror(MODEMDEVICE);
        exit(-1);
    }
    else
    {
        printf("Port Open Ok!!
");
    }

    tcgetattr(fd,&oldtio); /* ?ㅤㄲㅛㄾㅤㅇㅗㄾ ?ㅼㅤㅈㅓㅌ??oldtio???€??*/

    bzero(&newtio, sizeof(newtio));

    newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD;
    newtio.c_iflag = IGNPAR;
    newtio.c_oflag = 0;

    /* set input mode (non-canonical, no echo,...) */
    newtio.c_lflag = 0;

    newtio.c_cc[VTIME]    = 0;   /* 臾몄ㅤㅇㅕㅋ ?ъㅤㅆㅢㅆ??timer瑜?disable */
    newtio.c_cc[VMIN]     = 1;   /* 理ㅤㅆㅝㅈㅤㄴㅒㅁ 5 臾몄ㅤㅇㅕㅋ 諛ㅤㅆㅖㄻㅤㅆㅠㅀ ?ㅤㄸㅜㅂㅤㅌㅞㅁ吏?blocking */

    tcflush(fd, TCIFLUSH);
    tcsetattr(fd,TCSANOW,&newtio);

    memset(buf,0, sizeof(buf));

    while (STOP==FALSE)
    {       /* loop for input */

        res = read(fd,buf,1);   /* 理ㅤㅆㅝㅈㅤㄴㅒㅁ 5 臾몄ㅤㅇㅕㅋ瑜?諛ㅤㅆㅖㄻㅤㅆㅛㅇ硫?由ыㅤㄲㅙㄵ */
        //buf[res]=0;               /* '???????????????????????????????????????????????????????????????????????????????????????