IoT Wireless

AT+FSOCK, AT+MEVTFORM 명령을 이용한 실전 예제 본문

WiFi module

AT+FSOCK, AT+MEVTFORM 명령을 이용한 실전 예제

DH0815 2015. 5. 22. 09:25

(1) AT+FSOCK=6,n


WizFi250이 TCP Client로 동작할 때, 자동적으로 Reconnect 시도를 하기를 원할 때가 있다.

이 때에는, 아래의 명령을 사용하면, 된다.


AT+FSOCK=6,n


n초마다 소켓을 검사하여, AT+SCON=S,.... 로 설정되어 있는데, 현재 운용중인 소켓이 없으면, 설정된 소켓을 자동 재생성한다.

예를 들면, AT+SCON=S,TCN,.... 로 동작하는 모드에서 TCP Server와의 연결이 끊어지는 경우에 위의 옵션을 사용하면, 자동 재접속 된다.


자세한 설명과 예제는 아래 링크 참조

http://ilikethisplus.tistory.com/26


(2) AT+FSOCK=8,n


이 명령은 AT+FSOCK=6,n과 비슷하지만, TCP Reconnect를 시도하는 것이 아니라 WizFi250 자체를 리셋한다는 점이 다르다.

즉, WizFi250이 리셋되면서, AP 접속부터 다시 시작하게 된다.


AT+FSOCK=8,n


n초마다 소켓을 검사하여, AT+SCON=S,.... 로 설정되어 있는데, 현재 연결된 소켓이 없으면, WizFi250 모듈을 리셋한다.

예를 들면, AT+SCON=S,TCN,.... 로 동작하는 모드에서 TCP Server와의 연결이 끊어지는 경우에 위의 옵션을 사용하면, 모듈이 리셋하면서 AP 접속부터 다시 진행된다.

단, 접속할 TCP 서버가 현재 운용되지 않는 상태라면, WizFi250 입장에서는 불필요하게 리셋(Re-Association)이 반복되고, 이는 일부 공유기에서 문제가 생길 소지가 있다. 


자세한 설명과 예제는 아래 링크 참조

http://ilikethisplus.tistory.com/26


(3) AT+MEVTFORM


WizFi250를 사용하다 보면, 몇몇 이벤트 성 메시지들이 랜덤하게 발생하는데, MCU 입장에서 UART로 입력되는 이 이벤트성 메시지들을 분석하는데, 어려움을 겪을 수 있다. 

이 때 아래의 명령을 이용하면, 꼭 필요한 메시지들만 선별해서 사용하거나 단축화된 메시지 형태로 받을 수 있다.


자세한 설명은 아래 링크 참조

http://ilikethisplus.tistory.com/27


(4) 예제 1


이 예제는 접속할 서버와의 연결이 Disconnect 되면, 10초에 한번 TCP 재접속을 시도하고 15초에 한 번 모듈 자체를 리셋시켜서 재접속을 시도하는 예제이다.

이렇게 설정하면, 실제 운용시에 AP Disassociation/TCP Disconnect 등의  예외 상황에 WizFi250 스스로가 재 시도를 하게 되어, MCU 입장에서는 AT Command는 초기 설정 시에만 하면 된다.


WizFi250 Version 1.0.3.9 (WIZnet Co.Ltd)
AT+WSET=0,WizFiDemoAP
[OK]
AT+WSEC=0,,xxxxxxxx
[OK]
AT+WNET=1
[OK]
AT+SCON=S,TCN,222.98.xxx.xxx,10004,,0
[OK]
AT+FSOCK=6,10
[OK]
AT+FSOCK=8,20
[OK]
AT+MPROF=S
[OK]
AT+MRESET
[OK]

WizFi250 Version 1.0.3.9 (WIZnet Co.Ltd)
Joining : WizFiDemoAP
Successfully joined : WizFiDemoAP

[Link-Up Event]
  IP Addr    : 192.168.3.52
  Gateway    : 192.168.3.1

[DISCONNECT 0] (최초 접속 실패)

[DISCONNECT 0] (10초 후 재접속 시도했으나 실패)

[DISCONNECT 0] (10초 후 재접속 시도했으나 실패)

[Link-Down Event]
WizFi250 Version 1.0.3.9 (WIZnet Co.Ltd) (20초 후 모듈 리셋)
Joining : WizFiDemoAP
Successfully joined : WizFiDemoAP

[Link-Up Event]
  IP Addr    : 192.168.3.52
  Gateway    : 192.168.3.1

[DISCONNECT 0] (리셋 후에도 접속 실패)

[DISCONNECT 0] (10초 후 재접속 시도했으나 실패)

[CONNECT 0] (10초 후 재접속 시도하여 접속 성공)

[DISCONNECT 0] (알 수 없는 이유로 서버와의 접속 해제)

[CONNECT 0] (10초 후 재접속 시도하여 접속 성공) 


(5) 예제 2


이 예제는 예제 1과 동일하지만, Event Message들에 대한 설정을 추가하였다.


초기 부팅 Event Message : 정상 출력

[CONNECT x], [DISCONNECT x], [Link-Up Event], [Link-Down Event] : Short Message로 출력

나머지 Event Message들은 출력하지 않음


WizFi250 Version 1.0.3.9 (WIZnet Co.Ltd)
AT+WSET=0,WizFiDemoAP
[OK]
AT+WSEC=0,,xxxxxxxx
[OK]
AT+WNET=1
[OK]
AT+SCON=S,TCN,222.98.xxx.xxx,10004,,0
[OK]
AT+FSOCK=6,10
[OK]
AT+FSOCK=8,20
[OK]
AT+MEVTFORM=1222200000
[OK]
(Event Message들에 대한 설정을 한 부분)
AT+MPROF=S
[OK]
AT+MRESET
[OK]
WizFi250 Version 1.0.3.9 (WIZnet Co.Ltd)

[3] (실제 메시지는 [Link-Up Event])

[2] (실제 메시지는 [DISCONNECT 0])

[2] (실제 메시지는 [DISCONNECT 0])

[4] (실제 메시지는 [Link-Down Event])

WizFi250 Version 1.0.3.9 (WIZnet Co.Ltd)

[3] (실제 메시지는 [Link-Up Event])

[1] (실제 메시지는 [CONNECT 0])

(6) 예제 3


이 예제는 예제 2과 동일하지만, 모든 Event Message들에 대해서 출력을 하지 않는 형태로 설정하였다.

이는 MCU가 초기 설정 AT Command 부분만 진행한다면, 운용 중에는 MCU가 별도의 AT Command를 WizFi250에 전송하거나 WizFi250로부터 출력되는 Event Message들에 대한 분석을 할 필요가 전혀 없다는 것을 의미한다.

만약 초기 설정 AT Command 부분을 WizFi250 Air Command로 처리된다면, MCU는 WizFi250에 대해서 어떤 AT Command 전송이나 Event Message 분석없이 단순하게 이용할 수도 있다.


WizFi250 Version 1.0.3.9 (WIZnet Co.Ltd)
AT+WSET=0,WizFiDemoAP
[OK]
AT+WSEC=0,,xxxxxxxx
[OK]
AT+WNET=1
[OK]
AT+SCON=S,TCN,222.98.xxx.xxx,10004,,0
[OK]
AT+FSOCK=6,10
[OK]
AT+FSOCK=8,20
[OK]
AT+MEVTFORM=0000000000
[OK]
(Event Message들에 대한 설정을 한 부분)
AT+MPROF=S
[OK]
AT+MRESET
[OK]

(이 후에는 MCU는 별도의 AT Command 전송이나 Event Message 분석 작업을 할 필요가 없다.)