Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
entrance_api
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王琮
entrance_api
Commits
ad85ce29
Commit
ad85ce29
authored
Dec 29, 2022
by
zhangyanduan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add: 添加大华SDK相关代码
parent
b38f1fb3
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
121 additions
and
12 deletions
+121
-12
EntranceApiApplication.java
src/main/java/org/rcisoft/EntranceApiApplication.java
+7
-0
DahuaVideoServiceImpl.java
...integration/video/Service/impl/DahuaVideoServiceImpl.java
+5
-0
DaHuaVideoInitConfig.java
...cisoft/integration/video/config/DaHuaVideoInitConfig.java
+64
-12
DisConnect.java
...java/org/rcisoft/integration/video/config/DisConnect.java
+29
-0
HaveReConnect.java
...a/org/rcisoft/integration/video/config/HaveReConnect.java
+16
-0
No files found.
src/main/java/org/rcisoft/EntranceApiApplication.java
View file @
ad85ce29
package
org
.
rcisoft
;
import
org.rcisoft.integration.video.config.DaHuaVideoInitConfig
;
import
org.rcisoft.integration.video.config.DisConnect
;
import
org.rcisoft.integration.video.config.HaveReConnect
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
;
...
...
@@ -19,6 +22,10 @@ public class EntranceApiApplication {
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
EntranceApiApplication
.
class
,
args
);
//此处需要初始化大华SDK
DisConnect
connect
=
new
DisConnect
();
HaveReConnect
reConnect
=
new
HaveReConnect
();
DaHuaVideoInitConfig
.
init
(
connect
,
reConnect
);
}
}
src/main/java/org/rcisoft/integration/video/Service/impl/DahuaVideoServiceImpl.java
View file @
ad85ce29
...
...
@@ -8,6 +8,11 @@ import org.rcisoft.integration.video.Service.IDaHuaVideoService;
public
class
DahuaVideoServiceImpl
implements
IDaHuaVideoService
{
@Override
public
boolean
grabVideoDevicePicData
()
{
/**
* 先判断是否已经初始化
*/
return
false
;
}
}
src/main/java/org/rcisoft/integration/video/config/DaHuaVideoInitConfig.java
View file @
ad85ce29
...
...
@@ -6,6 +6,7 @@ import org.rcisoft.integration.video.lib.NetSDKLib;
import
org.rcisoft.integration.video.lib.NetSDKLib.LLong
;
import
java.io.File
;
import
java.util.concurrent.ConcurrentHashMap
;
/**
* 大华视频监控设备SDK初始化配置
...
...
@@ -13,6 +14,11 @@ import java.io.File;
@Slf4j
public
class
DaHuaVideoInitConfig
{
/**
* 全局视频监控设备登录集合
*/
public
static
ConcurrentHashMap
<
Long
,
LLong
>
videoDeviceMap
=
new
ConcurrentHashMap
();
/**
* SDK核心
*/
...
...
@@ -22,13 +28,23 @@ public class DaHuaVideoInitConfig {
// 设备信息
public
static
NetSDKLib
.
NET_DEVICEINFO_Ex
m_stDeviceInfo
=
new
NetSDKLib
.
NET_DEVICEINFO_Ex
();
// 登陆句柄
public
static
LLong
m_hLoginHandle
=
new
LLong
(
0
);
/**
* SDK初始化状态
*/
private
static
boolean
bInit
=
false
;
/**
* SDK日志输出状态
*/
private
static
boolean
bLogopen
=
false
;
// device disconnect callback instance
private
static
DisConnect
disConnect
=
new
DisConnect
();
// device reconnect callback instance
private
static
HaveReConnect
haveReConnect
=
new
HaveReConnect
();
/**
* 初始化
*/
...
...
@@ -98,13 +114,46 @@ public class DaHuaVideoInitConfig {
NetSDKLib
.
NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY
pstOutParam
=
new
NetSDKLib
.
NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY
();
pstOutParam
.
stuDeviceInfo
=
m_stDeviceInfo
;
//m_hLoginHandle = netsdk.CLIENT_LoginEx2(m_strIp, m_nPort, m_strUser, m_strPassword, 0, null, m_stDeviceInfo, nError);
m_hLoginHandle
=
netsdk
.
CLIENT_LoginWithHighLevelSecurity
(
pstInParam
,
pstOutParam
);
// 登陆句柄
LLong
m_hLoginHandle
=
netsdk
.
CLIENT_LoginWithHighLevelSecurity
(
pstInParam
,
pstOutParam
);
if
(
m_hLoginHandle
.
longValue
()
==
0
)
{
log
.
error
(
"Login Device{} Port{}}Failed. %"
,
m_strIp
,
m_nPort
);
}
else
{
log
.
info
(
"Login Success [ "
+
m_strIp
+
" ]"
);
}
return
m_hLoginHandle
.
longValue
()
==
0
?
false
:
true
;
boolean
loginStatus
=
m_hLoginHandle
.
longValue
()
==
0
?
false
:
true
;
if
(
loginStatus
){
videoDeviceMap
.
put
(
0L
,
m_hLoginHandle
);
}
return
loginStatus
;
}
/**
* 登录设备
*/
public
static
boolean
login
(
Long
deviceId
,
String
m_strIp
,
int
m_nPort
,
String
m_strUser
,
String
m_strPassword
)
{
//入参
NetSDKLib
.
NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY
pstInParam
=
new
NetSDKLib
.
NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY
();
pstInParam
.
nPort
=
m_nPort
;
pstInParam
.
szIP
=
m_strIp
.
getBytes
();
pstInParam
.
szPassword
=
m_strPassword
.
getBytes
();
pstInParam
.
szUserName
=
m_strUser
.
getBytes
();
//出参
NetSDKLib
.
NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY
pstOutParam
=
new
NetSDKLib
.
NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY
();
pstOutParam
.
stuDeviceInfo
=
m_stDeviceInfo
;
//m_hLoginHandle = netsdk.CLIENT_LoginEx2(m_strIp, m_nPort, m_strUser, m_strPassword, 0, null, m_stDeviceInfo, nError);
// 登陆句柄
LLong
m_hLoginHandle
=
netsdk
.
CLIENT_LoginWithHighLevelSecurity
(
pstInParam
,
pstOutParam
);
if
(
m_hLoginHandle
.
longValue
()
==
0
)
{
log
.
error
(
"Login Device{} Port{}}Failed. %"
,
m_strIp
,
m_nPort
);
}
else
{
log
.
info
(
"Login Success [ "
+
m_strIp
+
" ]"
);
}
boolean
loginStatus
=
m_hLoginHandle
.
longValue
()
==
0
?
false
:
true
;
if
(
loginStatus
){
videoDeviceMap
.
put
(
deviceId
,
m_hLoginHandle
);
}
return
loginStatus
;
}
...
...
@@ -112,16 +161,19 @@ public class DaHuaVideoInitConfig {
* 登出设备
*/
public
static
boolean
logout
()
{
if
(
m_hLoginHandle
.
longValue
()
==
0
)
{
if
(
videoDeviceMap
.
containsKey
(
0L
)){
LLong
m_hLoginHandle
=
videoDeviceMap
.
get
(
0L
);
if
(
m_hLoginHandle
.
longValue
()
==
0
)
{
return
false
;
}
boolean
bRet
=
netsdk
.
CLIENT_Logout
(
m_hLoginHandle
);
if
(
bRet
)
{
m_hLoginHandle
.
setValue
(
0
);
}
return
bRet
;
}
else
{
return
false
;
}
boolean
bRet
=
netsdk
.
CLIENT_Logout
(
m_hLoginHandle
);
if
(
bRet
)
{
m_hLoginHandle
.
setValue
(
0
);
}
return
bRet
;
}
}
src/main/java/org/rcisoft/integration/video/config/DisConnect.java
0 → 100644
View file @
ad85ce29
package
org
.
rcisoft
.
integration
.
video
.
config
;
import
com.sun.jna.Pointer
;
import
lombok.extern.slf4j.Slf4j
;
import
org.rcisoft.integration.video.lib.NetSDKLib
;
import
java.util.concurrent.ConcurrentHashMap
;
/**
* 断线处理机制策略
*/
@Slf4j
public
class
DisConnect
implements
NetSDKLib
.
fDisConnect
{
@Override
public
void
invoke
(
NetSDKLib
.
LLong
lLoginID
,
String
pchDVRIP
,
int
nDVRPort
,
Pointer
dwUser
)
{
ConcurrentHashMap
<
Long
,
NetSDKLib
.
LLong
>
videoDeviceMap
=
DaHuaVideoInitConfig
.
videoDeviceMap
;
Long
nowDeviceId
=
null
;
for
(
Long
deviceId:
videoDeviceMap
.
keySet
()){
NetSDKLib
.
LLong
lLong
=
videoDeviceMap
.
get
(
deviceId
);
if
(
lLong
.
longValue
()
==
lLoginID
.
longValue
()){
nowDeviceId
=
deviceId
;
break
;
}
}
if
(
nowDeviceId
!=
null
){
videoDeviceMap
.
remove
(
nowDeviceId
);
}
}
}
src/main/java/org/rcisoft/integration/video/config/HaveReConnect.java
0 → 100644
View file @
ad85ce29
package
org
.
rcisoft
.
integration
.
video
.
config
;
import
com.sun.jna.Pointer
;
import
lombok.extern.slf4j.Slf4j
;
import
org.rcisoft.integration.video.lib.NetSDKLib
;
/**
*设备连接恢复策略,实现设备连接恢复接口
*/
@Slf4j
public
class
HaveReConnect
implements
NetSDKLib
.
fHaveReConnect
{
@Override
public
void
invoke
(
NetSDKLib
.
LLong
lLoginID
,
String
pchDVRIP
,
int
nDVRPort
,
Pointer
dwUser
)
{
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment