|
답변 감사합니다.
아직 윈도우 프로그래밍에 관한 이해가 많이 부족하여 많은 어려움이 있네요...
이번에 작업하면서도 CPort의 자식 클래스를 만들어서 사용했는데...
사용자 정의 메시지를 만들어 날리고 받는 방법을 알았더라면 좀 더 수월했으리라 생각되네요..
언젠가는 제 힘으로 RS232 클래스를 만들어 사용해야 겠다는 생각도 몇 년 째 해오고 있지만...
자료가 부족하다는 핑계로 아직 그러지 못하고 있답니다.. ㅎㅎ
날 잡아서 CPort 코드를 분석해보고 하나 만들어봐야겠습니다.
그리고 이번에 두 개의 장비에 연결하였는데...
노트북에서는 포트 두개가 동시에 열리지 않는 것 같더군요.
물론 내장된 RS232 포트가 없어서 USB to RS232 케이블을 이용했는데...
빌드해서 데스크탑으로 옮기니 잘 되더군요.
거긴 내장된 포트 하나와 USB 케이블을 하나 이용했습니다.
많이 진행된 상태라 다른 컴포넌트로 바꾸지도 못하겠고...
BDS용으로 나온 컴포넌트가 있는지도 잘 모르겠고 해서 노가다 하면서 작업했답니다.
여러모로 CPort에 대한 의존도를 낮춰야겠단 생각이 드네요...
혹 참고할만한 자료가 있으면 자료실에 좀 부탁드려도 될까요?
RS232에 대한 자료가 의외로 찾기가 어렵더군요.
예전에 시스템 베이스에 올려져있는 것 외엔 아직 추가된 자료가 없더군요...
여튼간에 덕분에 많은 도움이 되었고 이런 얘기를 나눌 수 있어서 무척 기쁩니다.. ^^
WARSHIP 님이 쓰신 글 :
: 제가 질문을 잘못 이해했었군요.. ^^;
:
: 제가 예전에
:
: rs232(COM) <-> rs232 to rs485 Convertor <-> Device
: <-> Device
: <-> Device
:
: 이런구조의 보드들을 컨트롤하는 프로그램을 제작한 적이 있는데요.
: 그당시에 제작한것은
:
: Device별로 프로토콜을 생성하고 응답용 버퍼를 가지는 클래스를 제작했구요.
: rs232를 스레드로 돌리는 클래스를 하나 제작했습니다.
:
: 그리고 필요할때 Device클래스로 프로토콜을 생성하고,응답용버퍼를 생성하여
: 두개를 rs232쓰레드클래스에 Add 해줬습니다.
: (응답용 버퍼는 vector를 이용해서 미리 resize해서 응답받을 길이를 세팅)
:
: 그리고 rs232는 들어오는 순서대로 큐에 쌓아서 순서대로
: 데이타를 주고받고 했구요( 오류시 재전송 기능도 rs232클래스에서 작동했습니다 )
:
: 저는 이렇게 하고 응답용버퍼를 제가 원할때 그냥 읽었습니다 -_-;
: 버퍼생성시에 지정한 초기값이 들어있으면 아직 못읽은 것이고
: 먼가 값이 들어있으면 읽은것이겠죠.(읽는중일수도 있구요 ㅡ,.ㅡ)
:
: 다만 귀찮아서 저렇게 했지만.. 예를들어
: rs232에 붙히는 명령,버퍼 등에 몇가지 데이타만 더 추가해주면
: 버퍼에 제대로 다 응답이 오면 메인윈도우에 사용자 정의 메세지를 날리던지..
: 아니면 콜백함수의 주소를 추가해서 콜백형식으로 할수도 있겠구요.
:
: 아뭏튼 전 이런식으로 해서
: 4가지 보드를 깔끔하게 컨트롤 할수 있었습니다.
: 게다가!!! 윈도우가 버벅이는 현상을 없앨수가 있었습니다.
:
: 저도 간단한건 CPort를 사용하는데. 조금 프로토콜들이 복잡해질수록
: 한계가 오더라구요... 그래서 전 저만의 클래스를 만들어서 사용중이랍니다. ^^;
:
: 그럼 조금이나마 도움이 되었길 바랍니다. ㅠ.ㅠ
|