Q&A

  • RS-232 통신 방법
* 사용환경 : 델파이4 / Windows 98



async33 패키지를 받아 설치하고..

com1에 카드리더기를 연결했는데요..

제가 보내는 ascii 값은 가는데..

response가 돌아오지 않습니다.



Comm1.BaudRate := TBaudrate(ComboBaudrate.ItemIndex); //9600

Comm1.Databits := TDataBits(ComboDatabits.ItemIndex); //8

Comm1.Parity := TParity(ComboParity.ItemIndex); //none

Comm1.StopBits := TStopBits(ComboStopbits.ItemIndex); //1

Comm1.DeviceName := EditDevName.Text ; //com1



기본적인 사항만 셋팅했어요..

제가 ascii 값을 보내면..

그래도 가거든요.. 아날라이져로 확인이 됐거든요..

카드리더기에 전원이 들어와도 아날라이져에 내용이 보여집니다.

그런데..

제가 보낸 BAUD0에 관해서는 response B0가 나오지 않아요..

추가로..

ascii말고 hexa 값으로 데이터 전송하는 방법도 알려주세요..





참.. 전 시리얼통신이 첨입니다.

당장 무지 급하거든요..

아시는분..

메일 보내주세요..

연락처를 남겨 주셔도 좋습니다..

꼭 알려주세요..





1  COMMENTS
  • Profile
    이동근 2000.02.26 20:48
    프로토콜이나 커넥터의 핀어사인을 다시 한번 확인하시는게 좋을 듯합니다.



    그리고 포트설정 내용만으로는 알 수 없습니다.

    어떤 방식으로 어떤 내용(패킷, 바이트, 캐릭터, 등등..)을 보내고 받는지에 대한 내용,

    가급적이면 소스를 봐야 알것같습니다. 프로토콜도 중요하구요..



    저두 거의 초보 수준이지만, 원격감시 프로그램을 몇 개 만들어본 경험은 있습니다.

    참고로, 전 CommPortDriver라는 VCL을 이용하는데, 사용하기도 간편하고 좋더군요.



    아직 해결이 안되셨으면 메일 주세요. 제가 아는데까지는 설명해드리지요.



    참, ASCII 대신 hexa로 보내는 방법은 간단합니다. 몇비트 아스키인지는 모르겠지만..

    예를 들어 ASCII 문자 'A'와 숫자 '0'을 보낼 경우,

    commportdrive1.sendchar('A');

    commportdrive1.sendchar('0');

    이며, hexa로 보낼 경우,

    commportdrive1.sendbyte($41); or commportdrive1.sendbyte(65);

    commportdrive1.sendbyte($30); or commportdrive1.sendbyte(48);

    입니다.

    ASCII code에 대한 문서를 보면, 각 문자에 대한 hexa 값이 나와 있습니다.



    원하시는 답변이 되었는지 모르겠네요..

    수고하세요.. 그럼~ ^^;