C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[54449] 버그좀 잡아주세요..
번외편 [wifemylove] 1410 읽음    2008-08-29 01:35
시리얼 데이터 통신을 아래와 같이 쓰고 있는데 문제가 있는지...
많이 버벅이고 조금씩 오동작을 하는거 같습니다.
놓치고 있는부분이나 잘못하고 있는부분좀 잡아주세요
하루종일 디버깅을 해봐도 잘 안되네요


        int i,j,k;
        char Buff[100];
        static char data[1000];
        static unsigned int serial_number;
        char serial_data[1000];

        String *Str_Data = new String;

        Comm1->Read(serial_data,Count);

        RzMemo1->Lines->BeginUpdate() ;
        //if( Count< 200)
        //{
                for(i=0;i<Count;i++)
                {

                        data[serial_number] =   serial_data[i] ;

                        if( data[serial_number] == 0x0d )
                        {
                                if( (data[0] != 0x1b) && (data[1] != 0x1b) )
                                {
                                        *Str_Data = (char)data[0];
                                        for(j=1;j<serial_number;j++)
                                        {
                                                *Str_Data = *Str_Data + (char)(data[j]);
                                        }


                                        RzMemo1->Lines->Add(*Str_Data )  ;
                                        RzMemo1->Perform(WM_VSCROLL, SB_BOTTOM, 0);

                                        //while(RzMemo1->Lines->Count>40)
                                        //RzMemo1->Lines->Delete(0);
                                        //RzMemo1->Perform(EM_LINESCROLL,0,RzMemo1->Lines->Count-1);

                                        //RzMemo1->SelStart=RzMemo1->Text.Length()-2;
                                        //RzMemo1->SelLength=1;


                                }

                                if(strstr(data,"Hello")!=NULL)
                                {

                                                memset(ok,0,100);
                                                memcpy(ok,&data[17],20);
                                                Form6->RzStatusPane3->Caption = ok;

                                                //memset(data,0,100);
                                }

                                else if(strstr(data,"NAME")!=NULL)
                                {

                                                memset(NAME,0,100);
                                                memcpy(NAME,&data[22],20);
                                                Form6->RzStatusPane1->Caption = NAME;

                                               //memset(data,0,100);
                                }

                                else if(strstr(data,"PASS")!=NULL)
                                {
                                        UDP_Connect=0;
                                        RzMemo3->Lines->Add(DateTimeToStr(Now()) + ' ' +"        자동끊김");
                                        Timer4->Enabled=true;
                                }

                                memset(data,0,serial_number +10);
                                serial_number = 0;
                        }

                        else if(strstr(data,"Enter user name: ")!=NULL)
                        {
                                memset(Buff,0,100);

                                        memcpy(Buff, "korea\n\r",sizeof("korea\n\r"));
                                        com = Comm1->Write(Buff,sizeof("korea\n\r"));
                                        Label6->Caption = "name ok";

                                memset(data,0,100);
                        }

                        else if(strstr(data,"Enter login password: ")!=NULL)
                        {
                                memset(Buff,0,100);

                                        memcpy(Buff, "Time\n\r",sizeof("Time\n\r"));
                                        com = Comm1->Write(Buff,sizeof("Time\n\r"));
                                        Label7->Caption = "pass ok";

                                memset(data,0,100);
                        }

                        else
                        {
                                serial_number++ ;
                        }

                        //if( serial_number > 100) serial_number = 0 ;
                }
        //}
        RzMemo1->Lines->EndUpdate() ;

+ -

관련 글 리스트
54449 버그좀 잡아주세요.. 번외편 1410 2008/08/29
54456     Re:버그좀 잡아주세요.. utime.김성하 1353 2008/09/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.