데모운영 콘솔
전시 쇼케이스 관제 시뮬레이터 콘솔
실제 기기 대신 브라우저 안 시뮬레이터 쇼케이스 12대로 상태 감시·원격 명령·감사로그를 눌러 볼 수 있습니다.
showcase-control-demo-158841-production.up.railway.app

열어 보시면 이런 걸 확인하실 수 있습니다
- 1단계 [이 화면 열기]로 C-07 잠금 해제 결과와 그 명령이 남은 감사로그 행 번호를 봅니다
- [관제 그리드]에서 통신 끊김은 빗금 칸, 값 갱신 없음은 점선 칸으로 따로 표시됩니다
- 역할을 [연구원]으로 바꾸면 제어 버튼이 이름을 둔 채 잠기고 사유가 나옵니다
- [감사로그]에서 [변조해 보기] 뒤 [기록 검증]을 누르면 바뀐 행과 두 해시가 나옵니다
만들면서 풀어야 했던 것
- 통신이 끊긴 쇼케이스와, 응답은 오지만 값이 바뀌지 않는 쇼케이스는 대응이 다릅니다. 시뮬레이터가 2초마다 12대를 조회하고 응답 한도 500ms 안에 답이 없는 일이 3번 이어지면 통신 끊김으로 바꾸며, 그리드에서는 끊김을 빗금과 마지막 수신 시각으로, 값 갱신 없음을 점선 테두리로 나눠 표시했습니다.
- 문·잠금 명령은 실수로 나가면 안 되고, 기록은 바뀌면 찾아낼 수 있어야 합니다. 명령은 대상·현재 상태·바뀔 상태를 먼저 보여 준 뒤 한 번 더 눌러야 나가고, 4초 안에 응답이 없으면 시간 초과로, 그 뒤에 온 응답은 늦은 응답으로 따로 남깁니다. 감사로그는 행마다 앞 행의 해시를 이어 받아 SHA-256으로 저장해, 한 행을 바꾸면 끊긴 위치와 두 해시를 짚어 줍니다.
- 시뮬레이터는 요청과 응답을 Modbus RTU 형식의 프레임으로 만들어 CRC16으로 확인하고, [통신·규격]에서 그 프레임을 국번·기능코드·주소·데이터·CRC 칸으로 풀어 보여 줍니다. 모든 쇼케이스와 RS485·Modbus 통신은 브라우저 안 시뮬레이터가 만든 것이며, 실제 기기에는 연결하지 않고 [규격 샘플 v0.1]도 실제 기기 규격이 아닙니다.
비슷한 걸 만들어 보고 싶으시다면
구간 견적으로 규모를 먼저 가늠해 보시거나, 조건을 적어 보내 주시면 범위를 정리해 회신드립니다.