|
문자열의 길이를 구하는 strlen 함수가 문자열 처음부터 NULL까지의 길이를 반환하는 함수이므로 문제가 되는거 같군요.
에초에 Rs232Send 함수에 버퍼포인터와 함께 길이도 같이 넘기는 방식으로 변경하시는게 좋을거 같습니다.
void __fastcall TForm1::Rs232Send(char *ch, int Size)
{
Rs->Write(ch,Size);
}
커먼센스 님이 쓰신 글 :
: 커먼센스 님이 쓰신 글 :
: : Rs232로 데이터를 타겟에 전송하려합니다.
: : 우선 소스 올리겠습니다.
: :
: : void __fastcall TForm1::Rs232Send(char *ch)
: : {
: : int ilen;
: :
: : ilen=strlen(ch);
: : Rs->Write(ch,ilen);
: : }
: :
: : 여기서 데이터를 보내는중에 00값이 들어가면 널로 인식해서 그 이후의 데이터가 전송되지 않습니다.
: : 어떻게 해야할까요?
: : 고수님들 헬프욤
:
:
: 예를 들면 헥사 14 03 00 B3 95 e0 23 이런 7바이트를 전송하려 하는데 중간에 00이란 값이 있으면 그다음의 데이터는 안들어 가네요 해결책 없을까요?
|