|
Break Point 써서 확인도 안되고 해서 다시 질문 드립니다.
다음과 같은 경우에요..
*********************************************************************
프로그램 1
A 함수
{
ComPort->Write( szData1 , Count ); // szData들은 5바이트고요
ComPort->Write( szData2 , Count );
ComPort->Write( szData3 , Count );
ComPort->Write( szData4 , Count );
ComPort->Write( szData5 , Count );
}
OnRxChar 함수
{
ComPort->Read( szRead , Count ); // 받아서
..................... // 데이터 처리를 합니다
}
*********************************************************************
*********************************************************************
프로그램 2 - ComPort 에서 받은 데이터를 그대루 다시 보내줍니다.
OnRxChar 함수
{
ComPort->Read( szRead, Count );
ComPort->Write( szRead, Count);
}
*********************************************************************
프로그램 1 과 2 를 시리얼로 연결시키고 테스트를 했는데.. 궁금한건요..
프로그램 1에서 ComPort->Write 를 연속으로 보내지요.. 헌데 프로그램 2는 받은 즉시
프로그램 1로 다시 보내니깐,
순서로 보면
1 ComPort->Write( szData1 , Count );
2 프로그램 2의 OnRxChar
3 ComPort->Write( szData2 , Count );
4 프로그램 2의 OnRxChar
5 ComPort->Write( szData3 , Count );
6 프로그램 2의 OnRxChar
7 ComPort->Write( szData4 , Count );
8 프로그램 2의 OnRxChar
9 ComPort->Write( szData5 , Count );
10 프로그램 2의 OnRxChar
11 프로그램 1의 OnRxChar
제 생각은 이런식으루 되는게 아닐까 싶어서요..
다른 인터럽트나 스레드 같은건 안돌리니깐 프로그램 1의 A함수가 다 처리되야 다른 놈으로 넘어가니깐..
제 생각대로 된다면 프로그램 1의 OnRxChar에서 받을 수 있는건 어떻게 되는지..
szData5 만 받을수 잇는건지..
아니면 Count 가 25가 되어.. szData1 ~ 5를 통채로 받는건지..
이게 궁금했거든요..
근데 이렇게 순서가 안되는거 같아요, 데이터 처리에서 각 데이터를 처리가 되더라구요
ComPort의 OnRxChar이 언제 활성화 되는건가요?
프로그램 1의 A함수 도중에 데이터가 수신된다고 해서 OnRxChar로 넘어가면 안되는게 아닌가해서요.
답변 부탁드리겟습니다.
|