의료장비 Afinion AS100 를 시리얼 통신으로 핸들링하려고 합니다.
혈액과 소변을 분석해서 결과값을 시리얼포트로 전송을 해주는데 프로토콜은 아래와 같습니다.
(설명서 pdf파일은 첨부파일로 첨부하였습니다. 아래는 설명서의 일부분입니다.)
cport 컴포넌트로 작업을 하고 있는데 아래의 프로토콜 부분을 델파이로 어떻게
해석하여 적용을 해야 할 지 전혀 감을 잡지 못하고 있습니다.
바코드 프린터나 다른 의료장비 들은 저도 시리얼통신으로 개발을 해 본 경험은 있긴 하지만
이번 건은 제가 알고 있는 지식으로는 잘 해결이 되지 않아서 이렇게 질문 올립니다.
시리얼 통신 쪽에 경험이 많으신 분이나 아래의 프로토골을 보시고 설명해 주실분
혹시 없으신가요? 부탁드리겠습니다.
Sender(Pcc) | Direction | Receiver(LIS) | Description | <ENQ> | ---> | | Notifying receiver that there is information to send. | | <--- | <ACK> | LIS sends back an ACK, if it is ready. | <STX>1H Message<ETX><CS><CR><LF> | ---> | | Header record | | <--- | <ACK> | | <STX>2P Message<ETX><CS><CR><LF> | ---> | | Patient record | | <--- | <ACK> | | <STX>3O Message<ETX><CS><CR><LF> | ---> | | Order record | | <--- | <ACK> | | <STX>4R Message<ETX><CS><CR><LF> | ---> | | First result record | | <--- | <ACK> | | <STX>5R Message<ETX><CS><CR><LF> | ---> | | Second result record | . | <--- | <ACK> | | . | | | | . | | | | <STX>?L Message<ETX><CS><CR><LF> | ---> | | Terminator record | | <--- | <ACK> | | <EOT> | ---> | | Message complete transmitted. | | | | | | | | |
|
|
덧글 : 4 개
한국 델파이 동호회 델마당
예림아빠 (wooki1004) | | 아스키코드표를 보시면 알수 있습니다.
예를들어 ENQ가 시그널이 오면 ACK를 보내시면 되는데, ENQ는 0x05이고 ACK는 0x06입니다. 델파이론 $05와 $06이 되겠지요.
위의 포로토콜 대로라면, $05받으면 $06날려주시고, 그럼 다음으로 $02message$03...이 날아오겠죠. 이렇게 주거니 받거니 하시다가 마지막 EOT($04)가 날아오면 통신을 종료하시면 됩니다. 2012-12-13 오후 3:47:02 | | | 예림아빠 (wooki1004) | | 근데 저 CS는 뭘까요? 들어온메세지보면서 확인해 보셔야 할거 같네요. 2012-12-13 오후 3:50:26 | | | rect도리 (dosmania) | | PCC가 장비인걸로 보이고 LIS는 프로그램 인걸로 보입니다.
PCC가 보낼정보가 있으면 <ENQ>를 전송합니다. LIS는 받을 상태이면 <ACK> 아니면 <NAK>를 전송합니다.
PCC는 <ENQ> 전송 후 <ACK>를 수신받으면 순서대로 메시지를 보내게 됩니다.
한개의 메시지를 보내고 <ACK>를 기다리고 <ACK>를 받으면 다음 메시지 전송합니다.
PCC가 모두 전송하면 <EOT>보내고 통신은 종료됩니다.
< ENQ>, <STX> 등등..은 메뉴얼에 정의 되어 있네요 2012 2012-12-13 오후 3:59:29 | | | 우울증 (songpal) | | <CS> 는 checksum 같습니다..유효성검사에 쓰이겠지요. 2012-12-26 오후 1:23:00 | |