[아두이노#367] (tcp/udp #20) TCP클라이언트가 다종류일때 모니터링 패널을 동적으로 구성하는 전략(일반화)(녹칸다/포로리야공대가자)
프로그래밍/TCP&UDP 2021. 10. 25. 23:48
회로도는 없음!
(tcp/udp #20) TCP클라이언트가 다종류일때 모니터링 패널을 동적으로 구성하는 전략(일반화)
녹칸다의 TCP, UDP통신을 위한 시리즈이다!
지금까지 노드레드(node-red)를 이용한 TCP서버를 구현하고 TCP클라이언트가 연결되었을때 클라이언트들이 업로드하는 정보를 한눈에 확인 가능한 모니터링패널을 다루어보았다!
현재까지의 가정은 TCP클라이언트의 형태가 모두 동일하다는 전제가 있었다!
예를들어 사물인터넷보드(wemos d1r1)가 여러대 있는데, 모두 LED가 4개씩 있고 광센서가 1개씩 연결되어있다던지, 아니면 릴레이가 모두 지정된 갯수만큼 있다던지를 전제로 한것이다!
그러나 IoT보드가 연결될때 상황을 일반화하자면 다양한 클라이언트가 있을 수 있고 연결된 모듈이나 액츄에이터가 가지각색일 것이다!
노드레드로 표현되는 ui-table은 2차원 테이블 구조로 다양한 형태를 컬럼으로 표현하기에는 한계가 있다!
그렇다고 지금에 와서 다른 것을 활용하기에도 난감하므로 테이블을 최대한 활용해보도록 한다!
녹칸다의 전략은 아래와 같다!
1.디바이스의 상태는 기존 그대로 출력한다!
2.디바이스가 서버로 업로드하는 정보는 모두 하나의 셀(cell)에 html로 때려넣는다!
3.디바이스별 데이터가 여러개 컬럼으로 출력되던것에서 하나의 셀로 집어넣되 list구조로 해두면 가변적인 데이터에 충분히 대응할 수 있다!
(문제점) 서버에서 클라이언트로 인터렉션하기가 구조적으로 어렵다!
(문제점) 셀을 클릭했을때 어떤 항목을 대상으로 했는지 현재로서는 알기 어려움!
4.사물인터넷보드(wemos d1r1) 3대를 서로 다른 모양으로 구성하고 서버와 연결한다음 효과적으로 모니터링 하는 방법에 대해서 논해본다!
(테이블 이상하게 출력되던 문제점) RSSI업데이트 하는 노드에서 화면을 망쳐놓음
(해결방안) 해당 노드는 소켓에 달려있는 rssi변수를 업데이트하고 레코드 단위로 업데이트함(기존과 동일)
수정내용은 368편에서 가볍게 언급예정
(녹칸다 노드레드 TCP 서버)
(시나리오1. 디바이스들이 모두 같은 형태고 가변필드로 구성된다)
(시나리오2. 디바이스들마다 업로드 하는 파라미터가 다르다(일반화))