50
NetRecorder SDK 詹詹詹 [email protected] M2CA, NFIC

NetRecorder SDK

  • Upload
    desma

  • View
    87

  • Download
    0

Embed Size (px)

DESCRIPTION

NetRecorder SDK. 詹嘉文 [email protected] M2CA, NFIC. 簡介. NetRecorder 系統架構 基本操作 透過遠端: NetRecorder 網頁 主機: GetVideo 資料庫結構簡介 系統、錄影設定 存檔記錄 其他. 簡介 ( cont.). 背景知識 網頁設計 NetRecorder 系統與錄影設定 新增、修改、刪除 變更通知 動態產生網頁. 簡介 ( cont.). 網頁設計 查詢存檔影像 撥放影像 瀏覽即時影像 登入、登出系統. 簡介 ( cont.). - PowerPoint PPT Presentation

Citation preview

NetRecorder SDK

詹嘉文 [email protected]

M2CA, NFIC

NetRecorder SDK 2

簡介 NetRecorder 系統架構 基本操作

– 透過遠端 : NetRecorder 網頁– 主機 : GetVideo

資料庫結構簡介– 系統、錄影設定– 存檔記錄– 其他

NetRecorder SDK 3

簡介 (cont.)

背景知識 網頁設計

– NetRecorder 系統與錄影設定» 新增、修改、刪除» 變更通知» 動態產生網頁

NetRecorder SDK 4

簡介 (cont.)

網頁設計– 查詢存檔影像– 撥放影像– 瀏覽即時影像– 登入、登出系統

NetRecorder SDK 5

簡介 (cont.)

如何節省錄影空間?– 定時備份– 定時刪除檔案– 空間不足自動刪除檔案

範例 結論

NetRecorder SDK 6

NetRecorder 系統架構伺服器

IIS

NFXVRDER

瀏覽器

撥放影像ISAPI

新增、修改、查詢資料

RDS

變更通知

db

nfgvocxa

GetVideoRemoteScripting

NetRecorder SDK 7

資料庫簡介 系統設定

– 系統參數» PARAMETER» 安全容量、頻寬、保留天數

– 存檔路徑» DIRECTORY» 編號、路徑、自動刪除

– 即時影像» LIVEVIDEO_CFG» 名稱、 IP 、帳號

錄影設定– 定時錄影

» REGULAR_VIDEO» 時間、 IP 、帳號

– 警報錄影» EVENT» IP 、 GPI 、錄影時間

– 定時擷取» SNAPSHOT» 時間、 IP 、帳號、檔名

NetRecorder SDK 8

資料庫簡介 存檔記錄

– RECORDED_FILE– 時間、 IP 、檔名、錄影時間、檔案長度、路徑編號

NetRecorder SDK 9

資料庫簡介 其他

– 使用者密碼» USER» 帳號、密碼、 IP 、操作員

– 管理者密碼» ADMINISTRATOR» 帳號、密碼

– 登錄記錄» LOGIN_LOG» 時間、帳號密碼、 IP

– 變更記錄» UPDATE_LOG» 時間、帳號、 IP 、變更內容

» Add 、 Delete 、 Modify

– 定時備份» AUTOBACKUP» 時間、類別、天數、路徑、是否刪除

NetRecorder SDK 10

背景知識

– HTML– Scripting Language:

» Java Script» VB Script

– Active Server Pages– Remote Data Service– Remote Scripting

NetRecorder SDK 11

網頁設計 - 系統與錄影設定

NetRecorder SDK 12

網頁設計 - 系統與錄影設定

<BODY onLoad="OpenDB()"><TABLE DATASRC=#RDS1 Border=1><THEAD><TR><TD>ADM NO</TD><TD>ID</TD><TD>PASSWORD</TD></TR></THEAD>

<TBODY><TR><TD><Input NAME='ADM NO' Type=Text DATAFLD='ADM NO'></TD><TD><Input NAME='ID' Type=Text DATAFLD='ID'></TD><td><Input name=’password' type=text datafld='PASSWORD'></td></TR></TBODY></TABLE>

<Input Type=Button Value="AddNew" onClick="AddNewRecord()"><Input Type=Button Value="Update" onClick="SubmitChange()"><Input Type=Button Value="Delete” onClick=“DeleteRecord()”>

