No. 850 | CSE-H53 SW관련 질문건 | 2011-02-23 | ||
---|---|---|---|---|
안녕 하세요 CSE-H53과 t2s_vc.zip를 다운받아 테스트 중입니다. 저희 프로젝트의 구성도는 SET==(UART)==CSEH53==(LAN)==PC 이렇게 되어 있습니다. SET에서 PC로 전송 되는 DATA가 40KB 정도씩 됩니다. PC에서 셋트로 전송 되는 데이터는 20BYTE정도 입니다. 질문 드립니다. 코드를 보면 "DlgOnReceive(int nErrorCode)" 함수 안에서 데이터를 받는데, 40KB를 연속으로 데이터를 보낼 경우 자주 데이터가 깨집니다. 코드는 아래에 있습니다. 좀더 효율적으로 사용할 방법이 있는지요? 코드에 문제점이 있는지 검토 부탁 드립니다. 그럼 수고 하세요 =========== 아 래 ===================== void Ct2s_vs2008Dlg::DlgOnReceive(int nErrorCode) { int len,count; CString msg; //BYTE buf[1024]; unsigned char buf2[UART_MAX_CNT]; len = m_socket.Receive(buf2, UART_MAX_CNT, 0); #if 0 for(count = 0; count < len; count++) { msg = buf2[count]; //m_console.ReplaceSel(msg); } #else count = 0; if (FindStartFlag==0) { for(count = 0; count < len; count++) { //msg = char(buf2[count]); //m_console.ReplaceSel(msg); if (buf2[count]==BK_UART_SB) { W_point = 0; FindStartFlag = 1; //memcpy (buf,&(buf2[len-count]),len-count); memcpy (&(uart_R_data[W_index][W_point]),&(buf2[count]),len-count); W_point += (len-count); break; } } } else { memcpy (&(uart_R_data[W_index][W_point]),buf2,len); W_point += len; if (uart_R_data[W_index][W_point-1]==BK_UART_EB) { length = (uart_R_data[W_index][2]<<24)|(uart_R_data[W_index][3]<<16)|(uart_R_data[W_index][4]<<8)|(uart_R_data[W_index][5]); FindStartFlag = 0; // 이 부분에서 코드를 비교해보면 데이터가 깨진경우가 발생 합니다. } } #endif } |
글쓴이 | Anonymous | 업체명 |
NO | Subject | Name | Date | Read |
---|---|---|---|---|
850 | CSE-H53 SW관련 질문건 | Anonymous | 2011-02-23 | 4243 |
851 | Re: CSE-H53 SW관련 질문건 | 솔내시스템(주) | 2011-02-24 | 4185 |
852 | Re: Re: CSE-H53 SW관련 질문건 | Anonymous | 2011-02-24 | 4078 |
853 | Re: Re: Re: CSE-H53 SW관련 질문건 | 솔내시스템(주) | 2011-02-24 | 4300 |
854 | Re: Re: Re: Re: CSE-H53 SW관련 질문건 | Anonymous | 2011-02-24 | 4284 |
855 | Re: Re: Re: Re: Re: CSE-H53 SW관련 질문건 | 솔내시스템(주) | 2011-02-25 | 4385 |
856 | Re: Re: Re: Re: Re: Re: CSE-H53 SW관련 질문건 | Anonymous | 2011-02-28 | 4092 |
857 | Re: Re: Re: Re: Re: Re: Re: CSE-H53 SW관련 질문건 | 솔내시스템(주) | 2011-02-28 | 4177 |
|
|||