|
제 생각에는 수신받고 처리한후 이전의 버퍼를 안지우신것 아니신지요?
그래서 이전의 버퍼의 내용이 나오는것 같아 보이는데.
수신부분 소스를 해당 부분만 잘라서 올려보세요
WARSHIP 님이 쓰신 글 :
: 궁극적으로는 데이터가 한번씩 오는게 정상이겠습니다만. ^^;
: 그게 안되신다고 하니 우선 중복된 데이터를 없애는것 하게 되시면
: 직접 만드셔도 되지만 STL 라이브러리에 이미 구현된 함수를 사용하시면 됩니다.
:
: #include <algorithm>
: using namespace std;
:
: int main(int argc, char *argv)
: {
: char *str = "112233445566";
: char buf[64];
: unique_copy( str , str+strlen(str)+1 , buf );
: printf("%s\n%s",str,buf);
: return 0;
: }
:
: result :
: 112233445566
: 123456
:
: 이런식으로 될것입니다.
:
: unique,unique_copy 두가지 함수가 있으며 이름이 보여주는대로
: unique는 자체를 변경시키는 것이고 unique_copy는 아웃풋 버퍼를
: 마지막 인자로 받는 함수 입니다.
:
: 자세한 레퍼런스는 stl 사이트등을 통해서 알아보시고,
: 유용하게 사용하시기 바랍니다.
:
: 다만 문제가 되는것은 위방법을 사용할 때에는
: 시리얼로 들어오는 데이타가 항상 앞뒤가 다르다는
: 전제조건 하에 사용하셔야겠네요. 그렇지않다면
: 데이타가 소실될테니까요. ^^
: 그럼 좋은하루 보내시길 바랍니다.
:
:
: 허접 님이 쓰신 글 :
: : 안녕하세요..
: : 오늘도 어김없이 막히는게 생겼습니다. ㅜ.ㅜ
: : RS232 통신으로 데이터를 받아 처리하는 프로그램인데요..
: : 보드에 달린 스위치를 한번 누르면, 0xAE 가 날라옵니다.
: : 근데, PCOM 이란 프로그램으로 데이터 송수신을 보면, 한번 누르면, 0xAE가 한번 날아오는데, 그걸 빌더에서 edit창에 뿌려주니까, 거의 대부분 두번씩 찍히네요.
: : 즉, 스위치를 한번 누르면, 0xAE 0xAE 이렇게 찍히네요.
: : 어떻게 해결을 해야할지 모르겠어요..
: : 0xAE 가 나오면, 두번이 나오든, 세번이 나오든, 무조건 한번 나온걸로 처리하고 싶은데.....
: : 어찌해야 하나요.. 도와주세요.. 고수님들... ㅠ.ㅜ
|