Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
haikang-client
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
杨立
haikang-client
Commits
9ec007c0
提交
9ec007c0
authored
8月 08, 2022
作者:
wangqiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
问题修改
上级
d31675c6
全部展开
显示空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
59 行增加
和
95 行删除
+59
-95
DefaultHttpService.java
...om/priusis/client/extensions/http/DefaultHttpService.java
+12
-1
HttpController.java
...va/com/priusis/client/extensions/http/HttpController.java
+11
-3
HttpService.java
.../java/com/priusis/client/extensions/http/HttpService.java
+2
-0
DefaultTenantManagerService.java
...m/priusis/client/service/DefaultTenantManagerService.java
+5
-0
TenantManagerService.java
...java/com/priusis/client/service/TenantManagerService.java
+2
-0
MqttServiceImpl.java
...java/com/priusis/client/service/core/MqttServiceImpl.java
+0
-0
RpcCommandResponse.java
...a/com/priusis/client/service/data/RpcCommandResponse.java
+2
-0
application-adev.yml
apq-pc-client/src/main/resources/application-adev.yml
+1
-0
HwPortController.dll
apq-pc-common/dact/x32/HwPortController.dll
+0
-0
MqttRpcDataMessage.java
...n/java/com/priusis/client/service/MqttRpcDataMessage.java
+1
-0
ApqControlJob.java
...c-common/src/main/java/com/priusis/job/ApqControlJob.java
+5
-88
DeviceChangeCallbackImpl.java
...com/priusis/service/control/DeviceChangeCallbackImpl.java
+18
-3
apq-client-x32.iss
tools/install-package/boot/apq-client/apq-client-x32.iss
+0
-0
HwPortController.dll
tools/install-package/dact/x32/HwPortController.dll
+0
-0
没有找到文件。
apq-pc-client/src/main/java/com/priusis/client/extensions/http/DefaultHttpService.java
浏览文件 @
9ec007c0
...
...
@@ -4,11 +4,12 @@ import com.priusis.client.data.kv.KvEntry;
import
com.priusis.client.extensions.ExtensionUpdate
;
import
com.priusis.client.extensions.http.conf.HttpConfiguration
;
import
com.priusis.client.service.MqttDeliveryFuture
;
import
com.priusis.client.service.MqttRpcDataMessage
;
import
com.priusis.client.service.conf.PcExtensionConfiguration
;
import
com.priusis.client.service.core.MqttService
;
import
com.priusis.client.service.data.DeviceData
;
import
com.priusis.client.service.data.RpcCommandResponse
;
import
com.priusis.client.util.ConfigurationTools
;
import
com.priusis.client.service.MqttRpcDataMessage
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.util.StringUtils
;
...
...
@@ -87,6 +88,16 @@ public class DefaultHttpService extends ExtensionUpdate implements HttpService {
return
mqttService
.
flushRpcDataToFile
(
mqttRpcDataMessage
);
}
@Override
public
void
processRpcRes
(
String
token
,
MqttRpcDataMessage
mqttRpcDataMessage
)
throws
Exception
{
RpcCommandResponse
rpcCommandResponse
=
new
RpcCommandResponse
();
rpcCommandResponse
.
setRequestId
(
mqttRpcDataMessage
.
getRequestId
());
rpcCommandResponse
.
setBizRequestId
(
mqttRpcDataMessage
.
getBizRequestId
());
rpcCommandResponse
.
setMethod
(
mqttRpcDataMessage
.
getMethod
());
rpcCommandResponse
.
setData
(
mqttRpcDataMessage
.
getParams
());
mqttService
.
onDeviceRpcResponse
(
rpcCommandResponse
);
}
@Override
public
MqttRpcDataMessage
readFromFile
(
String
method
)
throws
IOException
{
return
mqttService
.
readFromFile
(
method
);
...
...
apq-pc-client/src/main/java/com/priusis/client/extensions/http/HttpController.java
浏览文件 @
9ec007c0
...
...
@@ -3,8 +3,8 @@ package com.priusis.client.extensions.http;
import
cn.hutool.json.JSONUtil
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.priusis.client.extensions.http.conf.HttpRequestProcessingError
;
import
com.priusis.client.service.TenantManagerService
;
import
com.priusis.client.service.MqttRpcDataMessage
;
import
com.priusis.client.service.TenantManagerService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
...
...
@@ -14,8 +14,6 @@ import org.springframework.web.bind.annotation.*;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
static
com
.
priusis
.
client
.
util
.
JsonTools
.
fromString
;
@RestController
@Slf4j
public
class
HttpController
{
...
...
@@ -53,6 +51,16 @@ public class HttpController {
}
}
@RequestMapping
(
value
=
"/rpc_res/{token}"
,
method
=
RequestMethod
.
POST
)
public
void
handleRpcResDataRequest
(
@PathVariable
String
token
,
@RequestBody
String
body
)
{
MqttRpcDataMessage
mqttRpcDataMessage
=
JSONUtil
.
toBean
(
body
,
MqttRpcDataMessage
.
class
);
try
{
service
.
processRpcRes
(
token
,
mqttRpcDataMessage
);
}
catch
(
Exception
e
)
{
log
.
error
(
"Failed to process rpc res persistent : {}"
,
body
);
}
}
@ExceptionHandler
(
Exception
.
class
)
public
void
handlePriusisiotException
(
Exception
exception
,
HttpServletResponse
response
)
{
log
.
debug
(
"Processing exception {}"
,
exception
.
getMessage
(),
exception
);
...
...
apq-pc-client/src/main/java/com/priusis/client/extensions/http/HttpService.java
浏览文件 @
9ec007c0
...
...
@@ -14,5 +14,7 @@ public interface HttpService extends ExtensionService {
File
flushRpcDataToFile
(
MqttRpcDataMessage
mqttRpcDataMessage
)
throws
IOException
;
void
processRpcRes
(
String
token
,
MqttRpcDataMessage
mqttRpcDataMessage
)
throws
Exception
;
MqttRpcDataMessage
readFromFile
(
String
method
)
throws
IOException
;
}
apq-pc-client/src/main/java/com/priusis/client/service/DefaultTenantManagerService.java
浏览文件 @
9ec007c0
...
...
@@ -72,6 +72,11 @@ public abstract class DefaultTenantManagerService implements TenantManagerServic
httpService
.
processEventRequest
(
token
,
body
);
}
@Override
public
void
processRpcRes
(
String
token
,
MqttRpcDataMessage
mqttRpcDataMessage
)
throws
Exception
{
httpService
.
processRpcRes
(
token
,
mqttRpcDataMessage
);
}
@Override
public
File
flushRpcDataToFile
(
MqttRpcDataMessage
mqttRpcDataMessage
)
throws
IOException
{
return
httpService
.
flushRpcDataToFile
(
mqttRpcDataMessage
);
...
...
apq-pc-client/src/main/java/com/priusis/client/service/TenantManagerService.java
浏览文件 @
9ec007c0
...
...
@@ -12,6 +12,8 @@ public interface TenantManagerService {
void
processEventRequest
(
String
token
,
String
body
)
throws
Exception
;
void
processRpcRes
(
String
token
,
MqttRpcDataMessage
mqttRpcDataMessage
)
throws
Exception
;
File
flushRpcDataToFile
(
MqttRpcDataMessage
mqttRpcDataMessage
)
throws
IOException
;
MqttRpcDataMessage
readFromFile
(
String
method
)
throws
IOException
;
...
...
apq-pc-client/src/main/java/com/priusis/client/service/core/MqttServiceImpl.java
浏览文件 @
9ec007c0
差异被折叠。
点击展开。
apq-pc-client/src/main/java/com/priusis/client/service/data/RpcCommandResponse.java
浏览文件 @
9ec007c0
...
...
@@ -9,7 +9,9 @@ import lombok.Data;
public
class
RpcCommandResponse
{
private
int
requestId
;
private
String
bizRequestId
;
private
String
deviceName
;
private
String
method
;
private
String
data
;
}
apq-pc-client/src/main/resources/application-adev.yml
浏览文件 @
9ec007c0
apq
:
iot-gateway
:
192.168.124.19:7002
webrtc_path
:
https://ceshi.priusis.com:8443
client
:
productId
:
210
tenantId
:
156
...
...
apq-pc-common/dact/x32/HwPortController.dll
浏览文件 @
9ec007c0
No preview for this file type
apq-pc-common/src/main/java/com/priusis/client/service/MqttRpcDataMessage.java
浏览文件 @
9ec007c0
...
...
@@ -16,6 +16,7 @@ public class MqttRpcDataMessage implements Serializable {
private
static
final
long
serialVersionUID
=
-
3133461476074777891L
;
private
int
requestId
;
private
String
bizRequestId
;
private
String
method
;
private
Long
sendTime
;
private
String
params
;
...
...
apq-pc-common/src/main/java/com/priusis/job/ApqControlJob.java
浏览文件 @
9ec007c0
package
com
.
priusis
.
job
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.priusis.client.service.MqttRpcDataMessage
;
...
...
@@ -78,10 +77,11 @@ public class ApqControlJob {
// 获取硬件监控配置 params == data
ResponseEntity
<
MqttRpcDataMessage
>
forEntity
=
null
;
try
{
forEntity
=
restTemplate
.
getForEntity
(
"http://localhost:8765/rpc_cmd/controll"
,
MqttRpcDataMessage
.
class
);
forEntity
=
restTemplate
.
getForEntity
(
"http://localhost:8765/rpc_cmd/controll
_4_merge
"
,
MqttRpcDataMessage
.
class
);
}
catch
(
Exception
e
)
{
log
.
error
(
"硬件监控上报异常"
,
e
.
getMessage
());
}
if
(
null
!=
forEntity
)
{
MqttRpcDataMessage
body
=
forEntity
.
getBody
();
String
params
=
body
.
getParams
();
...
...
@@ -90,99 +90,15 @@ public class ApqControlJob {
int
result
=
IHwPortController
.
instanceDll
.
APQ_HWPORT_Initialize
();
log
.
info
(
"APQ_HWPORT_Initialize ret:{}"
,
result
);
try
{
Long
sendTime
=
body
.
getSendTime
();
long
current
=
System
.
currentTimeMillis
();
List
<
HwPortControllerDto
>
hwPortControllerDtos
=
JSONUtil
.
toList
(
params
,
HwPortControllerDto
.
class
);
// 合并硬件请求检查
// 先获取数据
// 获取硬件监控配置 params == data
ResponseEntity
<
MqttRpcDataMessage
>
persistentEntity
=
null
;
try
{
persistentEntity
=
restTemplate
.
getForEntity
(
"http://localhost:8765/rpc_cmd/controll_4_merge"
,
MqttRpcDataMessage
.
class
);
}
catch
(
Exception
e
)
{
log
.
error
(
"硬件监控上报异常merge"
,
e
.
getMessage
());
}
List
<
HwPortControllerDto
>
persistentHwPortControllerDtos
=
null
;
if
(
null
!=
persistentEntity
)
{
MqttRpcDataMessage
persistentEntityBody
=
persistentEntity
.
getBody
();
String
persistentEntityParams
=
persistentEntityBody
.
getParams
();
if
(
StrUtil
.
isNotBlank
(
persistentEntityParams
))
{
persistentHwPortControllerDtos
=
JSONUtil
.
toList
(
persistentEntityParams
,
HwPortControllerDto
.
class
);
persistentHwPortControllerDtos
.
removeAll
(
hwPortControllerDtos
);
persistentHwPortControllerDtos
.
addAll
(
hwPortControllerDtos
);
}
}
else
{
persistentHwPortControllerDtos
=
hwPortControllerDtos
;
}
MqttRpcDataMessage
mqttRpcDataMessage
=
MqttRpcDataMessage
.
builder
()
.
sendTime
(
System
.
currentTimeMillis
())
.
method
(
"controll_4_merge"
)
.
params
(
JSONUtil
.
toJsonStr
(
persistentHwPortControllerDtos
)).
build
();
restTemplate
.
postForObject
(
"http://localhost:8765/rpc_cmd"
,
mqttRpcDataMessage
,
String
.
class
);
if
(
current
-
sendTime
<=
FIXED_DELAY
&&
CollUtil
.
isNotEmpty
(
hwPortControllerDtos
))
{
// 收到硬件策略下发请求
log
.
info
(
"收到硬件策略下发请求, sendTime:{}, params:{}"
,
sendTime
,
params
);
for
(
HwPortControllerDto
hwPortControllerDto
:
hwPortControllerDtos
)
{
HwPortControllerDto
.
DeviceHardwareEnum
deviceHardwareEnum
=
hwPortControllerDto
.
getKey
();
int
doType
=
hwPortControllerDto
.
getDoType
();
int
limitType
=
hwPortControllerDto
.
getLimitType
();
int
value
=
hwPortControllerDto
.
getValue
();
List
<
Integer
>
hwDeviceIds
=
deviceHardwareEnum
.
getHwDeviceIds
();
String
hwDeviceName
=
deviceHardwareEnum
.
getName
();
// 设置普通设备权限
if
(
Objects
.
equals
(
deviceHardwareEnum
.
getHwGroup
(),
"Normal"
))
{
// 1F/2T
for
(
Integer
hwDeviceId
:
hwDeviceIds
)
{
int
perm
=
(
doType
==
1
?
2
:
1
);
int
result32
=
IHwPortController
.
instanceDll
.
APQ_HWPORT_set_normal_device_permit
(
hwDeviceId
,
perm
,
null
);
log
.
info
(
"APQ_HWPORT_set_normal_device_permit doType:{}, limitType;{},value:{}, hwDeviceId:{}, name;{}, perm:{}, ret:{}"
,
doType
,
limitType
,
value
,
hwDeviceId
,
hwDeviceName
,
perm
,
result32
);
}
}
else
if
(
Objects
.
equals
(
deviceHardwareEnum
.
getHwGroup
(),
"Storage"
))
{
// 设置存储设备权限
// 1F/2T/3T-ALL/4T-R/5T-CI/6T-CO 拷出目前无用!! Storage移动硬盘,TYPEC 无效 !!
for
(
Integer
hwDeviceId
:
hwDeviceIds
)
{
int
perm
=
(
doType
==
1
?
2
:
1
);
if
(
perm
==
2
)
{
// limitType 1读写 2只读 3拷入 4拷出 5不限速 6限速
perm
=
(
limitType
==
1
?
3
:
limitType
==
2
?
4
:
limitType
==
3
?
5
:
limitType
==
4
?
6
:
3
);
}
int
result32
=
IHwPortController
.
instanceDll
.
APQ_HWPORT_set_storage_device_permit
(
hwDeviceId
,
perm
,
null
);
log
.
info
(
"APQ_HWPORT_set_storage_device_permit doType:{}, limitType;{},value:{}, hwDeviceId:{}, name;{}, perm:{}, ret:{}"
,
doType
,
limitType
,
value
,
hwDeviceId
,
hwDeviceName
,
perm
,
result32
);
}
}
else
if
(
Objects
.
equals
(
deviceHardwareEnum
.
getHwGroup
(),
"NET"
))
{
// 设置网络设备权限
// 1F/2T/3T-NS/4T-S-200 网口,4G/5G模块,无线WIFI区分不了 !!
for
(
Integer
hwDeviceId
:
hwDeviceIds
)
{
int
perm
=
(
doType
==
1
?
2
:
1
);
if
(
perm
==
2
)
{
// limitType 1读写 2只读 3拷入 4拷出 5不限速 6限速
perm
=
(
limitType
==
5
?
3
:
limitType
==
6
?
4
:
2
);
}
int
result32
=
IHwPortController
.
instanceDll
.
APQ_HWPORT_set_net_device_permit
(
hwDeviceId
,
perm
,
value
,
null
);
log
.
info
(
"APQ_HWPORT_set_net_device_permit doType:{}, limitType;{},value:{}, hwDeviceId:{}, name;{}, perm:{}, ret:{}"
,
doType
,
limitType
,
value
,
hwDeviceId
,
hwDeviceName
,
perm
,
result32
);
}
}
// 应用硬件接口管理模块的配置内容
int
result5
=
IHwPortController
.
instanceDll
.
APQ_HWPORT_Apply
();
log
.
info
(
"APQ_HWPORT_Apply ret:{}"
,
result5
);
}
}
else
{
log
.
info
(
"执行硬件监控, sendTime:{}, params:{}"
,
sendTime
,
params
);
// 上报硬件监控数据
Map
mapRequest
=
new
HashMap
();
for
(
HwPortControllerDto
hwPortControllerDto
:
persistentH
wPortControllerDtos
)
{
for
(
HwPortControllerDto
hwPortControllerDto
:
h
wPortControllerDtos
)
{
HwPortControllerDto
.
DeviceHardwareEnum
deviceHardwareEnum
=
hwPortControllerDto
.
getKey
();
int
doType
=
hwPortControllerDto
.
getDoType
();
int
limitType
=
hwPortControllerDto
.
getLimitType
();
...
...
@@ -247,7 +163,8 @@ public class ApqControlJob {
Map
map
=
restTemplate
.
postForObject
(
"http://localhost:8765/uplink_event/oc-client"
,
eventMapRequest
,
Map
.
class
);
log
.
info
(
"存在硬件接口扫描告警,上报告警事件: mapData:{}, ret:{}"
,
mapRequest
,
map
);
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"APQ_HWPORT ERROR: {}"
,
e
.
getMessage
());
}
finally
{
result
=
IHwPortController
.
instanceDll
.
APQ_HWPORT_Uninitialize
();
log
.
info
(
"APQ_HWPORT_Uninitialize ret:{}"
,
result
);
...
...
apq-pc-common/src/main/java/com/priusis/service/control/DeviceChangeCallbackImpl.java
浏览文件 @
9ec007c0
...
...
@@ -44,27 +44,41 @@ public class DeviceChangeCallbackImpl implements IDeviceChangeCallback {
if
(
changeDataSplits
.
length
>=
5
)
{
String
classData
=
changeDataSplits
[
4
];
String
changeDataDesc
=
changeDataSplits
[
0
];
boolean
needPush
=
true
;
String
deviceClass
=
classData
.
split
(
"="
)[
1
].
toUpperCase
();
if
(
StrUtil
.
equalsIgnoreCase
(
"class=Keyboard"
,
classData
))
{
changeDataDesc
=
"键盘"
;
}
else
if
(
StrUtil
.
equalsIgnoreCase
(
"class=Mouse"
,
classData
))
{
changeDataDesc
=
"鼠标"
;
}
else
if
(
StrUtil
.
equalsIgnoreCase
(
"class=DiskDrive"
,
classData
))
{
changeDataDesc
=
"USB"
;
}
else
if
(
StrUtil
.
equalsIgnoreCase
(
"class=Bluetooth"
,
classData
))
{
changeDataDesc
=
"无线蓝牙"
;
}
else
if
(
StrUtil
.
equalsIgnoreCase
(
"class=CDROM"
,
classData
))
{
changeDataDesc
=
"光驱"
;
deviceClass
=
"CD_DRIVE"
;
}
else
if
(
StrUtil
.
equalsIgnoreCase
(
"class=Ports"
,
classData
))
{
changeDataDesc
=
"串口"
;
deviceClass
=
"SERIAL_PORT"
;
}
else
if
(
StrUtil
.
equalsIgnoreCase
(
"class=USB"
,
classData
))
{
changeDataDesc
=
"U盘/移动硬盘"
;
deviceClass
=
"USB_DRIVE"
;
List
<
String
>
addUSBs
=
USBCheck
.
getAddUSB
();
if
(
null
!=
addUSBs
)
{
for
(
String
addUSB
:
addUSBs
)
{
antivirusDoService
.
doAntivirus
(
addUSB
+
":"
);
}
}
}
else
{
needPush
=
false
;
}
String
changeContent
=
String
.
format
(
"%s%s"
,
changeType
==
1
?
"插入"
:
"拔出"
,
changeDataDesc
);
mapRequest
.
put
(
"deviceClass"
,
classData
.
split
(
"="
)[
1
]
);
mapRequest
.
put
(
"deviceClass"
,
deviceClass
);
mapRequest
.
put
(
"changeContent"
,
changeContent
);
mapRequest
.
put
(
"changeRemark"
,
changeData
);
log
.
info
(
"存在硬件接口扫描告警,上报告警事件!changeContent: {}, changeRemark: {}"
,
changeContent
,
changeData
);
if
(
needPush
)
{
Map
eventMapRequest
=
new
HashMap
();
eventMapRequest
.
put
(
"requestId"
,
4
);
eventMapRequest
.
put
(
"methodName"
,
"control_dev_warning"
);
...
...
@@ -73,4 +87,5 @@ public class DeviceChangeCallbackImpl implements IDeviceChangeCallback {
log
.
info
(
"存在硬件接口扫描告警,上报告警事件: mapData:{}, ret:{}"
,
mapRequest
,
map
);
}
}
}
}
tools/install-package/boot/apq-client/apq-client-x32.iss
浏览文件 @
9ec007c0
tools/install-package/dact/x32/HwPortController.dll
浏览文件 @
9ec007c0
No preview for this file type
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论