NetRecorder SDK 13

網頁設計 - 系統與錄影設定

<OBJECT ID="RDS1" ClassID="ClsID:BD96C556-65A3-11D0-983A-00C04FC29E33"></OBJECT>

<SCRIPT Language=VBScript>Sub OpenDB() RDS1.Server = "http://my_netrecorder" RDS1.Connect = "driver={Microsoft Access Driver (*.mdb)}" & _ ";dbq=C:\Inetpub\wwwroot\NetRecorder\GetVideo\NetRecorder.mdb" RDS1.SQL = "Select * From ADMINISTRATOR “ & _

“Order by [ADM NO] ASC" RDS1.RefreshEnd Sub</SCRIPT>

NetRecorder SDK 14

網頁設計 - 新增Sub AddNewRecord() On Error Resume Next Set rs = RDS1.Recordset rs.MoveLast intIndex=rs("ADM NO") rs.AddNew rs.Update rs("ADM NO") = intIndex+1 MsgBox " 新增一筆完成 " RDS1.SubmitChanges Location.Reload()End Sub

NetRecorder SDK 15

網頁設計 - 更改Sub SubmitChange() On Error Resume Next RDS1.SubmitChanges

If Err.Number <> 0 Then Location.Reload() MsgBox " 無法更新資料 " Else MsgBox " 更新資料完成 " End IfEnd Sub

NetRecorder SDK 16

