|
WinXP에서 만든 어플리케이션을 이용해 TCP/IP 통신을 하여 장비를 제어하고 데이터를 취득합니다.
어플리케이션에서 장비에게 먼가 작업을 하라는 메시지를 담은 패킷을 전송하게 되면,
장비는 그 패킷을 수신하여 분석한 후, 해당 작업을 수행하고..
해당 작업 완료 여부에 대한 메시지를 담은 패킷을 어플리케이션으로 전송해줍니다.
어플리케이션은 수신된 패킷을 분석하여 작업이 완료가 되었는지, 실패했는지 판단하게 됩니다.
WinXP에선 아주 잘 됩니다. 장비로 메시지 보낼 경우 즉각적으로 장비가 반응하여 해당 작업을 수행하고, 그 작업에 맞는 완료여부 메시지를 어플리케이션으로 잘 보내줍니다.
그런데 이 작업을 Win7(64bit)에서 하면.. 문제가 있습니다.
장비로 보내는 메시지는 정상적으로 가고, 그에 따라 장비가 반응하여 해당 작업을 수행하는데, 그런데 작업 수행하고 나서 어플리케이션으로 보내주는 작업 완료 여부 패킷이 잘못되서 들어옵니다.
TCP/IP에서 장비로부터 수신된 패킷을 분석해보면 값이 다르게 나옵니다. 그 전 작업 완료 여부 메시지가 나옵니다.
예를 들어 설명하면...
1. 장비 하드웨어 설정 Clear
2. 장비 하드웨어 설정
3. 데이터 취득..
이런 과정으로 할 경우....
1->2 까진 정상적으로 되는데 2->3번으로 갈때 보면 3번 작업이 장비 내부에선 수행되고, 2번작업에 해당하는 작업 완료 여부 패킷이 들어옵니다. 이상태에서 3번을 다시 수행하면.. 이제 3번 작업이 장비 내부에서 수행되고, 3번 작업에 해당하는 작업 완려 여부 패킷이 들어옵니다.
여기서 다시 2번을 하게 되면 2번 작업이 장비 내부에서 수행되고, 3번 작업에 해당하는 작업 완료 패킷이 들어옵니다..;;;
1, 2, 3번 작업이 장비 내부에선 메시지 받은 순간 잘 수행이 잘 되는데, 어느 순간부터 작업 완료 여부 패킷이 이전 작업 완료 패킷으로 밀려서 들어옵니다.
TCP/IP 처리하는 소스는 문제가 없는거 같구요..
단지 운영체제에 따라 위 증상이 나옵니다.
Win7(64bit)에서 TCP/IP 통신을 이용하여 장비 제어할 경우 먼가 다른 처리가 있어야 하나요?
장비 펌웨어 문제일까요? 사용 운영체제 문제일까요?
답변 부탁드립니다.
|