Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[14447] 시빌더 -> 델파이로 (시리얼통신관련)고수님들 좀 봐주세요.. 대책이 없네요 ㅡㅡ;;
네오 [neoroot] 2279 읽음    2012-09-19 20:04
전광판 제어모듈인데.

델파이로 하다하다..  어찌 해야할지. 막막해서. 올립니다.



//------------시빌더 소스입니다.
// 포멧 전송.
void __fastcall TfrmMain::txLan (char command, char *sData, int iLen)
{
  char sTxData[20000];
  int  iLoop;
  int  iCnt;
  unsigned char ucCrc;

  sTxData[0] = 0x7e;  //델파이에서는 어찌 표현해야 하느지 ㅜㅜ
  sTxData[1] = 0x7e;
  sTxData[2] = '0';
  sTxData[3] = '1';
  // 길이전송 = Command 1byte + Data iLen + CRC 1byte.
  // 빅엔디안방식 = 상위바이트 + 하위바이트.
  iCnt = (iLen+2) / 0x100;      //델파이에서 계산해서 char로 넣는것도 어찌 할지..
  sTxData[4] = iCnt;
  iCnt = (iLen+2) % 0x100;
  sTxData[5] = iCnt;
  sTxData[6] = 'B';
  // Data 카피.
  memcpy(&sTxData[7], sData, iLen);

  // 1byte crc 계산.
  for (ucCrc=0,iLoop=0;iLoop<(iLen+7);iLoop++)
  {
    ucCrc = ucCrc ^ sTxData[iLoop];   //^ 애는 xor로 바꾸는게 맞는지요?
  } // end of for.

  // crc 저장.
  sTxData[iLoop++] = ucCrc;

  // send packet.
  ComPort->Write(sTxData, iLoop);
}

실제로 시빌더에서. sTxData를 찍어보면
~~01\0\x19B011100502991   99222222}} 버퍼가 이리 잡히고. 전공판은 제대로 작동합니다.
프로토콜은 아래와 같습니다..
SOH                   2    HEX    -1BYTE : SOH [7Eh]   -1BYTE : SOH [7Eh]   
Msg Num                   2    HEX    Hi-Byte + Lo-Byte 순서    Reserved
Body+CRC갯수    2    HEX    Hi-Byte + Lo-Byte 순서   
Command                   1    HEX    COMMAND 목록   
DATA                  N    HEX    -Command 목록 참조   
CRC                  1     HEX    <<Check sum>>
-범위 : SOH ~ Data 까지 xor한 값
- ‘*’이면 CRC체크 Pass (Test용)

+ -

관련 글 리스트
14447 시빌더 -> 델파이로 (시리얼통신관련)고수님들 좀 봐주세요.. 대책이 없네요 ㅡㅡ;; 네오 2279 2012/09/19
14448     Re:시빌더 -> 델파이로 (시리얼통신관련)고수님들 좀 봐주세요.. 대책이 없네요 ㅡㅡ;; Lyn 2252 2012/09/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.