網頁設計 - 刪除Sub DeleteRecord() DialogRet = showModalDialog (

"dlg.asp?Table=Administrator&Key=ADM NO”) Set rs = RDS1.Recordset rs.MoveFirst Do While Not rs.eof If CLng(rs("ADM NO")) = CLng(DialogRet) Then rs.delete rs.MoveLast Else rs.MoveNext End If Loop RDS1.SubmitChangesEnd Sub

NetRecorder SDK 17

網頁設計 - 刪除document.writeln( '<HTML><BODY>' );document.writeln( " 正在從 administrator 中刪除一筆資料 ");document.writeln(' <SELECT NAME="SelectMenu" onChange="jumpPage(this.form)">');for (var i = 1; i <= CamId.length; i++)

document.writeln("<OPTION>" + CamId[i]CamId[i]);document.writeln('</SELECT>');document.writeln('<Input Type=Button Value = " 取消 "

onClick="top.window.close()">');

function jumpPage(form) { i = form.SelectMenu.selectedIndex; if (i == 0) return; returnValue=CamId[i+1]; top.window.close();}

NetRecorder SDK 18

網頁設計 - 刪除 使用 Active Server Pages 動態產生資料

<!-- 檔案名稱 : myasp.ASP -->ASP Data = "<% max_data = 5 For counter = 1 to max_data%> <%=counter%>,<% Next %>"輸出結果:

ASP Data = " 1, 2, 3, 4, 5, "

NetRecorder SDK 19

網頁設計 - 刪除

<%DBPath=Server.MapPath("../GetVideo/NetRecorder.mdb")Set conn = Server.CreateObject("ADODB.Connection")conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" &_

DBPathsql = "Select * From Administrator”Set rs = Server.CreateObject("ADODB.Recordset")rs.Open sql, conn, 3, 3%>

NetRecorder SDK 20

網頁設計 - 刪除<SCRIPT LANGUAGE = "JavaScript">function MakeArray() { this.length = MakeArray.arguments.length; for (var i = 0; i < this.length; i++) this[i+1] = MakeArray.arguments[i]; }// var CamId = new MakeArray(“ 選擇” , 1,2,3….);

var CamId = new MakeArray(" 選擇任一筆資料 ",<% DO WHILE Not rs.eof %> "<%=rs.Fields("ADM NO").Value%>",<% rs.MoveNext LOOP %> "");</SCRIPT>

NetRecorder SDK 21

網頁設計 - 變更通知 目的

– 資料庫內容變動時主動通知 GetVideo 方法

– 透過 Remote Scripting 及中介軟體nfxgvocxa 通知 GetVideo

時機– 資料庫內容變更時:更新、刪除

NetRecorder SDK 22

Sub DoNoticeOCX() If StrComp("<%=vTable%>" , "regular_video") = 0 Then handleRSExecute("DoSchRecConfigUpdate") ElseIf StrComp("<%=vTable%>", ”save_dir") = 0 Then handleRSExecute("DoSaveDirConfigUpdate") End IfEnd Sub

網頁設計 - 變更通知 Client Script

NetRecorder SDK 23

網頁設計 - 變更通知<script language="JavaScript" src="rs.htm"></script><script language="JavaScript">

RSEnableRemoteScripting("../mynet");</script>

<SCRIPT Language="JavaScript">function handleRSExecute(Method){ var co = RSExecute("sm1.asp", Method);}</SCRIPT>

NetRecorder SDK 24

網頁設計 - 變更通知 Server Script

– Filename: SM1.ASP– Notifications

» DoSchRecConfigUpdate» DoEvTrigRecConfigUpdate» DoSchSnapShotConfigUpdate» DoAutoBackupConfigUpdate» DoParameterConfigUpdate» DoSaveDirConfigUpdate

NetRecorder SDK 25

1. Usage: dynapage.asp?table=ADMINISTRATOR&key=ADM NO

2. dynapage.asp vTable = Request("table") vKey = Request("key") vSQL="Select * From "& vTable &" Order By ["&vKey&"] ASC” Set conn = Server.CreateObject("ADODB.Connection") conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & vDbq Set rs = Server.CreateObject("ADODB.Recordset") rs.Open vSQL, conn, 3, 3

Response.Write "<table DATASRC=#RDS1><thead><tr>" For i = 0 to rs.Fields.Count - 1 Response.Write "<td>" & rs.Fields(i).Name & "</td>" Next Response.Write ”</tr></thead>"

網頁設計 - 動態產生網頁 (ASP)

NetRecorder SDK 26

網頁設計 - 動態產生網頁 (ASP)

Response.Write "<TBODY><TR>”

For i = 0 to rs.Fields.Count - 1 vName = rs.Fields(i).Name If rs.Fields(i).Type = vbBoolean Then Response.Write "<td><Input Type=CheckBox datafld='" & vName & "'>" Else Response.Write "<td><Input Type=Text datafld ='" & vName & "'>” End IfNext

Response.Write "</TR></TBODY></TABLE>"

NetRecorder SDK 27

網頁設計 -查詢存檔影像

NetRecorder SDK 28

網頁設計 -查詢存檔影像

Response.Write "<TBODY><TR>”For i = 0 to rs.Fields.Count - 1 vName = rs.Fields(i).Name If StrComp(vName, "FILENAME") = 0 Then Response.Write "<TD><Input NAME=PBFile Type=Text ID=PBFileID

DATAFLD='" & vName & "' "></TD>" ElseIf StrComp(rs.Fields(i).Name, "PATH ID") = 0 Then Response.Write "<TD><Input NAME='"&vName & "'

TYPE=HIDDEN DATAFLD='" & vName & "'></TD>" ElseIf rs.Fields(i).Type = vbBoolean Then Response.Write "<TD><DIV NAME='" & vName & "' Type=CheckBox

DATAFLD='" & vName & "'></TD>" Else Response.Write "<TD><DIV NAME='" & vName & "' DATAFLD='" &

vName & "' Size=" & LenB(vName) & "></TD>"

NetRecorder SDK 29

網頁設計 -查詢存檔影像

Response.Write "</TR></TBODY></TABLE>”

Response.Write "<INPUT Type=Button Value=Prev OnClick=""MYTABLE.previousPage()"">"

Response.Write "<INPUT Type=Button Value=NextOnClick=""MYTABLE.nextPage()"">"

NetRecorder SDK 30

網頁設計 -查詢存檔影像

<SCRIPT FOR=PBFileID EVENT=onclick LANGUAGE="JScript">

var idx = window.event.srcElement.sourceIndex; var fn = document.all(idx).value

if (fn.length > 0) window.open("pb.asp?IP=<%=vServerIP%>&FileName=" + fn+"&dir_id="+document.all(idx+2).value);</SCRIPT>

NetRecorder SDK 31

網頁設計 - 撥放影像

NetRecorder SDK 32

網頁設計 - 撥放影像<SCRIPT LANGUAGE="VBScript">function document_onstop() LV263a.Close()end function</SCRIPT>

<OBJECT ID="LV263a" WIDTH=320 HEIGHT=280 CLASSID="CLSID:894C310D-6FD7-11D3-BEE7-0000E8CEC6C9" CODEBASE="../CabFiles/nfx263.cab#version=1,0,0,2"> <PARAM NAME="ControlType" VALUE="1"> <PARAM NAME="ISAPI_PATH" VALUE="NetRecorder/Exec"> <PARAM NAME="URL" VALUE="http://<%=Request("IP")%>"> <param name="SaveFileName" value="<%=Request("FileName")%>"> <PARAM NAME="DIR_ID" VALUE="<%=Request("DIR_ID")%>"></OBJECT>

NetRecorder SDK 33

網頁設計 -瀏覽即時影像

<%vIP = Request("IP")vID = Request("ID")vNAME = Request("NAME")vPWD = Request("PWD")%><HTML><BODY><EMBED type="video/x-nficwmh263"

src="http://<%=vIP%>/pushall.htm;<%=vID%>?zzx=<%=vNAME%>&zzy=<%=vPWD%>&zzz=1&noinput=1" WIDTH="320" HEIGHT="240">

</BODY></HTML>

NetRecorder SDK 34

網頁設計 - 登入、登出系統

NetRecorder SDK 35

網頁設計 - 登入、登出系統

使用方法<-- filename: myasp.asp -->

<!--#include file="pwd.asp" -->

<HTML><body>…….</body></HTML>

NetRecorder SDK 36

網頁設計 - 登入、登出系統

<%ID = Request("ID")Pwd = Request("Pwd")If IsEmpty(Session("AdmPassed")) Then Session("AdmPassed") = FalseIf ID = "" Or Pwd = "" Then Head = " 請輸入您的認證資料 "ElseIf CheckAdmPwd( ID, Pwd ) Then Session("AdmPassed") = TrueElse Head = " 『使用者名稱』或『密碼』錯誤 "End If

If Not Session("AdmPassed") Then %>

NetRecorder SDK 37

網頁設計 - 登入、登出系統

<HTML> <%=Head%><FORM Action=<%=Request.ServerVariables("path_info")%>?

<%=Request.ServerVariables("query_string")%>Method=post>

使用者名稱 :<Input Type=Text Name=ID Size=12 Value=<%=ID%>>密碼 :<Input Type=Password Name=Pwd Size=12 value=<%=Pwd%>><Input Type=Submit Value=" 確 定 "></FORM></BODY></HTML><% Response.End End If%>

NetRecorder SDK 38

網頁設計 - 登入、登出系統

Function CheckAdmPwd( ID, Pwd ) …. sql = "Select * From ADMINISTRATOR Where id='" & id &

"' And PASSWORD = '" & Pwd & "'" Set rs = conn.Execute( sql ) If rs.EOF Then CheckAdmPwd = False Else CheckAdmPwd = True End IfEnd Function

NetRecorder SDK 39

如何節省錄影空間 定時備份

– 手動備份: GVBackup– 自動備份

NetRecorder SDK 40

如何節省錄影空間 定時刪除檔案

– 每天凌晨 1:00 自動刪除存檔錄影– 系統參數的「錄影保留」

NetRecorder SDK 41

如何節省錄影空間 自動刪除檔案

– 目錄空間不足時刪除其他舊檔– 設定存檔路徑的「自動刪除」

NetRecorder SDK 42

範例 登入 - Pwd.asp

NetRecorder SDK 43

範例 首頁 - Home.asp

NetRecorder SDK 44

範例 即時影像 - Live.asp

NetRecorder SDK 45

範例 定時錄影設定 - SetRec.asp

NetRecorder SDK 46

範例 刪除一筆資料 - Dlg.asp

NetRecorder SDK 47

範例 查詢存檔影像 - Query.asp

NetRecorder SDK 48

範例 瀏覽存檔影像 - Play.asp

NetRecorder SDK 49

範例 登出系統

– Logout.asp Remote Scripting

– sm1.asp– rs.asp, rs.htm, rsproxy.class

NetRecorder SDK 50

結論 軟體元件

– Internet Information Server– GetVideo, GVBackup, nfxgvocxa, nfxvrder,

LV263a/LVJPG 基礎技術

– HTML, Java/VB Script, ASP, RDS, Remote Scripting

– ISAPI, ActiveX Control