Q&A

  • USB 포트 이용 프로그래밍시 궁금점이 있어서...
USB 포트에 특정장비를 붙여서 데이타를 받고 있습니다.
장비 업체에서 dll을 제공해 줘서 모든 함수를 dll 안에 있는 걸 쓰고 있습니다.
근데 포트를 오픈하고 , 장비 초기화 할때는 괜찮은데...
데이타를 입력는 함수 예를 들어 ReadData라는 함수를 호출하면
입력 대기중 모드로 들어가서 인지 화면이 먹통입니다.
화면에 있는 버튼들도 클릭이 안되고, 에디트에 글씨도 안써지고
근데 장비에서 데이타가 들어 오고 나면 또 정상 작동합니다.
이거 어찌해결해야 하는지요...
고수님들...한수 알려 주세요...
3  COMMENTS
  • Profile
    꼬미사랑 2005.09.15 22:45
    안녕하세요~~
    역쉬 다들 고수~~~
    함수를 메인폼에서 다이렉트로 호출하는 경우에는 타임아웃을 주더라도 타임아웃이 걸리기 전까지는 거의 멈춰버리는 듯한 느낌을 줄수가 있습니다.
    장비업체에서 DLL을 줬다면 DLL 소스도 또한 제공해줄꺼라구 생각합니다..
    일단 장비업체에 DLL의 소스를 달라구 하십시오.. 물건팔려면 거의다 줍니다..(갠적인 경험상)

    DLL소스를 받아서 장비를 핸들링하는편이 원활한 프로그램구현할 듯 싶구요..
    또하나 멈춰버리는 듯한 느낌을 급하게라도 해결하실려면 메인프로그램에서 직접 함수 호출보다는 서브폼형태에서 함수를 호출하는 형태(?)로 호출해서 응답을 기다리는게 나을듯합니다. 서브에서 리턴을 받구 메인으로 넘겨주는 형태로..
    진짜 허접한 답변이네요...
    그럼 즐프하세요...

  • Profile
    델파리 2005.09.15 20:29
    수아님께서 하신 답변도 참고하시고요.
    그리고 기본적으로 시리얼포트든 usb포트든 통신작업은
    별도의 내부 쓰레드를 생성해서 해당작업 (님의 경우에는  readdata 를 수행해서 처리까지) 하는것이 여러가지 측면에서 좋으리라 생각됩니다 . 지금의 문제 또한 그렇게 하심 해결되기도 하고 다른 문제가
    생길 여지가 없습니다. 즐푸하셔요.
    수아님 역시 가만보면 시리얼 초보라고 자칭하시면서도 실력은 꼭 그렇지만은 않은것같아여엉~ ㅎㅎ
    즐푸~ ^^

  • Profile
    윤수아 2005.09.15 19:59


    각 장비업체마다 어떤 식으로 구현되었는지는 알 수 없으나,
    블록모드로 들어가는 것 같으시다면..
    ReadData에서 데이타가 들어올