Q&A

  • CPort 컴포넌트를 사용합니다.
카드 단말기에서 승인자료를 읽는 프로그램을 만들고 있습니다.

시리얼 컴포넌트는 CPort를 사용했습니다.

OnRxChar 이벤트에서 자료를 읽으면..꼭 Count 값이 8Byte 단위로

자료를 읽습니다.

모든 데이타가 다 넘어 올 때까지 기다렸다가 한번에 읽는 방법이 있을 거 같아 질문합니다.

참고로..

BaudRate = 38400
Buffer(Input/Output) = 1024/1024
DataBits = 8
StopBits = 1
SyncMethod = smThreadSync

등입니다.

한가지 더 질문합니다.

단말기에 서 넘어온 자료중에서 카드사 명이 있습니다.
이 명이 한글인데..첫번째 Byte를 분실하는 거 같은 현상이 있습니다.
혹 이거에 관해서 아시는 거 있으면 조언을 부탁합니다.

그럼 즐코하세요.
3  COMMENTS
  • Profile
    최영권 2005.06.15 22:04
    단말기 통신구격에 보시면 아마 통신 프로토콜 규격이 있을겁니다.
    처음과 끝을 체크 하시고 마지막까지 들어오면 처리하시면 될거 같은데요..
    그리고 아마 체크기는 조합형 한글을 쓸거 같은데 '가' -> H8060 인가 헷갈이네 이거면 조합형 HBAB0인가 완성형 값은  체크 해보시길 ...

  • Profile
    김춘경 2005.06.14 23:46
    꼭 8바이트씩 들어온다는게 이상하군요.
    전역 변수를 하나 선언해서 들어온 문자열을 모두 합쳐 보시죠.
    그리고 카드 단말기 한글이면 혹시 조합형 한글이 아닌가요?
    아마 KS완성영으로 컨버전 하셔야 할듯.
    참고로 흐름 제어값 맞춰주셔야 합니다.
    또한 웬만하면 장비와의 통신 속도는 9,600이면 무난합니다.
    가장 안정적이고 보편적인 속도입니다.
    그보다 빠른 속도를 지정한다고 해서 반드시 좋은 편은 아닙니다.



  • Profile
    권태훈 2005.06.14 18:48
    두가지 방법이 있습니다.
    1.소프트웨어
    2.하드웨어

    1번은 깨진글자가 규칙적인 경우 그냥 깨진 글자를 인식해버리면 되구요.
      불 규칙한경우 나머지 스트링만 비교해서 유추합니다.

    2번은 노이즈를 없애야 합니다. 선을 좀 까서 손으로 잡고서 통신해 보십시요.
      발바닥에 물을 좀 묻히고 땅에 대고 있으면 더 좋습니다.
      노이즈가 있는 경우, 저항/콘덴서를 이용해서 로우/하이패스 필터를 걸면
      노이즈 잡을수가 있습니다.  연결선에 저항 하나만 용량 맞는 놈으로 연결해도
      잡히는 경우가 있습니다.  신호대비 잡음이 적을경우 잡음이 버려질정도로
      신호를 더 약하게 만들면 pc측에서 노이즈는 없애니까요.
      그리고, 선을 좋은거 써야 합니다.   쉴드 있는 놈으로.. 까보면 외피쪽에
      전선 방어막 있는거죠...

      일단 노이즈인지 확인할려면 좋은 선으로 만든 레퍼런스 케이블이 하나 있어야 합니다.
      저는 UV 케이블이라고 메타에 삼천원정도 하는 놈으로 만들어 둔게 있습니다.