|
PC 두대를 이용해서 데이터 통신 중입니다.
아래는 그 소스 인데요.. 한쪽 PC에서 영상처리를 하여 원의 중심을 찾아서
그 중심 데이터를 다른쪽 PC로 전송하고 있습니다.
보낼때 각 Pixel 값을 상위 비트 하위비트로 나누어서 보냈구요
다른쪽 PC에서 이 데이터를 받아서 제가 원하는 데이터로 다시 변환 할려니
되지가 않아서요..
수신 쪽에서 Comport를 사용하여 ComPort1->ReadStr(str);
들어오는 데이터에서 C를 찾아내어 필요한 갯수만큼 짤라내면
CㅁㅁㅁㅁE <-- 요렇게 들어는 옵니다. 물론 저기 네모는 영 이상한 문자로
표현이 되더군요..
저 데이터를 다시 상위 비트와 하위비트를 합쳐서 원 데이터로 변환하고 싶은데..
잘안되어서요..
저기 네모는 스트링이 잖아요.. 그럼 이 스트링을 다시 케릭터로 바꾸어 주어야 될꺼 같은데..
sprintf(c, "%c", str.c_str()); <-- 이런식으로 하면 안되는 건가요?
변환을 어떻게 해야 하는건지 잘 모르겠네요..
조언좀 부탁드리겠습니다.
// 송신부
void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{
unsigned int uiX, uiY;
unsigned char ucXH, ucXL, ucYH, ucYL, ucOrgXH, ucOrgXL, ucOrgYH, ucOrgYL;
// uiX와 uiY 는 Pixel데이타로 0~640 까지 입니다.
ucXH = (unsigned char)(uiX >> 8) & 0x00ff;
ucXL = (unsigned char)(uiX & 0x00ff);
ucYH = (unsigned char)(uiY >> 8) & 0x00ff;
ucYL = (unsigned char)(uiY & 0x00ff);
sprintf(c, "C%c%c%c%cE", ucXH, ucXL, ucYH, ucYL);
ComPort1->Write(c, 6);
}
|