안녕하세요
W5100으로 개발을 진행중에 있어서 궁금한 점이 있습니다.
W5100 제품을 테스트 하던중 getSn_SR(sn) 함수를 통하여 소켓의 상태(?)를 받아와서
정상인지 비정상인지 판단하는 것 같은데
궁금한점이 있습니다.
w5100은 tcp 클라이언트로 동작하고 있습니다.
여기서 서버측을 끊으면 getSn_SR(sn) 함수에서 0x00 or 0x13이 리턴됩니다.
하지만 랜케이블 자체를 끊었을 때는 0x17 (SOCKET_ESTABLISHED)에서 변하질 않고
랜케이블을 다시 연결해도 그대로 유지되고 연결은 안됩니다.
제가 정리를 잘 못한것 같아 요약드립니다.
- W5100
- TCP 클라이언트 작동 : getSn_SR(sn) 리턴값 정상 작동 시 , 0x17(SOCKET_ESTABLISHED)
- getSn_SR(sn) 함수의 리턴 값
-
서버에서 연결을 해제하였을 경우 : getSn_SR(sn) 리턴값이
0x00 (SOCKET_CLOSED) 와 0x13 (SOCKET_INIT)이 반복됨
이 부분은 tcpc_rx 함수를 사용하여 그런것 같습니다.
이 후 서버 소켓을 열었을때 다시 정상적으로 붙음 -
랜케이블을 뽑았을 때 : getSn_SR(sn) 리턴값이
0x17 (SOCKET_ESTABLISHED)로 유지됨.
이 후 랜케이블을 다시 입력해도 접속이 안됨.
랜케이블이 뽑혔을 경우를 인식할 수 있는 방법이 없습니다.
그리고 다시 입력했을 경우도 이 부분을 판단할 수 없어 재연결이 힘듭니다.
제가 놓친 부분이 있는지 확인 부탁드립니다.