솔루션 개발을 위해 Dahua CCTV 를 웹 페이지 상에 띄워야 했다.
플러그인 가이드가 중국어로 되어있어 번역기와 코드 이해를 통해 내용을 정리하고자 한다.
1. 로그인 방법
플러그인 내부 로그인은
두 가지 방법이 있다.
- 모든 Dahua 장비에 대한 2세대 로그인 방식 (37777 포트 로그인),
- 일부 Dahua 장비에 대한 3세대 로그인 방식 (80 포트 로그인)
Demo.js 의 경우 Dahua3 에 기록되어 있으며, 2세대가 필요한 경우 직접 Dahua2로 수정해야 한다.
2. Chorome 또는 Fire fox 플러그인의 상위 버전
2.1. 위치
websocket 로컬 서비의 경우 브라우저 유형에 따라
서버가 만든 창과 브라우저 창을 부모 창으로 만든다.
따라서 비디오 창의 위치는 개발자가 직접 설정해야 한다.
ResizeVideo : ['left', 'top', 'width', 'height']
위의 메소드를 사용하면 left, top은 브라우저의 왼쪽 위 모서리를 기준으로 한다.
2.2. 표시 및 숨기기
2.1. 을 기반으로 하는 비디오 창은 웹 요소에 바인딩 되지 않으므로,
창의 숨기기 및 표시를 직접 제어해야 한다.
- 창 표시 여부, websocket 스키마 사용.
ShowWindow: ['show'],
위의 메소드를 사용하여 demo를 참조할 것.
2.3. 비디오 창의 생명주기
창의 생명주기는 링크가 닫히면 소멸되는 websocket 링크의 생명주기랑 동일하다.
따라서 프로세스 중간에 비디오 창을 숨기길 원한다면 직접 숨겨야 한다.
메소드는 상기 2.2. 를 참고할 것.
2.4. 프로세스의 종료
이전 버전 프로세스의 이름은 CustomWebSocketServer.exe 이다.
종료 프로세스로 인해 웹 시작 프롬프트가 표시되며,
현재 정책은 프로세스가 종료되지 않으면 부팅이 자동으로 시작된다.
플러그인을 제거하려면 직접 제거하는 것보다 unist를 통해 제거하는 것이 좋다.
3. OEM 정보
일부 사용자 지정에는 OEM 제어가 추가되어 있으며 데모의 기본값은 주석 상태이다.
Dauhua 컨트롤 개발 패키지 프로그래밍 가이드.

1.1 Plugin Flow Chart

1.2 Demo Flow Chart

2. 데모 소개 및 런타임 환경
이 데모는 NetSDK 를 사용 하여 웹 애플리케이션을 구축하는 방법이다.
IE10-/Chrome 45-/Firefox, webplugin.exe 설치 된 환경에서 작동.
명령어 종류
3.1 Plugin Manager (플러그인 관리)
3.1.1. checkPluginInstall

3.1.2. insertPluginObject

3.1.3. initPlugin

3.2. Event Manager (이벤트 관리)
3.2.1. registerEvent

3.2.2. SelctedView
Event Callback Function Definition (이벤트 콜백 함수 정의)

3.3. Display Window Manager (화면 출력 관리)
3.3.1. createMultiNodeDisplay (다중 요소 출력 생성)

3.3.2. setSplitNum (창 표출 갯수 지정)
표출하고 싶은 창의 갯수 만큼 인자 전달.

3.3.3. setFullscreen (전체화면 설정)
전체 화면으로 전환하는 메소드, "ESC" 혹은 오른쪽 클릭시 전체화면 종료.

3.4. Device Manager (장치 관리)
3.4.1. login

3.4.2 logout

3.5. Live (생중계)
3.5.1. connectRealVideo

3.6. Player Mananger (플레이어 관리)
3.6.1. closePlayer

3.6.2. getSelectedPlayerID
현재 선택된 플레이어의 아이디를 가져온다.

3.6.3. getPlayerInfo
현재 선택된 창의 정보를 가져온다.

3.7. Action with Video (영상 액션)
3.7.1. crabOnePicture
선택된 영상 창의 스냅샷을 찍는다.

3.7.2. startRecordingVideo
선택된 창의 영상을 다운로드 받는다.

3.7.3. stopRecordingVideo
선택된 창의 녹화를 중지한다.

3.7.4. enableEZoom
영상 확대 기능을 활성화 한다.

3.7.5. disableEZoom
영상 확대 기능을 비활성화 한다.

3.8. PTZ Control
3.8.1. enablePTZLocate
선택된 창의 PTZ 기능을 활성화 한다.

3.8.2. disbledPTZLocate
선택된 창의 PTZ 기능을 비활성화 한다.

3.8.3. moveUpwards

3.8.4. moveLower

3.8.5. moveLeft

3.8.6. moveRight

3.8.7. moveUpperLeft

3.8.8. moveUpperRight

3.8.9. moveLowerLeft

3.8.10. moveLowerRight

3.8.11. controlZoom

3.8.12. controlAperture (조리개 조절)

3.8.13. PTZIrisIn (초점 조절)

3.8.14. startTour

3.8.15. stopTour

3.9 Traffic statistics
3.9.1. startTrafficDataQuery

3.9.2. getTrafficDataTotalCount
